Omar

That was an easy fix. Thanks a lot! I really appreciate it.

Jerry

From: Omar H94 <omar8...@gmail.com>
Date: Saturday, December 19, 2020 at 5:58 AM
To: "Parks, Jerry M." <park...@ornl.gov>
Cc: "rdkit-discuss@lists.sourceforge.net" <rdkit-discuss@lists.sourceforge.net>
Subject: [EXTERNAL] Re: [Rdkit-discuss] Using FindMCS and CalcRMS to calculate 
RMS between docked poses of a set of similar molecules

Dear Jerry,

When calculating the RMS, try:

rms = AllChem.CalcRMS(probeMol, refMol, map=[list(zip(mv, refMatch))])

Note that you are calculating MCS across all mols, however; you might want to 
consider pairwise-MCS (i.e. MCS between each docked ligand and the ref ligand 
individually and then calculate RMS based on it) since you want difference 
between each docked ligand and reference ligand.

I hope this works for you.
Best regards,
Omar

On Sat, Dec 19, 2020 at 2:03 AM Parks, Jerry M. via Rdkit-discuss 
<rdkit-discuss@lists.sourceforge.net<mailto:rdkit-discuss@lists.sourceforge.net>>
 wrote:
Hello

I’m trying to calculate RMSDs between a reference molecule from an X-ray 
structure and a series of similar but somewhat different molecules with a 
common scaffold that I have docked to the protein. I don’t want to align the 
structures, I just want to measure how different their docked poses are to the 
reference structure. All of the molecules have the same core structure, but 
have different functional groups. This functionality is available in the 
recently developed web server LigRMSD (https://ligrmsd.appsbio.utalca.cl), but 
I need to make some modifications to the procedure.

Following this thread 
(https://sourceforge.net/p/rdkit/mailman/message/35678724/) and this blog post 
(http://rdkit.blogspot.com/2013/12/using-allchemconstrainedembed.html), I’ve 
written the following code:

from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem.Draw import IPythonConsole
from rdkit.Chem.Draw.MolDrawing import MolDrawing, DrawingOptions
from rdkit.Chem import rdFMCS
import glob

# Load a set of mol files.
mols = []
for m in glob.glob('*.mol'):
    tmpmol = Chem.MolFromMolFile(m)
    name_without_suffix = m[:-4]
    tmpmol.SetProp('_Name', name_without_suffix)
    mols.append(tmpmol)

# Draw the molecules.
Chem.Draw.MolsToGridImage(mols, molsPerRow=2, subImgSize=(350, 350), 
legends=[mol.GetProp('_Name') for mol in mols])

# Find the MCS.
mcs = rdFMCS.FindMCS(mols,threshold=1.0, ringMatchesRingOnly=True, 
completeRingsOnly=True)

# Align everything to the reference molecule.

patt = Chem.MolFromSmarts(mcs.smartsString)
refMol = mols[0]
refMatch = refMol.GetSubstructMatch(patt)
rmsVs = []
for probeMol in mols[1:]:
    mv = probeMol.GetSubstructMatch(patt)
    rms = AllChem.AlignMol(probeMol, refMol, atomMap=list(zip(mv, refMatch)), 
maxIters=0)
    print(probeMol.GetProp('_Name'), f'{rms:.2f}')
    rmsVs.append(rms)

However, even though I set maxIters=0 in the call to AlignMol, the molecules 
have all been translated to a common origin (which is not what I want).

I tried replacing that line of code with the following call to CalcRMS (using 
the same atom mapping):

rms = AllChem.CalcRMS(probeMol, refMol, map=list(zip(mv, refMatch)))

but then I got the following error:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-0faef2f852d9> in <module>()
      8     mv = probeMol.GetSubstructMatch(patt)
      9     #rms = AllChem.AlignMol(probeMol, refMol, atomMap=list(zip(mv, 
refMatch)), maxIters=0)
---> 10     rms = AllChem.CalcRMS(probeMol, refMol, map=list(zip(mv, refMatch)))
     11     print(probeMol.GetProp('_Name'), f'{rms:.2f}')
     12     rmsVs.append(rms)

ValueError: sequence does not support length query

Any suggestions for fixing the code would be appreciated.

Thank you,
Jerry Parks
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net<mailto:Rdkit-discuss@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to