Hi all,


Sorry it's me with another substructure query question...



Please can anyone explain the following behaviour to me? I have 4 queries
that differ by just one query bond. To me, it should match an aromatic bond
type (4) but it doesn't. However, it matches single_or_aromatic and
double_or_aromatic query bond types but not single_or_double….


Best wishes,


Susan


import rdkit
print(rdkit.__version__)
from rdkit import Chem

qb_double_or_aromatic = """
  ACCLDraw07262216372D

  0  0  0     0  0            999 V3000
M  V30 BEGIN CTAB
M  V30 COUNTS 7 7 0 0 0
M  V30 BEGIN ATOM
M  V30 1 C 45.7538 -37.6779 0 0
M  V30 2 C 44.7323 -37.0872 0 0
M  V30 3 C 44.7323 -35.9099 0 0
M  V30 4 C 45.7553 -35.3193 0 0
M  V30 5 C 46.7807 -35.9049 0 0
M  V30 6 C 46.7807 -37.085 0 0
M  V30 7 O 45.7553 -34.1382 0 0
M  V30 END ATOM
M  V30 BEGIN BOND
M  V30 1 2 2 1
M  V30 2 1 3 2
M  V30 3 2 4 3
M  V30 4 1 5 4
M  V30 5 1 1 6
M  V30 6 2 6 5
M  V30 7 7 4 7
M  V30 END BOND
M  V30 END CTAB
M  END
"""
qb_single_or_aromatic = """
  ACCLDraw07262216372D

  0  0  0     0  0            999 V3000
M  V30 BEGIN CTAB
M  V30 COUNTS 7 7 0 0 0
M  V30 BEGIN ATOM
M  V30 1 C 45.7538 -37.6779 0 0
M  V30 2 C 44.7323 -37.0872 0 0
M  V30 3 C 44.7323 -35.9099 0 0
M  V30 4 C 45.7553 -35.3193 0 0
M  V30 5 C 46.7807 -35.9049 0 0
M  V30 6 C 46.7807 -37.085 0 0
M  V30 7 O 45.7553 -34.1382 0 0
M  V30 END ATOM
M  V30 BEGIN BOND
M  V30 1 2 2 1
M  V30 2 1 3 2
M  V30 3 2 4 3
M  V30 4 1 5 4
M  V30 5 1 1 6
M  V30 6 2 6 5
M  V30 7 6 4 7
M  V30 END BOND
M  V30 END CTAB
M  END
"""
qb_aromatic = """
  ACCLDraw07262216372D

  0  0  0     0  0            999 V3000
M  V30 BEGIN CTAB
M  V30 COUNTS 7 7 0 0 0
M  V30 BEGIN ATOM
M  V30 1 C 45.7538 -37.6779 0 0
M  V30 2 C 44.7323 -37.0872 0 0
M  V30 3 C 44.7323 -35.9099 0 0
M  V30 4 C 45.7553 -35.3193 0 0
M  V30 5 C 46.7807 -35.9049 0 0
M  V30 6 C 46.7807 -37.085 0 0
M  V30 7 O 45.7553 -34.1382 0 0
M  V30 END ATOM
M  V30 BEGIN BOND
M  V30 1 2 2 1
M  V30 2 1 3 2
M  V30 3 2 4 3
M  V30 4 1 5 4
M  V30 5 1 1 6
M  V30 6 2 6 5
M  V30 7 4 4 7
M  V30 END BOND
M  V30 END CTAB
M  END
"""
qb_single_or_double = """
  ACCLDraw07262216372D

  0  0  0     0  0            999 V3000
M  V30 BEGIN CTAB
M  V30 COUNTS 7 7 0 0 0
M  V30 BEGIN ATOM
M  V30 1 C 45.7538 -37.6779 0 0
M  V30 2 C 44.7323 -37.0872 0 0
M  V30 3 C 44.7323 -35.9099 0 0
M  V30 4 C 45.7553 -35.3193 0 0
M  V30 5 C 46.7807 -35.9049 0 0
M  V30 6 C 46.7807 -37.085 0 0
M  V30 7 O 45.7553 -34.1382 0 0
M  V30 END ATOM
M  V30 BEGIN BOND
M  V30 1 2 2 1
M  V30 2 1 3 2
M  V30 3 2 4 3
M  V30 4 1 5 4
M  V30 5 1 1 6
M  V30 6 2 6 5
M  V30 7 5 4 7
M  V30 END BOND
M  V30 END CTAB
M  END
"""
mb = """
  ACCLDraw07262216212D

  0  0  0     0  0            999 V3000
M  V30 BEGIN CTAB
M  V30 COUNTS 10 11 0 0 0
M  V30 BEGIN ATOM
M  V30 1 O 4.9598 -34.3327 0 0
M  V30 2 O 3.4666 -32.8272 0 0
M  V30 3 C 6.9426 -35.2057 0 0
M  V30 4 C 4.5926 -33.1985 0 0
M  V30 5 C 6.143 -34.3327 0 0
M  V30 6 C 8.0972 -34.9529 0 0
M  V30 7 C 6.5101 -33.1985 0 0
M  V30 8 C 8.4562 -33.8227 0 0
M  V30 9 N 5.5514 -32.509 0 0 CFG=3
M  V30 10 C 7.6606 -32.9537 0 0
M  V30 END ATOM
M  V30 BEGIN BOND
M  V30 1 1 1 4
M  V30 2 2 4 2
M  V30 3 1 5 3
M  V30 4 1 5 1
M  V30 5 2 3 6
M  V30 6 2 5 7
M  V30 7 1 6 8
M  V30 8 1 7 9
M  V30 9 1 9 4
M  V30 10 1 7 10
M  V30 11 2 10 8
M  V30 END BOND
M  V30 END CTAB
M  END
"""
m = Chem.MolFromMolBlock(mb)

q_double_or_aromatic = Chem.MolFromMolBlock(qb_double_or_aromatic)
print(m.HasSubstructMatch(q_double_or_aromatic))

q_single_or_aromatic = Chem.MolFromMolBlock(qb_single_or_aromatic)
print(m.HasSubstructMatch(q_single_or_aromatic))

q_aromatic = Chem.MolFromMolBlock(qb_aromatic)
print(m.HasSubstructMatch(q_aromatic))

q_single_or_double = Chem.MolFromMolBlock(qb_single_or_double)
print(m.HasSubstructMatch(q_single_or_double))


>>> 2022.03.2

>>> True>>> True>>> False

>>> False
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to