MMPAlignment RMSD

User 2347372188

15-10-2014 22:18:10

Hello.  I'm using MMPAlignment to get the best overlay of two identical compounds (with differing 3D coordinates) and I'm getting an RMSD of -1.0.  Since the RMSD is computed from the MCS, and the MCS includes the entire compound, it seems that the RMSD should be a sensible number (i.e., >= 0).
On a closely related note, is there a better way to find the best (lowest RMSD) 3D alignment of two identical compounds with differing 3D coordinates?


Thanks.

ChemAxon 1b9e90b2e7

24-10-2014 13:56:06

Hi Steven,

The MMPAlignment modifies the coordinates of the MCS part of the molecule to align such a way, that  it will have the same coordinates as the MCS of the reference structure. For this calculation a series of flexible alignments, and special force field optimizations are carried out. The RMSD returned by the MMPAlignment represents the goodness of the fit of the two MCSes after this process. So, it should be be around 0 but of course still positive.
When the found MCS is too small with respect to the whole reference
structure, this complex process above falls
back to standard shape based alignment and the RMSD wll be -1.


MMPAlignment is benefical for studying pairs of very similar molecules, like matched molecule pairs.

For determinig rmsd between confromations, please see this other post:

https://www.chemaxon.com/forum/viewtopic.php?t=11040 />
Hope this helps, and sorry for the late answer.

Adrian

User 2347372188

30-06-2015 18:34:32

Thank you for the response.  I'm aligning a number of different conformers of the same molecule.  In that case, one would expect that MMPAlignment would never return a RMSD of -1 given that the 2D structures of the query and target molecules are identical.  However, I am still occasionally getting a return value of -1 for some reason.  For example, in the case of one molecule I'm aligning 15 conformations against a single lowest energy conformation.  10 of the alignments return a positive RMSD and 4 of the alignments return -1.  All of the conformations are very similar (RMSDs < 0.08).


 


-&

ChemAxon 1b9e90b2e7

01-07-2015 13:24:16

Hi Steven,


Indeed,  the MMPAlignment should not return RMSD  = -1 for different conformations of the same structure. In your  case of aligning different conformations of the same
structure, MMPAlignment should return RMSD=0. Here the value '-1' stands
for that the overlay of the MCS part was not successful.


MMPAlignment changes the "second" molecule in such a way, that the MCS part  will have exactly the same coordinates as the MCS of the "first" molecule. While the non MCS parts of the "second" are flexibly overlayed to the "first" by maximizing the a shape/chemical atomtype function.The RMSD returned by the program is calculated for the MCS atoms. I am wondering if this is that you really what to achieve with the two conformations.


If you could send me over the molecule pair, that results in this behavior, along with the code snippet you are using, we can either fix MMPAlignment, or suggest some other tool, that may better suites your usecase.


Kind regards,


Adrian

User 2347372188

01-07-2015 21:27:43

Thank you for the rapid response.  Maybe there is a better more direct way to do what I'm trying to do.   I'm simply trying to align (superpose) N-1 conformations of a single molecule on the lowest evergy conformation of that molecule in a rigid fashion.  In other words, suppose I have compute N conformations for a single molecule.  Next, I select one conformer from the ensemble to be my reference.  Following that, I want to rotate and translate the remaining N-1 conformers in a way as to minimized the RMSD of each conformer with respect to the reference conformer.  Finally, I want to be to get the RMSD and rotated/translated coordinates for each of the N-1 conformers.  Does that make sense?


-&

ChemAxon d51151248d

08-07-2015 11:38:34

Dear Steven, 


We are considering the different possibilities for you to serve a good solution. We will get back to you soon. 


Daniel

ChemAxon 5fc3e8d7d0

15-07-2015 11:19:04

Dear Steven,


The mentioned functionality (rmsd calculation after conformation alignment) is not available in public API currently. We will provide you a small interface which contains the proper methods.


The typical usage of this interface:


import chemaxon.marvin.alignment.MCSAlignment;
import chemaxon.marvin.alignment.MCSAlignmentResult;

final MCSAlignment alignment = MCSAlignment.Factory.createNew(Molecule reference);
final MCSAlignmentResult result = alignment.align(Molecule otherMolecule);

result.rmsd(); // rmsd value after alignment process
result.rotatedMolecule(); // otherMolecule with new rotated/translated coordinates

This interface will be released next week (Marvin version 15.7.20).

Please let us know if you have any further question. 


Best regards,
Laszlo 

User 2347372188

15-07-2015 21:14:14

Thanks.  I am looking forward to trying out the new functionality.


-&

ChemAxon d51151248d

28-07-2015 14:15:58

Dear Steven, 


You could see the API and the documentation for the new interface here:


https://www.chemaxon.com/marvin/help/developer/beans/api/chemaxon/marvin/alignment/MCSAlignment.html


I hope this helps, 


Daniel

User 2347372188

28-07-2015 22:14:47

Hello.  This does not do what I want.  I would like to align molecules in a RIGID fashion.  In other words, the query molecule is to be rotated and translated in order to minimize the RMSD with the reference (target) molecule.  Bond lengths and angles in the query molecule should not be altered.  Thanks.


-&

ChemAxon 5fc3e8d7d0

29-07-2015 11:23:36

Dear Steven,


This calculation does exactly what you need.


Bond lengths and angles in the query molecule should not be altered.

The reference and aligned molecule are also rigid, their bonds and angles is not changed.


Could you send us an example (the two conformers) which shows the unexpected behavior?


Best regards,
Laszlo 

User 2347372188

01-09-2015 16:33:25

Hello.  I'm getting an Exception when using the rigid alignment code above.  The input conformations look good to me, but I'm still getting the following Exception and I'm wondering if you can give me clue as to what I'm doing wrong from the stack trace.  Thanks!


java.lang.ArrayIndexOutOfBoundsException: -1
    at chemaxon.marvin.alignment.AlignRigidEasy.align(AlignRigidEasy.java:228)
    at chemaxon.marvin.alignment.MCSAlignmentImpl.align(MCSAlignmentImpl.java:42)
    at com.tcal.conformation.RigidMcsAlignerTask.align(RigidMcsAlignerTask.java:93)


-&

ChemAxon 5fc3e8d7d0

10-09-2015 15:12:29

Dear Steven,


This exception is thrown if the reference molecule contains more atoms than the aligned molecule, e.g. the count of hydrogens in molecules are different. 
We have fixed this issue and the fix will be available next week (Marvin version 15.9.14).


Best regards,
Laszlo