On Tue, May 26, 2009 at 9:51 AM, Evgueni Kolossov <[email protected]> wrote:
>
> One additional question about this subject:
> If we have molecules in both tautomeric forms:'C[N+](=O)([O-])' and
> CN(=O)(=O)'
> than what we will have after SmilesToMol() and MolToSmiles() (which will
> sanitise molecule)?
There's no difference between the results, the sanitization step done
by MolToSmiles() or by reading molecules in from a mol block "fixes"
the system by generating the zwitterionic form:
--------------------
[2]>>> m = Chem.MolFromSmiles('CN(=O)(=O)')
[3]>>> print Chem.MolToMolBlock(m)
RDKit
4 3 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0
2 3 1 0
2 4 2 0
M CHG 2 2 1 3 -1
M END
[4]>>> m2 = Chem.MolFromSmiles('C[N+](=O)([O-])')
[5]>>> print Chem.MolToMolBlock(m)
RDKit
4 3 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0
2 3 1 0
2 4 2 0
M CHG 2 2 1 3 -1
M END
--------------------
-greg