Hi there,

I am building a script in python that removes a certain moiety from two 
molecules and calculates the RMSD between the remaining structure.

I am doing this by asking for one or more SMARTS strings to find in the 
molecules, labelling these atoms and deleting them using 
OBMol.DeleteAtom(). Then, I align the molecules and find the RMSD using 
the OBAlign() class.

This works fine for some SMARTS string, but for others it gives a very 
high and unrealistic RMSD value. I investigated the reason for this and 
I found out that this is caused by a bad alignment of the two molecules. 
I suspect that this is caused by a disordering of the atom labels caused 
by removing certain SMARTS strings. I tested this by printing the 
canonical labels.

I tried to renumber the atoms using OBMol.RenumberAtoms(), 
unsuccessfully. Symmetry should not be a problem in these molecules.

Did anyone come across this, or have a better solution? I am attaching a 
simplified version of my code below:


import pybel
ob = pybel.ob

mol = [mola,molb]
smarts = [pybel.Smarts("[OH]C=O"),pybel.Smarts("C=C(C#N)C(=O)O")]

for mols in mol:
     mols.OBMol.StripSalts()
     mols.removeh()

if removemoiety:

     for ligands in smarts:

         i = 0
         todelete = []
         for mols in mol:
             todelete.append([])
             for atom in mols:
                 for l in ligands.findall(mol[i]):
                     if atom.OBAtom.GetIdx() in l:
                         todelete[i].append(atom.OBAtom)
             i += 1

         j = 0
         for mols in todelete:
             for atom in mols:
                 mol[j].OBMol.DeleteAtom(atom)
             j += 1


align = ob.OBAlign()
align.SetRefMol(mol[0].OBMol)
align.SetTargetMol(mol[1].OBMol)
align.Align()
print align.GetRMSD()


Thank you very much for your help!

Best,
Pepe

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to