You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The bond wedging code prefers to wege non-ring bonds, but this can lead to creation of additional atropisomeric bonds on re-parsing.
Here's an example.
Start with this molecule, constructed from the mol block bug_mb defined below:
Parse that and display it:
As can be seen here, the wedging code prefers to wedge the non-cyclic bond between atoms 3 and 1.
If we generate a mol block from this and then re-parse it, we now have two atropisomeric bonds:
The mol block bug_mb2, which includes the wedge from bond 3 to bond 1, is also below.
When selecting which bond to wedge around atropisomeric bonds, the wedging code should prefer cyclic bonds in order to avoid this kind of ambiguity.
Configuration (please complete the following information):
RDKit version: master (and 2024.03.1)
OS: all
input data
bug_mb = '''
RDKit 2D
0 0 0 0 0 0 0 0 0 0999 V3000
M V30 BEGIN CTAB
M V30 COUNTS 20 21 0 0 0
M V30 BEGIN ATOM
M V30 1 N -0.024300 -1.051200 0.000000 0
M V30 2 C 0.690200 -1.463700 0.000000 0
M V30 3 O 0.690200 -2.288700 0.000000 0
M V30 4 N 1.404500 -1.051200 0.000000 0
M V30 5 C 2.119100 -1.463700 0.000000 0
M V30 6 C 2.119100 -2.288700 0.000000 0
M V30 7 C 1.404500 -2.701200 0.000000 0
M V30 8 C 2.833500 -2.701200 0.000000 0
M V30 9 C 3.547900 -2.288700 0.000000 0
M V30 10 N 3.547900 -1.463700 0.000000 0
M V30 11 C 2.833600 -1.051200 0.000000 0
M V30 12 C 3.363800 -0.419100 0.000000 0
M V30 13 C 4.176300 -0.562300 0.000000 0
M V30 14 C 3.081600 0.356100 0.000000 0
M V30 15 C 1.404500 -0.226000 0.000000 0
M V30 16 N 2.155300 0.191900 0.000000 0
M V30 17 C 2.161900 1.051300 0.000000 0
M V30 18 C 1.417800 1.480900 0.000000 0
M V30 19 C 0.676800 1.045500 0.000000 0
M V30 20 C 0.690200 0.186400 0.000000 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 4 2
M V30 4 1 4 5
M V30 5 2 5 6
M V30 6 1 6 7
M V30 7 1 6 8
M V30 8 2 8 9
M V30 9 1 9 10
M V30 10 2 10 11
M V30 11 1 11 12
M V30 12 1 12 13
M V30 13 1 12 14
M V30 14 1 4 15
M V30 15 2 15 16
M V30 16 1 16 17
M V30 17 2 17 18
M V30 18 1 18 19
M V30 19 2 19 20
M V30 20 1 5 11 CFG=1
M V30 21 1 20 15
M V30 END BOND
M V30 END CTAB
M END'''
bug_mb2 = '''
RDKit 2D
0 0 0 0 0 0 0 0 0 0999 V3000
M V30 BEGIN CTAB
M V30 COUNTS 20 21 0 0 0
M V30 BEGIN ATOM
M V30 1 N -0.024300 -1.051200 0.000000 0
M V30 2 C 0.690200 -1.463700 0.000000 0
M V30 3 O 0.690200 -2.288700 0.000000 0
M V30 4 N 1.404500 -1.051200 0.000000 0
M V30 5 C 2.119100 -1.463700 0.000000 0
M V30 6 C 2.119100 -2.288700 0.000000 0
M V30 7 C 1.404500 -2.701200 0.000000 0
M V30 8 C 2.833500 -2.701200 0.000000 0
M V30 9 C 3.547900 -2.288700 0.000000 0
M V30 10 N 3.547900 -1.463700 0.000000 0
M V30 11 C 2.833600 -1.051200 0.000000 0
M V30 12 C 3.363800 -0.419100 0.000000 0
M V30 13 C 4.176300 -0.562300 0.000000 0
M V30 14 C 3.081600 0.356100 0.000000 0
M V30 15 C 1.404500 -0.226000 0.000000 0
M V30 16 N 2.155300 0.191900 0.000000 0
M V30 17 C 2.161900 1.051300 0.000000 0
M V30 18 C 1.417800 1.480900 0.000000 0
M V30 19 C 0.676800 1.045500 0.000000 0
M V30 20 C 0.690200 0.186400 0.000000 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 4 2 CFG=1
M V30 4 1 4 5
M V30 5 2 5 6
M V30 6 1 6 7
M V30 7 1 6 8
M V30 8 2 8 9
M V30 9 1 9 10
M V30 10 2 10 11
M V30 11 1 11 12
M V30 12 1 12 13
M V30 13 1 12 14
M V30 14 1 4 15
M V30 15 2 15 16
M V30 16 1 16 17
M V30 17 2 17 18
M V30 18 1 18 19
M V30 19 2 19 20
M V30 20 1 5 11
M V30 21 1 20 15
M V30 END BOND
M V30 END CTAB
M END
'''
The text was updated successfully, but these errors were encountered:
Describe the bug
The bond wedging code prefers to wege non-ring bonds, but this can lead to creation of additional atropisomeric bonds on re-parsing.
Here's an example.
Start with this molecule, constructed from the mol block
bug_mb
defined below:Parse that and display it:
As can be seen here, the wedging code prefers to wedge the non-cyclic bond between atoms 3 and 1.
If we generate a mol block from this and then re-parse it, we now have two atropisomeric bonds:
The mol block
bug_mb2
, which includes the wedge from bond 3 to bond 1, is also below.When selecting which bond to wedge around atropisomeric bonds, the wedging code should prefer cyclic bonds in order to avoid this kind of ambiguity.
Configuration (please complete the following information):
input data
The text was updated successfully, but these errors were encountered: