Dear Masgils, Try: AllChem.GetBestRMS(mols[0],mols[1],map=[list(zip(a,b))]) I hope this works.
Regards, Omar On Fri, Jul 26, 2019 at 4:52 AM Masgils <masg...@163.com> wrote: > Dear Paolo, > Thank you very much. It was very helpful. > I get atom idx of the corresponding structure in each molecule successful! > But there is another problem. > > When I used: > > a = mols[0].GetSubstructMatch(generic) > b = mols[1].GetSubstructMatch(generic) > AllChem.GetBestRMS(mols[0],mols[1],map=list(zip(a,b))) > > The AllChem.GetBestRMS arise a ValueError: > > --------------------------------------------------------------------------- > ValueError Traceback (most recent call last) > <ipython-input-74-fd80273b39cc> in <module> > 1 a = mols[0].GetSubstructMatch(generic) > 2 b = mols[1].GetSubstructMatch(generic) > ----> 3 AllChem.GetBestRMS(mols[0],mols[1],map=list(zip(a,b))) > > ValueError: sequence does not support length query > > Is its usage different from the atomMap parameter in Chem. > rdMolAlign.AlignMol? > > Best Regards, > M. > > At 2019-07-26 01:07:13, "Paolo Tosco" <paolo.tosco.m...@gmail.com> wrote: > > Dear Masgils, > > you may try something along these lines, i.e. make atoms and/or bonds > generic on one of the molecules with rdmolops.AdjustQueryProperties() in > order to get subtructures to match, and then use rdMolAlign.GetBestRMS(): > > piperidine = > Chem.AddHs(Chem.MolFromSmiles("C1CC(C)CCN1"))AllChem.EmbedMolecule(piperidine)AllChem.MMFFOptimizeMolecule(piperidine)piperidine_noh > = Chem.RemoveHs(piperidine) > > piperazine = > Chem.AddHs(Chem.MolFromSmiles("C1CN(C)CCN1"))AllChem.EmbedMolecule(piperazine)AllChem.MMFFOptimizeMolecule(piperazine)piperazine_noh > = Chem.RemoveHs(piperazine) > > piperidine_noh > > piperazine_noh > > piperidine_noh.GetSubstructMatches(piperazine_noh) > > () > > params = AllChem.AdjustQueryParameters() > > params.makeAtomsGeneric = True > > params.makeBondsGeneric = True > > piperazine_noh_generic = AllChem.AdjustQueryProperties( > piperazine_noh, params) > > piperazine_noh_generic > > piperidine_noh.GetSubstructMatches(piperazine_noh_generic) > > ((0, 1, 2, 3, 4, 5, 6),) > > AllChem.GetBestRMS(piperazine_noh_generic, piperidine_noh) > > 0.39432427325884206 > > > Hope this helps, cheers > p. > > On 07/25/19 16:53, Masgils wrote: > > Hi, all > > Is it possible use GetSubstructMatches() to match a substructure with one or > two atom different from ref_mol? (eg. a Piperidine ring and a Piperazing ring) > > And how to get the RMSD between corresponding atoms of two substructures? > > > > > > _______________________________________________ > Rdkit-discuss mailing > listRdkit-discuss@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/rdkit-discuss > > > > > > _______________________________________________ > Rdkit-discuss mailing list > 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