Fabian, On Tue, Mar 19, 2013 at 2:05 PM, Fabian Dey <[email protected]> wrote: > > I started writing a RDKIT-python-script including Andrew Dalke's MCS > implementation (thanks by the way) for a ligand-based (MCS) alignment and > noticed some > odd things - which might also be due to my implementation. The idea of the > program is that given a template molecule and a library (both as SDF), the > MCS > is searched between the template and a particular library molecule. A new > conformation for the library molecule is generated using as a "coordinate > map" > the atoms identified in the MCS with the template (using > "EmbedMultipleConf(....)"). The conformations are optimized, redundancy is > removed and the most similar > conformations are written to a new SDF (full code at end mail , start with > "python MCSalign.py template.sdf library.sdf out.sdf ").
nice idea. I like it! > The points I noticed: > > - after running "EmbedMultipleConf(....)" the atoms of the MCS are often not > aligned (reference vs. library compound) although I specified a coordinate > map (I also tried increasing the > force tolerance which did not help), and I have to do an additional > alignment for the correct superposition - is this to be expected? Yes. The coordinate map is used to provide distance constraints for the core. You need to do the alignment step to get the atoms in the right place. > - Sometimes when I use the same molecule as reference and library compound > (for testing purposes), the conformations do not match even after the > alignment ? > (e.g. ZINC-molecule http://zinc.docking.org/substance/33006049) I assume that you're doing the alignment and looking at the results before you call the force-field minimization? That would, of course, lead to problems. Another possible source of a mismatch is that the embedding process isn't perfect: the distance constraints you provide (the coordinates) are not necessarily perfectly satisfied in the conformation that's returned. What can help with this is to do a UFF optimization with added constraints that force the core atoms of the new conformation to match the core atoms in the reference molecule. You may find it useful to look at the the code in the function ConstrainedEmbed in $RDBASE/rdkit/Chem/AllChem.py. This does a constrained conformation generation for a molecule using a core as a reference structure. It doesn't do the MCS analysis, but you could pretty easily add that. > - in order to get a 1-1 correspondence of atom ids (to get the coordinate > map) I had to search the MCS-SMARTS match again against the original files > to > get the atom-ids - is there a more direct way to do this? There's not, as Andrew already answered. -greg ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Rdkit-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

