Dear all,

I noticed another small issue when importing mol / sd data and calculating
RDKIT descriptors.

There is a difference between direct import and smiles (or second mol-block
conversion):

Take Mercury as an simplified example: [Hg+]

If imported as smiles Descriptors.NumRadicalElectrons() reports 1.0

>>> smiMol = Chem.MolFromSmiles("[Hg+]")
>>> Descriptors.NumRadicalElectrons(smiMol)
1.0

If I use this mdl molfile:

mdl="""Mercury
  Mrv0541 03241519412D

  1  0  0  0  0  0            999 V2000
    5.2935   -7.2164    0.0000 Hg  0  3  0  0  0  0  0  0  0  0  0  0
M  CHG  1   1   1
M  END"""

>>> mdlMol = Chem.MolFromMolBlock(mdl)
>>> Descriptors.NumRadicalElectrons(mdlMol)
0.0

BUT if ​converted twice I get the same as with the Smiles input:

>>> mdlMol2 = Chem.MolFromMolBlock(Chem.MolToMolBlock(mdlMol))
>>> Descriptors.NumRadicalElectrons(mdlMol2)
1.0

​The difference in the Mol file is that the valency in the ctab is set to
15 (0) when exported using MolToMolBlock.

I am wondering if there might be a standardization / assignment step
missing in the MolFromMolBlock when called with an "external" mol file as
input?

Best,
Michael
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to