Hello guys, I'm a artificial intelligence major, so I don't know a lot about aromaticity definitions in chemistry but since I'm doing some research in that field I run into a weird problem with identifying the aromatic bonds. I initialize the reaction as follows:
rxn = "O[C:1](=[O:2])[c:3]1[cH:4][cH:5][c:6]([F:7])[c:8](-[c:9]2[c:10]([F:11])[cH:12][cH:13][cH:14][c:15]2[F:16])[n:17]1.[CH3:18][C@H:19]1[CH2:20][N:21]([c:22]2[c:23]([NH2:24])[cH:25][n:26][c:27]3[c:28]2[CH2:29][CH2:30][O:31]3)[CH2:32][C@@H:33]([NH:34][C:35](=[O:36])[O:37][C:38]([CH3:39])([CH3:40])[CH3:41])[C@@H:42]1[O:43][Si:44]([CH3:45])([CH3:46])[C:47]([CH3:48])([CH3:49])[CH3:50]>>[C:1](=[O:2])([c:3]1[cH:4][cH:5][c:6]([F:7])[c:8](-[c:9]2[c:10]([F:11])[cH:12][cH:13][cH:14][c:15]2[F:16])[n:17]1)[NH:24][c:23]1[c:22]([N:21]2[CH2:20][C@H:19]([CH3:18])[C@@H:42]([O:43][Si:44]([CH3:45])([CH3:46])[C:47]([CH3:48])([CH3:49])[CH3:50])[C@H:33]([NH:34][C:35](=[O:36])[O:37][C:38]([CH3:39])([CH3:40])[CH3:41])[CH2:32]2)[c:28]2[c:27]([n:26][cH:25]1)[O:31][CH2:30][CH2:29]2" reaction = AllChem.ReactionFromSmarts(rxn) AllChem.SanitizeRxn(reaction) reaction.Initialize() products = reaction.GetProducts() reactants = reaction.GetReactants() The problem arises when I check whether the atom environments have changed. That includes changes in neighborhood size, neighboring atom types and bond types. But, for some reason, it detects different bond types in the reactant molecule and product molecule, even if the structure does not change at all. Pictures are in the links and in the attachment of the mail The bond 26 - 27 should technically not be highlighted, but it is because the bond types are different. In the reactant it says AROMATIC, but in the product it is SINGLE. Is it correct, in a chemical sense, or is it a bug in RDKit aromaticity calculation? How can I avoid adding this bond? Reactant 1: http://prntscr.com/ne3n44 Reactant 2: http://prntscr.com/ne3p6x Product: http://prntscr.com/ne3pfw This is the code I'm using to compare the bond types : product_mol.GetBondBetweenAtoms(product_atom_ind1, product_atom_ind2).GetBondType() != reactant_mol.GetBondBetweenAtoms(reactant_atom_ind1, reactant_atom_ind2).GetBondType() if I print out the results, the output is: >>> SINGLE - AROMATIC Thank you for the help and if you need more background info, please let me know. I apologize if the question was asked before. Kind regards, Hasic Haris, MSc Tokyo Institute of Technology
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss