Dear Greg,
In [10] and Out[10] of your answer below (thanks!) incited me to believe
that the geometry of double bonds
outside of the reactive center in the reaction product is not lost for
ever, contrarily to what my example showed.
So, I went back to my example and printed the SMILES representations of
the reagent and of the product.
The double bond are there and in good shape:
C/C=C(\C=C(C)\C=C(C)\C=C/C=C(/C)C(=O)[C@]12O[C@H]1[C@@](O)(CCO)N=C2O)C(=O)OC
for the reagent
C/C=C(\C=C(C)\C=C(C)\C=C/C=C(/C)C(=O)[C@]12O[C@H]1[C@@](O)(CCO)NC2=O)C(=O)OC
for the product.
So, what I conclude is that MolToInchi does not consider the double bond
geometry in the reaction product
but that MolToSmiles does it.
The creation of new Mol objects from these two SMILES and the subsequent
generation of InChI strings produces identical results
as expected, because the reagent and the product are tautomers.
By the way, does the last RDKit release correct the problem you
mentioned about MolFromSmiles
in you email dated February 14, 2019?
Best regards,
Jean-Marc
Le 03/04/2019 à 18:16, Greg Landrum a écrit :
Hi Jean-Marc,
Unfortunately not. The RDKit currently ignores stereo information from
"mapped bonds" (bonds for which both atoms are mapped) from the
reactants. If you include stereo info in the reaction itself, that
will be copied over in to the products, but that is not what you're
looking for. Here's an example:
In [4]: r1 =
AllChem.ReactionFromSmarts('[C:1][C:2]=[C:3][F:4]>>[C:1][C:2]=[C:3][Cl:4]')
In [5]:
Chem.MolToSmiles(r1.RunReactants((Chem.MolFromSmiles('CC=CF'),))[0][0])
Out[5]: 'CC=CCl'
In [6]:
Chem.MolToSmiles(r1.RunReactants((Chem.MolFromSmiles('C/C=C/F'),))[0][0])
Out[6]: 'CC=CCl'
In [7]: r2 =
AllChem.ReactionFromSmarts('[C:1]/[C:2]=[C:3]/[F:4]>>[C:1]/[C:2]=[C:3]/[Cl:4]')
In [8]:
Chem.MolToSmiles(r2.RunReactants((Chem.MolFromSmiles('C/C=C/F'),))[0][0])
Out[8]: 'C/C=C/Cl'
In [9]:
Chem.MolToSmiles(r2.RunReactants((Chem.MolFromSmiles('CC=CF'),))[0][0])
Out[9]: 'C/C=C/Cl'
In [10]:
Chem.MolToSmiles(r1.RunReactants((Chem.MolFromSmiles('C/C=C/CC=CF'),))[0][0])
Out[10]: 'C/C=C/CC=CCl'
It's more tolerant of atomic stereochemistry:
In [11]: r3 =
AllChem.ReactionFromSmarts('[C:1][C:2][F:3]>>[C:1][C:2][O:3]')
In [12]:
Chem.MolToSmiles(r3.RunReactants((Chem.MolFromSmiles('N[C@H](Cl)CF'),))[0][0])
Out[12]: 'N[C@H](Cl)CO'
In [13]:
Chem.MolToSmiles(r3.RunReactants((Chem.MolFromSmiles('C[C@H](F)Cl'),))[0][0])
Out[13]: 'C[C@H](O)Cl'
Figuring out a good solution for the double bond handling would be a
nice challenge for the next release.
Best,
-greg
On Wed, Apr 3, 2019 at 5:54 PM Jean-Marc Nuzillard
<jm.nuzill...@univ-reims.fr <mailto:jm.nuzill...@univ-reims.fr>> wrote:
Dear all,
I have a molecule that comes from an InChI string, that is decoded
as an iminol I would like to transform in its amide tautomer.
The same molecule contains also a series of doubles bonds.
The following code:
inchi1 =
"InChI=1S/C23H29NO7/c1-6-17(19(27)30-5)13-15(3)12-14(2)8-7-9-16(4)18(26)23-20(31-23)22(29,10-11-25)24-21(23)28/h6-9,12-13,20,25,29H,10-11H2,1-5H3,(H,24,28)/b8-7-,14-12+,15-13+,16-9-,17-6+/t20-,22-,23-/m0/s1"
m1 = Chem.MolFromInchi(inchi1)
rxn =
AllChem.ReactionFromSmarts('[C:1]([OH:2])=[N:3]>>[C:1](=[OH0:2])[NH:3]')
ps = rxn.RunReactants((m1,))
m2 = ps[0][0]
inchi2 = Chem.MolToInchi(m2)
print(inchi1)
print(inchi2)
print(inchi1 == inchi2)
prints:
[17:26:42] WARNING: Omitted undefined stereo
InChI=1S/C23H29NO7/c1-6-17(19(27)30-5)13-15(3)12-14(2)8-7-9-16(4)18(26)23-20(31-23)22(29,10-11-25)24-21(23)28/h6-9,12-13,20,25,29H,10-11H2,1-5H3,(H,24,28)/b8-7-,14-12+,15-13+,16-9-,17-6+/t20-,22-,23-/m0/s1
InChI=1S/C23H29NO7/c1-6-17(19(27)30-5)13-15(3)12-14(2)8-7-9-16(4)18(26)23-20(31-23)22(29,10-11-25)24-21(23)28/h6-9,12-13,20,25,29H,10-11H2,1-5H3,(H,24,28)/t20-,22-,23-/m0/s1
False
in which the /b layer has disappeared, leaving the double bond
geometry undefined.
Is there a way to preserve or to recover the lost information?
Jean-Marc
--
Dr. Jean-Marc Nuzillard
Institute of Molecular Chemistry, CNRS UMR 7312
Faculté des Sciences Exactes et Naturelles, Bâtiment 18
BP 1039
51687 REIMS Cedex 2
France
Tel : 33 3 26 91 82 10
Fax : 33 3 26 91 31 66
http://www.univ-reims.fr/icmr
http://eos.univ-reims.fr/LSD/CSNteam.html
http://www.univ-reims.fr/LSD/
http://www.univ-reims.fr/LSD/JmnSoft/
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
<mailto:Rdkit-discuss@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
--
Jean-Marc Nuzillard
Directeur de Recherches au CNRS
Institut de Chimie Moléculaire de Reims
CNRS UMR 7312
Moulin de la Housse
CPCBAI, Bâtiment 18
BP 1039
51687 REIMS Cedex 2
France
Tel : 03 26 91 82 10
Fax : 03 26 91 31 66
http://www.univ-reims.fr/icmr
http://eos.univ-reims.fr/LSD/CSNteam.html
http://www.univ-reims.fr/LSD/
http://www.univ-reims.fr/LSD/JmnSoft/
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss