Re: [Rdkit-discuss] nitro-compounds from smarts
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
|
From: Rafal R. <rmr...@gm...> - 2017-05-04 20:22:31
|
Greg,
Thx for answer, but it is still unclear for me. You wrote:
> So, the short answer to your question is: "yes". You will need to rewrite
> your SMARTS queries so that nitro groups are expressed consistently. If you
> want those queries to match what the RDKit's molecule processing code
> produces, the nitro's themselves should be written '[N+](=O)[O-]'
so:
this three Mols (m1, m2, m33) below should all represent nitrobenzene,
right?
>>> m33=Chem.MolFromSmarts('c1ccccc1[N+](=O)[O-]')
>>> m1=Chem.MolFromSmiles('c1ccccc1[N+](=O)[O-]')
>>> m2=Chem.MolFromSmiles('c1ccccc1N(=O)(=O)')
but
1. first strange thing is smiles of m33:
>>> Chem.MolToSmiles(m33)
'O=N(O)c1ccccc1'
this not look like nitrobenzene for me
2. results of HasSubstructMatch is really unexpected:
>>> m2.HasSubstructMatch(m33)
True
>>> m1.HasSubstructMatch(m33)
True
>>> m33.HasSubstructMatch(m1)
False
>>> m33.HasSubstructMatch(m2)
False
>>>
m1, m2 is substruct of m33 but m33 is not substuct of m1 or m2. I
really dont understand this.
It seems this is problem with smarts mol:
>>> m33.HasSubstructMatch(m33)
False
>>>
Is it really correct behaviour?
Regards,
Rafał
|