Valence error when parsing SCSR (#8948)

* turn off strict valence check for SCSR Templates

* fix to test molecule ValenceErrorScsr.mol

* Add test mols
This commit is contained in:
tadhurst-cdd
2025-11-18 10:09:04 -06:00
committed by GitHub
parent 1bd29449dc
commit 20aeb386e7
4 changed files with 337 additions and 1 deletions

View File

@@ -879,7 +879,7 @@ class MolFromSCSRMolConverter {
for (unsigned int templateIdx = 0;
templateIdx < scsrMol->getTemplateCount(); ++templateIdx) {
auto templateMol = scsrMol->getTemplate(templateIdx);
templateMol->updatePropertyCache();
templateMol->updatePropertyCache(false);
if (templateMol->getProp<std::string>(
common_properties::molAtomClass) != "BASE") {

View File

@@ -178,6 +178,11 @@ class ScsiMolTest {
TEST_CASE("scsiTests", "scsiTests") {
SECTION("basics") {
std::list<ScsiMolTest::ScsiTest> scsiTests{
ScsiMolTest::ScsiTest("ValenceErrorScsr.mol", true,
SCSRBaseHbondOptions::Auto, 38, 39, 6, 35, 36, 3),
ScsiMolTest::ScsiTest("ValenceErrorScsr2.mol", true,
SCSRBaseHbondOptions::Auto, 28, 28, 6, 25, 25, 3),
ScsiMolTest::ScsiTest("RiboseFullname.mol", true,
SCSRBaseHbondOptions::Auto, 45, 49, 8, 43, 47, 6),
ScsiMolTest::ScsiTest("Conjugate.mol", true, SCSRBaseHbondOptions::Auto,

View File

@@ -0,0 +1,176 @@
-INDIGO-11142508262D
0 0 0 0 0 0 0 0 0 0 0 V3000
M V30 BEGIN CTAB
M V30 COUNTS 3 2 0 0 0
M V30 BEGIN ATOM
M V30 1 Aqqq 4.71177 -1.85999 0.0 0 CLASS=AA SEQID=1 ATTCHORD=(2 2 Br)
M V30 2 dC 8.4643 -2.35854 0.0 0 CLASS=AA SEQID=2 ATTCHORD=(4 1 Al 3 Br)
M V30 3 Phe_4I 18.1477 -3.23254 0.0 0 CLASS=AA SEQID=3 ATTCHORD=(2 2 Al)
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 1 1 2
M V30 2 1 2 3
M V30 END BOND
M V30 END CTAB
M V30 BEGIN TEMPLATE
M V30 TEMPLATE 1 AA/Aqqq/Aqqq/ NATREPLACE=AA/A FULLNAME=Aqqq
M V30 BEGIN CTAB
M V30 COUNTS 19 19 3 0 0
M V30 BEGIN ATOM
M V30 1 N 18.8841 -11.9306 0.0 0
M V30 2 C 19.9834 -11.9306 0.0 0
M V30 3 C 19.4338 -11.6124 0.0 0 CFG=2
M V30 4 O 19.9832 -12.4385 0.0 0
M V30 5 N 23.3078 -8.41264 0.0 0 VAL=4
M V30 6 N 21.0042 -8.43268 0.0 0 VAL=4
M V30 7 N 23.2473 -6.92103 0.0 0 VAL=4
M V30 8 N 21.0042 -6.92103 0.0 0 VAL=4
M V30 9 N 22.166 -9.15834 0.0 0 VAL=4
M V30 10 N 22.166 -6.43723 0.0 0 VAL=4
M V30 11 Mn 22.166 -7.66681 0.0 0
M V30 12 C 20.424 -8.17437 0.0 0
M V30 13 C 19.91 -8.54776 0.0 0
M V30 14 C 19.9764 -9.17938 0.0 0
M V30 15 C 20.5567 -9.43777 0.0 0
M V30 16 C 21.0706 -9.06439 0.0 0
M V30 17 O 20.0119 -10.4641 0.0 0
M V30 18 H 17.0172 -10.7565 0.0 0
M V30 19 C 19.3966 -10.0772 0.0 0
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 1 3 2
M V30 2 2 2 4
M V30 3 1 3 1
M V30 4 1 11 5
M V30 5 1 11 6
M V30 6 1 11 7
M V30 7 1 11 8
M V30 8 1 11 9
M V30 9 1 11 10
M V30 10 1 12 13
M V30 11 2 13 14
M V30 12 1 14 15
M V30 13 2 15 16
M V30 14 2 6 12
M V30 15 1 16 6
M V30 16 1 2 17
M V30 17 1 1 18
M V30 18 1 3 19 CFG=1
M V30 19 1 19 13
M V30 END BOND
M V30 BEGIN COLLECTION
M V30 MDLV30/STEABS ATOMS=(1 3)
M V30 END COLLECTION
M V30 BEGIN SGROUP
M V30 1 SUP 1 ATOMS=(1 18) XBONDS=(1 17) BRKXYZ=(9 0.933450 -0.587050 0.0000-
M V30 00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLAS-
M V30 S=LGRP
M V30 2 SUP 2 ATOMS=(1 17) XBONDS=(1 16) BRKXYZ=(9 -0.014250 -0.733250 0.000-
M V30 000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CL-
M V30 ASS=LGRP
M V30 3 SUP 3 ATOMS=(17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 19) XBONDS=(2-
M V30 17 16) BRKXYZ=(9 -0.933450 0.587050 0.000000 0.014250 0.733250 0.0000-
M V30 00 0.000000 0.000000 0.000000) LABEL=Aqqq CLASS=AA SAP=(3 1 18 Al) SAP-
M V30 =(3 2 17 Br) NATREPLACE=AA/A
M V30 END SGROUP
M V30 END CTAB
M V30 TEMPLATE 2 AA/dC/dC/ NATREPLACE=AA/C FULLNAME=D-Cysteine
M V30 BEGIN CTAB
M V30 COUNTS 9 8 4 0 0
M V30 BEGIN ATOM
M V30 1 C 1.07057 -0.839232 0.0 0
M V30 2 C 0.107598 -0.28436 0.0 0 CFG=1
M V30 3 C 0.105894 0.827013 0.0 0
M V30 4 S -0.857004 1.38189 0.0 0
M V30 5 N -0.855375 -0.839232 0.0 0
M V30 6 O 1.0719 -1.72786 0.0 0
M V30 7 O 1.8396 -0.393957 0.0 0
M V30 8 H -1.62485 -0.394771 0.0 0
M V30 9 H -0.858337 2.27051 0.0 0
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 2 6 1
M V30 2 1 1 2
M V30 3 1 1 7
M V30 4 1 2 5
M V30 5 1 2 3 CFG=3
M V30 6 1 3 4
M V30 7 1 5 8
M V30 8 1 4 9
M V30 END BOND
M V30 BEGIN COLLECTION
M V30 MDLV30/STEABS ATOMS=(1 2)
M V30 END COLLECTION
M V30 BEGIN SGROUP
M V30 1 SUP 1 ATOMS=(1 8) XBONDS=(1 7) BRKXYZ=(9 0.384738 -0.222231 0.000000-
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=-
M V30 LGRP
M V30 2 SUP 2 ATOMS=(1 7) XBONDS=(1 3) BRKXYZ=(9 -0.384515 -0.222638 0.00000-
M V30 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLAS-
M V30 S=LGRP
M V30 3 SUP 3 ATOMS=(1 9) XBONDS=(1 8) BRKXYZ=(9 0.000666 -0.444310 0.000000-
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=-
M V30 LGRP
M V30 4 SUP 4 ATOMS=(6 1 2 3 4 5 6) XBONDS=(3 3 8 7) BRKXYZ=(9 0.384515 0.22-
M V30 2638 0.000000 -0.000666 0.444310 0.000000 0.000000 0.000000 0.000000) -
M V30 BRKXYZ=(9 -0.384738 0.222231 0.000000 0.000000 0.000000 0.000000 0.000-
M V30 000 0.000000 0.000000) LABEL=dC CLASS=AA SAP=(3 5 8 Al) SAP=(3 1 7 Br)-
M V30 SAP=(3 4 9 Cx) NATREPLACE=AA/C
M V30 END SGROUP
M V30 END CTAB
M V30 TEMPLATE 3 AA/Phe_4I/Phe_4I/ NATREPLACE=AA/F FULLNAME=4-iodo-L-phenyla-
M V30 lanine
M V30 BEGIN CTAB
M V30 COUNTS 14 14 3 0 0
M V30 BEGIN ATOM
M V30 1 I -2.54047 -2.02915 0.0 0
M V30 2 C -1.67314 -1.53176 0.0 0
M V30 3 C -0.80874 -2.03422 0.0 0
M V30 4 C 0.0585908 -1.53683 0.0 0
M V30 5 C 0.0615237 -0.536983 0.0 0
M V30 6 C 0.928321 -0.0375275 0.0 0
M V30 7 C 0.929855 0.962849 0.0 0 CFG=2
M V30 8 N 0.0630568 1.4623 0.0 0
M V30 9 H -0.802741 0.962183 0.0 0
M V30 10 C 1.79665 1.4623 0.0 0
M V30 11 O 2.66198 0.961316 0.0 0
M V30 12 O 1.79819 2.46215 0.0 0
M V30 13 C -0.802874 -0.0345279 0.0 0
M V30 14 C -1.67021 -0.531917 0.0 0
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 1 1 2
M V30 2 2 2 3
M V30 3 1 3 4
M V30 4 2 4 5
M V30 5 1 5 6
M V30 6 1 7 6 CFG=3
M V30 7 1 7 8
M V30 8 1 8 9
M V30 9 1 7 10
M V30 10 1 10 11
M V30 11 2 10 12
M V30 12 1 5 13
M V30 13 2 13 14
M V30 14 1 2 14
M V30 END BOND
M V30 BEGIN COLLECTION
M V30 MDLV30/STEABS ATOMS=(1 7)
M V30 END COLLECTION
M V30 BEGIN SGROUP
M V30 1 SUP 1 ATOMS=(1 9) XBONDS=(1 8) BRKXYZ=(9 0.432899 0.250058 0.000000 -
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=L-
M V30 GRP
M V30 2 SUP 2 ATOMS=(1 11) XBONDS=(1 10) BRKXYZ=(9 -0.432665 0.250492 0.0000-
M V30 00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLA-
M V30 SS=LGRP
M V30 3 SUP 3 ATOMS=(12 1 2 3 4 5 6 7 8 10 12 13 14) XBONDS=(2 8 10) BRKXYZ=-
M V30 (9 -0.432899 -0.250058 0.000000 0.432665 -0.250492 0.000000 0.000000 0-
M V30 .000000 0.000000) LABEL=Phe_4I CLASS=AA SAP=(3 8 9 Al) SAP=(3 10 11 Br-
M V30 ) NATREPLACE=AA/F
M V30 END SGROUP
M V30 END CTAB
M V30 END TEMPLATE
M END

View File

@@ -0,0 +1,155 @@
-INDIGO-09042411402D
0 0 0 0 0 0 0 0 0 0 0 V3000
M V30 BEGIN CTAB
M V30 COUNTS 3 2 0 0 0
M V30 BEGIN ATOM
M V30 1 Aqqq 1.25 -1.25 0.0 0 CLASS=AA SEQID=1 ATTCHORD=(2 2 Br)
M V30 2 dC 2.75 -1.25 0.0 0 CLASS=AA SEQID=2 ATTCHORD=(4 1 Al 3 Br)
M V30 3 Phe_4I 4.25 -1.25 0.0 0 CLASS=AA SEQID=3 ATTCHORD=(2 2 Al)
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 1 1 2
M V30 2 1 2 3
M V30 END BOND
M V30 END CTAB
M V30 BEGIN TEMPLATE
M V30 TEMPLATE 1 AA/Aqqq/Aqqq/ NATREPLACE=AA/A
M V30 BEGIN CTAB
M V30 COUNTS 10 9 3 0 0
M V30 BEGIN ATOM
M V30 1 C 0.411785 0.589238 0.0 0
M V30 2 C 0.411179 -0.547431 0.0 0 CFG=1
M V30 3 C 1.39486 -1.11698 0.0 0
M V30 4 O 1.39433 -2.02583 0.0 0
M V30 5 O 2.18238 -0.663234 0.0 0
M V30 6 N -0.572576 -1.11698 0.0 0
M V30 7 H -1.36055 -0.663991 0.0 0
M V30 8 N 30.3265 -16.4740 0.0000 0
M V30 9 O 30.3265 -14.2736 0.0000 0
M V30 10 O 30.3265 -19.1432 0.0000 0
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 1 2 1 CFG=1
M V30 2 1 2 3
M V30 3 2 3 4
M V30 4 1 3 5
M V30 5 1 2 6
M V30 6 1 6 7
M V30 7 1 1 8
M V30 8 2 8 9
M V30 9 2 8 10
M V30 END BOND
M V30 BEGIN COLLECTION
M V30 MDLV30/STEABS ATOMS=(1 2)
M V30 END COLLECTION
M V30 BEGIN SGROUP
M V30 1 SUP 1 ATOMS=(1 7) XBONDS=(1 6) BRKXYZ=(9 0.393987 -0.226493 0.000000-
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=-
M V30 LGRP
M V30 2 SUP 2 ATOMS=(1 5) XBONDS=(1 4) BRKXYZ=(9 -0.393760 -0.226872 0.00000-
M V30 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLAS-
M V30 S=LGRP
M V30 3 SUP 3 ATOMS=(7 1 2 3 4 6 8 9) XBONDS=(2 4 6) BRKXYZ=(9 0.39376-
M V30 0 0.226872 0.000000 -0.393987 0.226493 0.000000 0.000000 0.000000 0.00-
M V30 0000) LABEL=Aqqq CLASS=AA SAP=(3 6 7 Al) SAP=(3 3 5 Br) NATREPLACE=AA/A
M V30 END SGROUP
M V30 END CTAB
M V30 TEMPLATE 2 AA/dC/dC/ NATREPLACE=AA/C
M V30 BEGIN CTAB
M V30 COUNTS 9 8 4 0 0
M V30 BEGIN ATOM
M V30 1 C 1.07057 -0.839232 0.0 0
M V30 2 C 0.107598 -0.28436 0.0 0 CFG=1
M V30 3 C 0.105894 0.827013 0.0 0
M V30 4 S -0.857004 1.38189 0.0 0
M V30 5 N -0.855375 -0.839232 0.0 0
M V30 6 O 1.0719 -1.72786 0.0 0
M V30 7 O 1.8396 -0.393957 0.0 0
M V30 8 H -1.62485 -0.394771 0.0 0
M V30 9 H -0.858337 2.27051 0.0 0
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 2 6 1
M V30 2 1 1 2
M V30 3 1 1 7
M V30 4 1 2 5
M V30 5 1 2 3 CFG=3
M V30 6 1 3 4
M V30 7 1 5 8
M V30 8 1 4 9
M V30 END BOND
M V30 BEGIN COLLECTION
M V30 MDLV30/STEABS ATOMS=(1 2)
M V30 END COLLECTION
M V30 BEGIN SGROUP
M V30 1 SUP 1 ATOMS=(1 8) XBONDS=(1 7) BRKXYZ=(9 0.384737 -0.222230 0.000000-
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=-
M V30 LGRP
M V30 2 SUP 2 ATOMS=(1 7) XBONDS=(1 3) BRKXYZ=(9 -0.384515 -0.222637 0.00000-
M V30 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLAS-
M V30 S=LGRP
M V30 3 SUP 3 ATOMS=(1 9) XBONDS=(1 8) BRKXYZ=(9 0.000666 -0.444312 0.000000-
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=-
M V30 LGRP
M V30 4 SUP 4 ATOMS=(6 1 2 3 4 5 6) XBONDS=(3 3 8 7) BRKXYZ=(9 0.384515 0.22-
M V30 2637 0.000000 -0.000666 0.444312 0.000000 0.000000 0.000000 0.000000) -
M V30 BRKXYZ=(9 -0.384737 0.222230 0.000000 0.000000 0.000000 0.000000 0.000-
M V30 000 0.000000 0.000000) LABEL=dC CLASS=AA SAP=(3 5 8 Al) SAP=(3 1 7 Br)-
M V30 SAP=(3 4 9 Cx) NATREPLACE=AA/C
M V30 END SGROUP
M V30 END CTAB
M V30 TEMPLATE 3 AA/Phe_4I/Phe_4I/ NATREPLACE=AA/F
M V30 BEGIN CTAB
M V30 COUNTS 14 14 3 0 0
M V30 BEGIN ATOM
M V30 1 I -2.54047 -2.02915 0.0 0
M V30 2 C -1.67314 -1.53176 0.0 0
M V30 3 C -0.80874 -2.03422 0.0 0
M V30 4 C 0.0585908 -1.53683 0.0 0
M V30 5 C 0.0615237 -0.536983 0.0 0
M V30 6 C 0.928321 -0.0375275 0.0 0
M V30 7 C 0.929855 0.962849 0.0 0 CFG=2
M V30 8 N 0.0630568 1.4623 0.0 0
M V30 9 H -0.802741 0.962183 0.0 0
M V30 10 C 1.79665 1.4623 0.0 0
M V30 11 O 2.66198 0.961316 0.0 0
M V30 12 O 1.79819 2.46215 0.0 0
M V30 13 C -0.802874 -0.0345279 0.0 0
M V30 14 C -1.67021 -0.531917 0.0 0
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 1 1 2
M V30 2 2 2 3
M V30 3 1 3 4
M V30 4 2 4 5
M V30 5 1 5 6
M V30 6 1 7 6 CFG=3
M V30 7 1 7 8
M V30 8 1 8 9
M V30 9 1 7 10
M V30 10 1 10 11
M V30 11 2 10 12
M V30 12 1 5 13
M V30 13 2 13 14
M V30 14 1 2 14
M V30 END BOND
M V30 BEGIN COLLECTION
M V30 MDLV30/STEABS ATOMS=(1 7)
M V30 END COLLECTION
M V30 BEGIN SGROUP
M V30 1 SUP 1 ATOMS=(1 9) XBONDS=(1 8) BRKXYZ=(9 0.432899 0.250061 0.000000 -
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=L-
M V30 GRP
M V30 2 SUP 2 ATOMS=(1 11) XBONDS=(1 10) BRKXYZ=(9 -0.432666 0.250494 0.0000-
M V30 00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLA-
M V30 SS=LGRP
M V30 3 SUP 3 ATOMS=(12 1 2 3 4 5 6 7 8 10 12 13 14) XBONDS=(2 8 10) BRKXYZ=-
M V30 (9 -0.432899 -0.250061 0.000000 0.432666 -0.250494 0.000000 0.000000 0-
M V30 .000000 0.000000) LABEL=Phe_4I CLASS=AA SAP=(3 8 9 Al) SAP=(3 10 11 Br-
M V30 ) NATREPLACE=AA/F
M V30 END SGROUP
M V30 END CTAB
M V30 END TEMPLATE
M END