Technical Support Forum Index
Technical Support Forum
Access ChemAxon scientists and developers here. For registration and login issues contact website support.

Support Ticket System is replacing forum

This forum was converted into a searchable archive. You cannot add posts here any more. For support please use our new Ticket System.

Create your first ticket
MMPAlignment RMSD
To watch this topic for replies  Register (enables digests) or give email address:
This topic is locked: you cannot edit posts or make replies.
Display posts from previous:   
    View previous topic :: View next topic    
Author Message
Steven

Joined: 02 Nov 2001
Posts: 52

View user's profile

Back to top
Link to postPosted: Wed Oct 15, 2014 11:18 pmPost subject: MMPAlignment RMSD Reply with quote

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.

Adrian
ChemAxon personnel
Joined: 06 Jan 2005
Posts: 157

View user's profile

Back to top
Link to postPosted: Fri Oct 24, 2014 2:56 pmPost subject: Reply with quote

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

Steven

Joined: 02 Nov 2001
Posts: 52

View user's profile

Back to top
Link to postPosted: Tue Jun 30, 2015 7:34 pmPost subject: Re: Reply with quote

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).

 

-&

Adrian
ChemAxon personnel
Joined: 06 Jan 2005
Posts: 157

View user's profile

Back to top
Link to postPosted: Wed Jul 01, 2015 2:24 pmPost subject: Reply with quote

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

Steven

Joined: 02 Nov 2001
Posts: 52

View user's profile

Back to top
Link to postPosted: Wed Jul 01, 2015 10:27 pmPost subject: Re: Reply with quote

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?

-&

Daniel
ChemAxon personnel
Joined: 22 Jan 2012
Posts: 315

View user's profile

Back to top
Link to postPosted: Wed Jul 08, 2015 12:38 pmPost subject: Reply with quote

Dear Steven, 

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

Daniel

László
ChemAxon personnel
Joined: 14 Jan 2011
Posts: 78

View user's profile

Back to top
Link to postPosted: Wed Jul 15, 2015 12:19 pmPost subject: Reply with quote

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 

Steven

Joined: 02 Nov 2001
Posts: 52

View user's profile

Back to top
Link to postPosted: Wed Jul 15, 2015 10:14 pmPost subject: Re: Reply with quote

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

-&

Daniel
ChemAxon personnel
Joined: 22 Jan 2012
Posts: 315

View user's profile

Back to top
Link to postPosted: Tue Jul 28, 2015 3:15 pmPost subject: Reply with quote

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

Steven

Joined: 02 Nov 2001
Posts: 52

View user's profile

Back to top
Link to postPosted: Tue Jul 28, 2015 11:14 pmPost subject: re: Reply with quote

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.

-&

László
ChemAxon personnel
Joined: 14 Jan 2011
Posts: 78

View user's profile

Back to top
Link to postPosted: Wed Jul 29, 2015 12:23 pmPost subject: Reply with quote

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 

Steven

Joined: 02 Nov 2001
Posts: 52

View user's profile

Back to top
Link to postPosted: Tue Sep 01, 2015 5:33 pmPost subject: re: Reply with quote

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)

-&

László
ChemAxon personnel
Joined: 14 Jan 2011
Posts: 78

View user's profile

Back to top
Link to postPosted: Thu Sep 10, 2015 4:12 pmPost subject: Reply with quote

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 

This topic is locked: you cannot edit posts or make replies.
Page 1 of 1


To watch this topic for replies   Register (enables digests) or give email address  
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum