diff --git a/api/tests/integration/ref/basic/ketfile_stereo_desc.py.out b/api/tests/integration/ref/basic/ketfile_stereo_desc.py.out index 118bfdad0b..f5c4b5de16 100644 --- a/api/tests/integration/ref/basic/ketfile_stereo_desc.py.out +++ b/api/tests/integration/ref/basic/ketfile_stereo_desc.py.out @@ -22,13 +22,14 @@ S-R diff.mol:SUCCEED StereochemComplexTester_AllAbs.mol:SUCCEED all-trans-inositol.mol:SUCCEED atom_any.mol:SUCCEED +cip_bonds.mol:SUCCEED +cip_high_load.mol:SUCCEED cis.mol:SUCCEED different stereo 2.mol:SUCCEED different stereo 3.mol:SUCCEED different stereo 4.mol:SUCCEED different stereo 5.mol:SUCCEED different stereo.mol:SUCCEED -ketcher.mol:SUCCEED stereo-different-ketcher-marvin.mol:SUCCEED stereo-different-ketcher-marvin2.mol:SUCCEED t4_R.mol:SUCCEED diff --git a/api/tests/integration/ref/basic/molfile_stereo_desc.py.out b/api/tests/integration/ref/basic/molfile_stereo_desc.py.out index 63cfe19281..70509c6030 100644 --- a/api/tests/integration/ref/basic/molfile_stereo_desc.py.out +++ b/api/tests/integration/ref/basic/molfile_stereo_desc.py.out @@ -1284,6 +1284,168 @@ M V30 END SGROUP M V30 END CTAB M END +cip_bonds + + -INDIGO-01000000002D + + 12 9 0 0 0 0 0 0 0 0999 V2000 + 5.1635 -5.5125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.0295 -6.0125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.8955 -5.5125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.7615 -6.0125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.0135 -5.6875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.8795 -6.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.7455 -5.6875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.6115 -6.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 17.1885 -5.7875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.0545 -6.2875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.9205 -5.7875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 19.7865 -6.2875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 3 4 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 2 0 0 0 0 + 11 12 1 0 0 0 0 +M STY 3 1 DAT 2 DAT 3 DAT +M SLB 3 1 1 2 2 3 3 +M SAL 1 2 2 3 +M SDT 1 INDIGO_CIP_DESC +M SDD 1 0.0000 0.0000 DR ALL 1 1 +M SED 1 (E) +M SAL 2 2 6 7 +M SDT 2 INDIGO_CIP_DESC +M SDD 2 0.0000 0.0000 DR ALL 1 1 +M SED 2 (E) +M SAL 3 2 10 11 +M SDT 3 INDIGO_CIP_DESC +M SDD 3 0.0000 0.0000 DR ALL 1 1 +M SED 3 (E) +M END + +cip_high_load + + -INDIGO-01000000002D + + 0 0 0 0 0 0 0 0 0 0 0 V3000 +M V30 BEGIN CTAB +M V30 COUNTS 36 35 15 0 0 +M V30 BEGIN ATOM +M V30 1 C 7.8 -7.025 0.0 0 +M V30 2 C 8.666 -7.525 0.0 0 CFG=1 +M V30 3 C 9.5321 -7.025 0.0 0 CFG=2 +M V30 4 C 10.3981 -7.525 0.0 0 CFG=1 +M V30 5 C 11.2641 -7.025 0.0 0 CFG=2 +M V30 6 C 12.1301 -7.525 0.0 0 CFG=2 +M V30 7 C 12.9962 -8.025 0.0 0 CFG=1 +M V30 8 C 13.8622 -7.525 0.0 0 CFG=2 +M V30 9 C 14.7282 -8.025 0.0 0 CFG=1 +M V30 10 C 15.5942 -7.525 0.0 0 CFG=2 +M V30 11 C 16.4603 -8.025 0.0 0 CFG=2 +M V30 12 C 17.3264 -8.525 0.0 0 CFG=1 +M V30 13 C 18.1924 -8.025 0.0 0 CFG=2 +M V30 14 C 19.0584 -8.525 0.0 0 CFG=1 +M V30 15 C 19.9245 -8.025 0.0 0 CFG=2 +M V30 16 C 20.7905 -8.525 0.0 0 CFG=2 +M V30 17 C 8.666 -8.525 0.0 0 +M V30 18 C 9.5321 -6.025 0.0 0 +M V30 19 C 10.3981 -8.525 0.0 0 +M V30 20 C 11.2641 -6.025 0.0 0 +M V30 21 C 12.9962 -9.025 0.0 0 +M V30 22 C 13.8622 -6.525 0.0 0 +M V30 23 C 14.7282 -9.025 0.0 0 +M V30 24 C 15.5942 -6.525 0.0 0 +M V30 25 C 17.3264 -9.525 0.0 0 +M V30 26 C 18.1924 -7.025 0.0 0 +M V30 27 C 19.0584 -9.525 0.0 0 +M V30 28 C 21.4976 -9.2321 0.0 0 CFG=1 +M V30 29 C 22.4635 -8.9733 0.0 0 CFG=2 +M V30 30 C 23.1706 -9.6804 0.0 0 +M V30 31 C 19.9245 -7.025 0.0 0 +M V30 32 C 22.7223 -8.0074 0.0 0 +M V30 33 C 21.2388 -10.198 0.0 0 +M V30 34 C 21.2905 -7.659 0.0 0 +M V30 35 C 12.6301 -6.659 0.0 0 +M V30 36 C 16.9603 -7.159 0.0 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 1 1 2 +M V30 2 1 2 3 +M V30 3 1 3 4 +M V30 4 1 4 5 +M V30 5 1 5 6 +M V30 6 1 6 7 +M V30 7 1 7 8 +M V30 8 1 8 9 +M V30 9 1 9 10 +M V30 10 1 10 11 +M V30 11 1 11 12 +M V30 12 1 12 13 +M V30 13 1 13 14 +M V30 14 1 14 15 +M V30 15 1 15 16 +M V30 16 1 2 17 CFG=1 +M V30 17 1 3 18 CFG=1 +M V30 18 1 4 19 CFG=1 +M V30 19 1 5 20 CFG=1 +M V30 20 1 7 21 CFG=1 +M V30 21 1 8 22 CFG=1 +M V30 22 1 9 23 CFG=1 +M V30 23 1 10 24 CFG=1 +M V30 24 1 12 25 CFG=1 +M V30 25 1 13 26 CFG=1 +M V30 26 1 14 27 CFG=1 +M V30 27 1 16 28 +M V30 28 1 28 29 +M V30 29 1 29 30 +M V30 30 1 15 31 CFG=1 +M V30 31 1 29 32 CFG=1 +M V30 32 1 28 33 CFG=1 +M V30 33 1 16 34 CFG=1 +M V30 34 1 6 35 CFG=1 +M V30 35 1 11 36 CFG=1 +M V30 END BOND +M V30 BEGIN COLLECTION +M V30 MDLV30/STERAC1 ATOMS=(17 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 28 29) +M V30 END COLLECTION +M V30 BEGIN SGROUP +M V30 1 DAT 1 ATOMS=(1 3) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 2 DAT 2 ATOMS=(1 4) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" +M V30 3 DAT 3 ATOMS=(1 5) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 4 DAT 4 ATOMS=(1 6) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 5 DAT 5 ATOMS=(1 7) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" +M V30 6 DAT 6 ATOMS=(1 8) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 7 DAT 7 ATOMS=(1 9) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" +M V30 8 DAT 8 ATOMS=(1 10) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 9 DAT 9 ATOMS=(1 11) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" +M V30 10 DAT 10 ATOMS=(1 12) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 11 DAT 11 ATOMS=(1 13) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" +M V30 12 DAT 12 ATOMS=(1 14) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 13 DAT 13 ATOMS=(1 15) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" +M V30 14 DAT 14 ATOMS=(1 16) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" +M V30 15 DAT 15 ATOMS=(1 28) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- +M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" +M V30 END SGROUP +M V30 END CTAB +M END + cis -INDIGO-01000000002D @@ -1714,126 +1876,6 @@ M V30 END SGROUP M V30 END CTAB M END -ketcher - - -INDIGO-01000000002D - - 0 0 0 0 0 0 0 0 0 0 0 V3000 -M V30 BEGIN CTAB -M V30 COUNTS 36 35 15 0 0 -M V30 BEGIN ATOM -M V30 1 C 7.8 -7.025 0.0 0 -M V30 2 C 8.666 -7.525 0.0 0 CFG=1 -M V30 3 C 9.5321 -7.025 0.0 0 CFG=2 -M V30 4 C 10.3981 -7.525 0.0 0 CFG=1 -M V30 5 C 11.2641 -7.025 0.0 0 CFG=2 -M V30 6 C 12.1301 -7.525 0.0 0 CFG=2 -M V30 7 C 12.9962 -8.025 0.0 0 CFG=1 -M V30 8 C 13.8622 -7.525 0.0 0 CFG=2 -M V30 9 C 14.7282 -8.025 0.0 0 CFG=1 -M V30 10 C 15.5942 -7.525 0.0 0 CFG=2 -M V30 11 C 16.4603 -8.025 0.0 0 CFG=2 -M V30 12 C 17.3264 -8.525 0.0 0 CFG=1 -M V30 13 C 18.1924 -8.025 0.0 0 CFG=2 -M V30 14 C 19.0584 -8.525 0.0 0 CFG=1 -M V30 15 C 19.9245 -8.025 0.0 0 CFG=2 -M V30 16 C 20.7905 -8.525 0.0 0 CFG=2 -M V30 17 C 8.666 -8.525 0.0 0 -M V30 18 C 9.5321 -6.025 0.0 0 -M V30 19 C 10.3981 -8.525 0.0 0 -M V30 20 C 11.2641 -6.025 0.0 0 -M V30 21 C 12.9962 -9.025 0.0 0 -M V30 22 C 13.8622 -6.525 0.0 0 -M V30 23 C 14.7282 -9.025 0.0 0 -M V30 24 C 15.5942 -6.525 0.0 0 -M V30 25 C 17.3264 -9.525 0.0 0 -M V30 26 C 18.1924 -7.025 0.0 0 -M V30 27 C 19.0584 -9.525 0.0 0 -M V30 28 C 21.4976 -9.2321 0.0 0 CFG=1 -M V30 29 C 22.4635 -8.9733 0.0 0 CFG=2 -M V30 30 C 23.1706 -9.6804 0.0 0 -M V30 31 C 19.9245 -7.025 0.0 0 -M V30 32 C 22.7223 -8.0074 0.0 0 -M V30 33 C 21.2388 -10.198 0.0 0 -M V30 34 C 21.2905 -7.659 0.0 0 -M V30 35 C 12.6301 -6.659 0.0 0 -M V30 36 C 16.9603 -7.159 0.0 0 -M V30 END ATOM -M V30 BEGIN BOND -M V30 1 1 1 2 -M V30 2 1 2 3 -M V30 3 1 3 4 -M V30 4 1 4 5 -M V30 5 1 5 6 -M V30 6 1 6 7 -M V30 7 1 7 8 -M V30 8 1 8 9 -M V30 9 1 9 10 -M V30 10 1 10 11 -M V30 11 1 11 12 -M V30 12 1 12 13 -M V30 13 1 13 14 -M V30 14 1 14 15 -M V30 15 1 15 16 -M V30 16 1 2 17 CFG=1 -M V30 17 1 3 18 CFG=1 -M V30 18 1 4 19 CFG=1 -M V30 19 1 5 20 CFG=1 -M V30 20 1 7 21 CFG=1 -M V30 21 1 8 22 CFG=1 -M V30 22 1 9 23 CFG=1 -M V30 23 1 10 24 CFG=1 -M V30 24 1 12 25 CFG=1 -M V30 25 1 13 26 CFG=1 -M V30 26 1 14 27 CFG=1 -M V30 27 1 16 28 -M V30 28 1 28 29 -M V30 29 1 29 30 -M V30 30 1 15 31 CFG=1 -M V30 31 1 29 32 CFG=1 -M V30 32 1 28 33 CFG=1 -M V30 33 1 16 34 CFG=1 -M V30 34 1 6 35 CFG=1 -M V30 35 1 11 36 CFG=1 -M V30 END BOND -M V30 BEGIN COLLECTION -M V30 MDLV30/STERAC1 ATOMS=(17 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 28 29) -M V30 END COLLECTION -M V30 BEGIN SGROUP -M V30 1 DAT 1 ATOMS=(1 3) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 2 DAT 2 ATOMS=(1 4) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" -M V30 3 DAT 3 ATOMS=(1 5) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 4 DAT 4 ATOMS=(1 6) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 5 DAT 5 ATOMS=(1 7) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" -M V30 6 DAT 6 ATOMS=(1 8) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 7 DAT 7 ATOMS=(1 9) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" -M V30 8 DAT 8 ATOMS=(1 10) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 9 DAT 9 ATOMS=(1 11) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000 - -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" -M V30 10 DAT 10 ATOMS=(1 12) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 11 DAT 11 ATOMS=(1 13) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" -M V30 12 DAT 12 ATOMS=(1 14) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 13 DAT 13 ATOMS=(1 15) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" -M V30 14 DAT 14 ATOMS=(1 16) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(S)" -M V30 15 DAT 15 ATOMS=(1 28) FIELDNAME=INDIGO_CIP_DESC FIELDDISP=" 0.0000- -M V30 0.0000 DR ALL 1 1 " FIELDDATA="(R)" -M V30 END SGROUP -M V30 END CTAB -M END - stereo-different-ketcher-marvin -INDIGO-01000000002D diff --git a/api/tests/integration/tests/basic/ketfile_stereo_desc.py b/api/tests/integration/tests/basic/ketfile_stereo_desc.py index 443f35bb61..039769b3e5 100644 --- a/api/tests/integration/tests/basic/ketfile_stereo_desc.py +++ b/api/tests/integration/tests/basic/ketfile_stereo_desc.py @@ -31,11 +31,13 @@ def stereo_desc_test(py_file, out_queue): os.path.join(ref_path, filename[:-4] + ".ket"), __file__ ) mol = indigo.loadMoleculeFromFile(os.path.join(root, filename)) - with open(ketfile, "r") as file: - ket_ref = file.read() mol_json_no_cip = mol.json() indigo.setOption("json-saving-add-stereo-desc", True) mol_json_cip = mol.json() + # with open(ketfile, "w") as file: + # file.write(mol_json_cip) + with open(ketfile, "r") as file: + ket_ref = file.read() diff = find_diff(ket_ref, mol_json_cip) if not diff: diff = find_diff(mol_json_no_cip, mol_json_cip) diff --git a/api/tests/integration/tests/basic/molecules/CIP/cip_bonds.mol b/api/tests/integration/tests/basic/molecules/CIP/cip_bonds.mol new file mode 100644 index 0000000000..e5edc05553 --- /dev/null +++ b/api/tests/integration/tests/basic/molecules/CIP/cip_bonds.mol @@ -0,0 +1,26 @@ + + Ketcher 92624 4412D 1 1.00000 0.00000 0 + + 12 9 0 0 0 0 0 0 0 0999 V2000 + 5.1635 -5.5125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.0295 -6.0125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.8955 -5.5125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.7615 -6.0125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.0135 -5.6875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.8795 -6.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.7455 -5.6875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.6115 -6.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 17.1885 -5.7875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.0545 -6.2875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.9205 -5.7875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 19.7865 -6.2875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 + 2 3 2 0 0 0 + 3 4 1 0 0 0 + 5 6 1 0 0 0 + 6 7 2 0 0 0 + 7 8 1 0 0 0 + 9 10 1 0 0 0 + 10 11 2 0 0 0 + 11 12 1 0 0 0 +M END diff --git a/api/tests/integration/tests/basic/molecules/CIP/ketcher.mol b/api/tests/integration/tests/basic/molecules/CIP/cip_high_load.mol similarity index 100% rename from api/tests/integration/tests/basic/molecules/CIP/ketcher.mol rename to api/tests/integration/tests/basic/molecules/CIP/cip_high_load.mol diff --git a/api/tests/integration/tests/basic/ref/cip_bonds.ket b/api/tests/integration/tests/basic/ref/cip_bonds.ket new file mode 100644 index 0000000000..e68c4a69e1 --- /dev/null +++ b/api/tests/integration/tests/basic/ref/cip_bonds.ket @@ -0,0 +1,198 @@ +{ + "root": { + "nodes": [ + { + "$ref": "mol0" + }, + { + "$ref": "mol1" + }, + { + "$ref": "mol2" + } + ] + }, + "mol0": { + "type": "molecule", + "atoms": [ + { + "label": "C", + "location": [ + 5.16349983215332, + -5.512499809265137, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 6.0295000076293949, + -6.012499809265137, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 6.895500183105469, + -5.512499809265137, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 7.761499881744385, + -6.012499809265137, + 0.0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + }, + { + "type": 2, + "atoms": [ + 1, + 2 + ], + "cip": "E" + }, + { + "type": 1, + "atoms": [ + 2, + 3 + ] + } + ] + }, + "mol1": { + "type": "molecule", + "atoms": [ + { + "label": "C", + "location": [ + 11.013500213623047, + -5.6875, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 11.879500389099121, + -6.1875, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 12.745499610900879, + -5.6875, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 13.611499786376954, + -6.1875, + 0.0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + }, + { + "type": 2, + "atoms": [ + 1, + 2 + ], + "cip": "E" + }, + { + "type": 1, + "atoms": [ + 2, + 3 + ] + } + ] + }, + "mol2": { + "type": "molecule", + "atoms": [ + { + "label": "C", + "location": [ + 17.188499450683595, + -5.787499904632568, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 18.054500579833986, + -6.287499904632568, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 18.920499801635743, + -5.787499904632568, + 0.0 + ] + }, + { + "label": "C", + "location": [ + 19.786500930786134, + -6.287499904632568, + 0.0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + }, + { + "type": 2, + "atoms": [ + 1, + 2 + ], + "cip": "E" + }, + { + "type": 1, + "atoms": [ + 2, + 3 + ] + } + ] + } +} \ No newline at end of file diff --git a/api/tests/integration/tests/basic/ref/ketcher.ket b/api/tests/integration/tests/basic/ref/cip_high_load.ket similarity index 100% rename from api/tests/integration/tests/basic/ref/ketcher.ket rename to api/tests/integration/tests/basic/ref/cip_high_load.ket diff --git a/api/tests/integration/tests/layout/acs_style_reaction.py b/api/tests/integration/tests/layout/acs_style_reaction.py index 8bb2ac28cb..8fd295f4b2 100644 --- a/api/tests/integration/tests/layout/acs_style_reaction.py +++ b/api/tests/integration/tests/layout/acs_style_reaction.py @@ -18,7 +18,6 @@ def find_diff(a, b): indigo.setOption("molfile-saving-skip-date", "1") indigo.setOption("json-saving-pretty", "1") indigo.setOption("json-use-native-precision", "1") -indigo.setOption("json-saving-add-stereo-desc", "1") root = joinPathPy("reactions/", __file__) ref = joinPathPy("ref/", __file__) diff --git a/api/tests/integration/tests/layout/ref/932-agents.ket b/api/tests/integration/tests/layout/ref/932-agents.ket index 02732241e6..7f3ee63b8c 100644 --- a/api/tests/integration/tests/layout/ref/932-agents.ket +++ b/api/tests/integration/tests/layout/ref/932-agents.ket @@ -232,7 +232,7 @@ "label": "C", "location": [ 15.200002, - 2.39282, + 2.69282, 0.0 ] }, @@ -240,7 +240,7 @@ "label": "C", "location": [ 16.585642, - 1.59282, + 1.89282, 0.0 ] }, @@ -248,7 +248,7 @@ "label": "C", "location": [ 17.971283, - 2.39282, + 2.69282, 0.0 ] } @@ -277,7 +277,7 @@ "label": "C", "location": [ 20.371281, - 1.99282, + 2.29282, 0.0 ] } @@ -291,7 +291,7 @@ "label": "P", "location": [ 22.771278, - 1.99282, + 2.29282, 0.0 ] } @@ -305,7 +305,7 @@ "label": "C", "location": [ 25.171276, - 2.39282, + 2.69282, 0.0 ] }, @@ -313,7 +313,7 @@ "label": "C", "location": [ 26.556917, - 1.59282, + 1.89282, 0.0 ] }, @@ -321,7 +321,7 @@ "label": "C", "location": [ 27.942556, - 2.39282, + 2.69282, 0.0 ] } @@ -350,7 +350,7 @@ "label": "C", "location": [ 30.342554, - 2.685641, + 2.985641, 0.0 ] }, @@ -358,7 +358,7 @@ "label": "C", "location": [ 31.942554, - 2.685641, + 2.985641, 0.0 ] }, @@ -366,7 +366,7 @@ "label": "C", "location": [ 31.142553, - 1.3, + 1.6, 0.0 ] } @@ -402,7 +402,7 @@ "label": "F", "location": [ 34.342552, - 1.99282, + 2.29282, 0.0 ] } @@ -416,7 +416,7 @@ "label": "I", "location": [ 36.74255, - 1.99282, + 2.29282, 0.0 ] } diff --git a/api/tests/integration/tests/layout/ref/acs_after_layout_default_margin.ket b/api/tests/integration/tests/layout/ref/acs_after_layout_default_margin.ket index 39fbce4a03..25db5ab4b4 100644 --- a/api/tests/integration/tests/layout/ref/acs_after_layout_default_margin.ket +++ b/api/tests/integration/tests/layout/ref/acs_after_layout_default_margin.ket @@ -298,7 +298,7 @@ "label": "N", "location": [ 17.525787, - 4.80503, + 5.10503, 0.0 ] }, @@ -306,7 +306,7 @@ "label": "N", "location": [ 15.925788, - 4.80503, + 5.10503, 0.0 ] }, @@ -314,7 +314,7 @@ "label": "C", "location": [ 14.928204, - 3.5541, + 3.8541, 0.0 ] }, @@ -322,7 +322,7 @@ "label": "C", "location": [ 15.284236, - 1.994215, + 2.294215, 0.0 ] }, @@ -330,7 +330,7 @@ "label": "C", "location": [ 18.523373, - 3.554097, + 3.854097, 0.0 ] }, @@ -338,7 +338,7 @@ "label": "N", "location": [ 16.725786, - 1.3, + 1.6, 0.0 ] }, @@ -346,7 +346,7 @@ "label": "C", "location": [ 18.167337, - 1.994213, + 2.294213, 0.0 ] } diff --git a/api/tests/integration/tests/layout/ref/acs_after_layout_zero_margin.ket b/api/tests/integration/tests/layout/ref/acs_after_layout_zero_margin.ket index e9fa3ff5ad..ebdf125553 100644 --- a/api/tests/integration/tests/layout/ref/acs_after_layout_zero_margin.ket +++ b/api/tests/integration/tests/layout/ref/acs_after_layout_zero_margin.ket @@ -298,7 +298,7 @@ "label": "N", "location": [ 14.325787, - 4.00503, + 4.30503, 0.0 ] }, @@ -306,7 +306,7 @@ "label": "N", "location": [ 12.725787, - 4.00503, + 4.30503, 0.0 ] }, @@ -314,7 +314,7 @@ "label": "C", "location": [ 11.728203, - 2.754099, + 3.0541, 0.0 ] }, @@ -322,7 +322,7 @@ "label": "C", "location": [ 12.084235, - 1.194215, + 1.494215, 0.0 ] }, @@ -330,7 +330,7 @@ "label": "C", "location": [ 15.323371, - 2.754097, + 3.054097, 0.0 ] }, @@ -338,7 +338,7 @@ "label": "N", "location": [ 13.525785, - 0.5, + 0.8, 0.0 ] }, @@ -346,7 +346,7 @@ "label": "C", "location": [ 14.967336, - 1.194212, + 1.494213, 0.0 ] } diff --git a/api/tests/integration/tests/layout/ref/acs_issue_2389.ket b/api/tests/integration/tests/layout/ref/acs_issue_2389.ket index 1a30999a1a..2bbbd9420c 100644 --- a/api/tests/integration/tests/layout/ref/acs_issue_2389.ket +++ b/api/tests/integration/tests/layout/ref/acs_issue_2389.ket @@ -122,7 +122,7 @@ "label": "C", "location": [ 11.200002, - 1.3, + 1.6, 0.0 ] }, @@ -130,7 +130,7 @@ "label": "C", "location": [ 12.800002, - 1.3, + 1.6, 0.0 ] } @@ -152,7 +152,7 @@ "label": "C", "location": [ 15.200003, - 1.3, + 1.6, 0.0 ] }, @@ -160,7 +160,7 @@ "label": "C", "location": [ 16.800003, - 1.3, + 1.6, 0.0 ] } diff --git a/core/indigo-core/layout/src/metalayout.cpp b/core/indigo-core/layout/src/metalayout.cpp index 8e39588f63..dc9a72fe77 100644 --- a/core/indigo-core/layout/src/metalayout.cpp +++ b/core/indigo-core/layout/src/metalayout.cpp @@ -86,7 +86,7 @@ Metalayout::LayoutLine& Metalayout::newLine() void Metalayout::process() { Vec2f pos; - static const auto atomLabelMarginVertical = bondLength / 2; + const auto atomLabelMarginVertical = bondLength / 2; for (int i = 0; i < _layout.size(); ++i) { LayoutLine& line = _layout[i]; diff --git a/core/indigo-core/molecule/src/base_molecule.cpp b/core/indigo-core/molecule/src/base_molecule.cpp index cb4f1af3e9..c3f4dbe076 100644 --- a/core/indigo-core/molecule/src/base_molecule.cpp +++ b/core/indigo-core/molecule/src/base_molecule.cpp @@ -280,7 +280,9 @@ void BaseMolecule::_mergeWithSubmolecule_Sub(BaseMolecule& mol, const Array { try { - _cip_atoms.insert(mapping[mol._cip_atoms.key(i)], mol._cip_atoms.value(i)); + auto aidx = mapping[mol._cip_atoms.key(i)]; + if (aidx >= 0) + _cip_atoms.insert(aidx, mol._cip_atoms.value(i)); } catch (Exception&) { @@ -291,7 +293,9 @@ void BaseMolecule::_mergeWithSubmolecule_Sub(BaseMolecule& mol, const Array { try { - _cip_bonds.insert(mapping[mol._cip_bonds.key(i)], mol._cip_bonds.value(i)); + auto eidx = edge_mapping[mol._cip_bonds.key(i)]; + if (eidx >= 0) + _cip_bonds.insert(eidx, mol._cip_bonds.value(i)); } catch (Exception&) {