Skip to content

Commit 551aa09

Browse files
committed
Correct atom type double bonds come first: "SssdNp" => "SdssNp". Also handle both forms of nitro.
1 parent 0599c87 commit 551aa09

File tree

1 file changed

+11
-8
lines changed
  • descriptor/qsarmolecular/src/main/java/org/openscience/cdk/qsar/descriptors/molecular

1 file changed

+11
-8
lines changed

descriptor/qsarmolecular/src/main/java/org/openscience/cdk/qsar/descriptors/molecular/ALOGPDescriptor.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,27 +1383,30 @@ private void calcGroup066_to_079(int i) {
13831383
} else if (fragment[i].equals("SaaN")) {
13841384
frags[75]++;
13851385
alogpfrag[i] = 75;
1386-
} else if (fragment[i].equals("SssdNp")) {
1387-
boolean haveSsOm = false;
1388-
boolean haveSdO = false;
1389-
boolean ar = false;
1386+
} else if (fragment[i].equals("SdssNp") ||
1387+
fragment[i].equals("SddsN")) {
1388+
int haveSsOm = 0;
1389+
int haveSdO = 0;
1390+
boolean ar = false;
13901391

13911392
for (int j = 0; j <= nbors.size() - 1; j++) {
13921393
if (fragment[atomContainer.indexOf(((IAtom) nbors.get(j)))].equals("SsOm")) {
1393-
haveSsOm = true;
1394+
haveSsOm++;
13941395
} else if (fragment[atomContainer.indexOf(((IAtom) nbors.get(j)))].equals("SdO")) {
1395-
haveSdO = true;
1396+
haveSdO++;
13961397
} else {
13971398
if (((IAtom) nbors.get(j)).getFlag(CDKConstants.ISAROMATIC)) {
13981399
ar = true;
13991400
}
14001401
}
14011402
}
14021403

1403-
if (haveSsOm && haveSdO && ar) {
1404+
boolean isNitro = haveSdO == 2 || (haveSsOm >= 1 && haveSdO >= 1);
1405+
1406+
if (isNitro && ar) {
14041407
frags[76]++;
14051408
alogpfrag[i] = 76;
1406-
} else if (haveSsOm && haveSdO && !ar) {
1409+
} else if (isNitro && !ar) {
14071410
frags[77]++;
14081411
alogpfrag[i] = 77;
14091412
} else {

0 commit comments

Comments
 (0)