On Tue, Apr 5, 2011 at 11:07 AM, JP <jeanpaul.ebe...@inhibox.com> wrote: > Greg - there is an inherent subtlety in here - check my thinking... > > You might generate a 1,000 conformers which are all at least 1.0A > RMS(D) from the first conformer, but which are all 0.1A RMS(D) from > each other.
No. If you use the RMS(D) filter on conformer generation, it applies to all conformers. Here's a modified version of the script that shows this: #------------------------------------- # usual imports from rdkit import Chem from rdkit.Chem import AllChem # generate a mol mol = Chem.MolFromSmiles('O=CCC=O') # add hydrogens mol_h = AllChem.AddHs(mol) # notice the prune threshold - set to 1.0 RMS... conformation_ids = AllChem.EmbedMultipleConfs(mol_h, numConfs=50, pruneRmsThresh=1.0) confIds = [x.GetId() for x in mol_h.GetConformers()] for i in range(len(confIds)): for j in range(i+1,len(confIds)): # match the first (original) conformer to the rest rms = AllChem.AlignMol(mol_h, mol_h, confIds[i], confIds[j]) bestrms = AllChem.GetBestRMS(mol_h, mol_h, confIds[i],confIds[j]) print(i,j,rms,bestrms) #------------------------------------- The output I get is: ~ > python script.py (0, 1, 1.3379167659438251, 0.60362436042913781) (0, 2, 1.1782030519271491, 0.59622250108410513) (0, 3, 1.2243862716355547, 0.30392328812710107) (0, 4, 1.1984592787586832, 0.55143501013497065) (0, 5, 1.0641915526094818, 0.68902440786534314) (1, 2, 1.0255947054908345, 0.59258704355875447) (1, 3, 1.0951734935453765, 0.44791337584830399) (1, 4, 1.0543889914981652, 0.9168070962596423) (1, 5, 1.1385762625965217, 0.43605179946798073) (2, 3, 1.5373690362549735, 0.53769968087304854) (2, 4, 1.2293196779352933, 0.81799884353238672) (2, 5, 1.0825253214349586, 0.34237739827222707) (3, 4, 1.1332931410059917, 0.68575442529906516) (3, 5, 1.0079860535928928, 0.65467761705027916) (4, 5, 1.4641765048256545, 1.0142361289438402) The sample script above has another correction to the original one: It's not safe to assume that conformers are labelled sequentially. They often are, but there's no guarantee of this. To correct for this, I modified the script so that it loops over the conformer ids that are actually present. Best, -greg ------------------------------------------------------------------------------ Xperia(TM) PLAY It's a major breakthrough. An authentic gaming smartphone on the nation's most reliable network. And it wants your games. http://p.sf.net/sfu/verizon-sfdev _______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss