I noticed that I'm getting a different substructure match depending on
whether I have called the MMFF optimization.  This is reproducible in
python with


>> m = Chem.MolFromSmiles("Cc1cccc(Oc2cnc(=O)[nH]c2)c1")

>> m1 = Chem.AddHs(m)
>> m2 = Chem.Mol(m1)
>> AllChem.EmbedMolecule(m2);
>> m2.GetSubstructMatches(Chem.MolFromSmarts('a'))

((1,), (2,), (3,), (4,), (5,), (7,), (8,), (9,), (10,), (12,), (13,), (14,))


>> AllChem.MMFFOptimizeMolecule(m2);
>> m2.GetSubstructMatches(Chem.MolFromSmarts('a'))

((1,), (2,), (3,), (4,), (5,), (14,))


Is this expected behavior?  I notice in the C++ code that the constructor
for RDKit::MMFF::MMFFMolProperties will call MolOps::Kekulize, so maybe
this is expected.  For my application it's undesirable, and I can work
around it by creating a copy of my ROMol and generating the
MMFFMolProperties object using that copy (which can then be discarded).  Is
there a better workaround?



Jason Biggs
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to