Hello Greg, thank you for your quick reply. When I run AllChem.SanitizeMol(product) the error increases and more bonds that shouldn't be there are added. For all of them, the problem is the same, in the product they are marked as SINGLE and in the reactants as AROMATIC. Picture is in the attachment.
Note 1: I've also tried all the possible combination of sanitation (none, just reactants, just products, everything) for this example just to be sure, but the best result I get (the one in my previous question) is when I don't run SanitizeMol on the product. Note 2: It also happens to other examples (I added the pictures in the examples and the SMARTS below for reproduction), it's not just this one. Maybe I did something wrong in the code, but what I'm doing is pretty straightforward. I display it as a picture, but I also print the raw results just to be sure. I always get the same result, the SINGLE - AROMATIC mismatch. Add. Ex. 1: "Cl[CH2:1][C:2](=[O:3])[NH:4][c:5]1[c:6]([OH:7])[cH:8][cH:9][c:10]2[cH:11][cH:12][cH:13][cH:14][c:15]12>>[CH2:1]1[C:2](=[O:3])[NH:4][c:5]2[c:6]([cH:8][cH:9][c:10]3[cH:11][cH:12][cH:13][cH:14][c:15]23)[O:7]1" Add. Ex. 2: "Cl[C@H:1]([C:2]([NH:3][c:4]1[c:5]([OH:6])[c:7]([CH3:8])[cH:9][c:10]([CH3:11])[cH:12]1)=[O:13])[CH2:14][CH:15]([CH3:16])[CH3:17]>>[C@@H:1]1([CH2:14][CH:15]([CH3:16])[CH3:17])[C:2](=[O:13])[NH:3][c:4]2[c:5]([c:7]([CH3:8])[cH:9][c:10]([CH3:11])[cH:12]2)[O:6]1" Add. Ex. 3: "O[C:1](=[O:2])[c:3]1[cH:4][cH:5][c:6]([C:7]2([c:8]3[cH:9][cH:10][cH:11][cH:12][cH:13]3)[S:14][CH2:15][CH2:16][S:17]2)[cH:18][cH:19]1.[cH:20]1[cH:21][c:22]2[c:23]([o:24]1)[CH2:25][NH:26][CH2:27][CH2:28]2>>[C:1](=[O:2])([c:3]1[cH:4][cH:5][c:6]([C:7]2([c:8]3[cH:9][cH:10][cH:11][cH:12][cH:13]3)[S:14][CH2:15][CH2:16][S:17]2)[cH:18][cH:19]1)[N:26]1[CH2:25][c:23]2[c:22]([cH:21][cH:20][o:24]2)[CH2:28][CH2:27]1" Kind regards, Hasic Haris, MSc Tokyo Institute of Technology ________________________________ From: Greg Landrum <greg.land...@gmail.com> Sent: 20 April 2019 06:43 To: Haris Hasic Cc: rdkit-discuss@lists.sourceforge.net Subject: Re: [Rdkit-discuss] Question about bond aromaticity change detection HI Hasic, The products of reactions are not sanitized, which means that aromaticity perception has not been run. Try calling Chem.SanitizeMol on the reaction products and see if that helps. -greg On Fri, Apr 19, 2019 at 12:51 PM Haris Hasic <haris-ha...@hotmail.com<mailto:haris-ha...@hotmail.com>> wrote: 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<mailto:Rdkit-discuss@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss