chemaxon.marvin.alignment
Class AlignOnPairedAtoms

java.lang.Object
  extended by chemaxon.marvin.alignment.AlignOnPairedAtoms
All Implemented Interfaces:
chemaxon.license.Licensable

public class AlignOnPairedAtoms
extends java.lang.Object

Overlays two molecules using the user defined atom pairs
Example:

 Molecule mRef = null;
 Molecule m = null;
 AlignOnPairedAtoms ap = new AlignOnPairedAtoms();
 ap.setReferenceMolecule(mRef, false); // reference will be kept rigid
 ap.setMoleculeToAlign(m, true); // this will be kept flexible
 //add pairs where you want
 for (int i = 0; i < m.getAtomCount(); i++) {
    p.addAtomPair(i, i);
 }  
 ap.findFirst(); // aligns in the input conformation
 ap.findNext(); // randomizes the flexible molecules if flexible alignment selected and aligns.
 System.out.println("rmsd: " + p.getRmsd());
 Molecule result = p.getAlignedWithNewCoordinates();
 

Since:
marvin 5.2.3

Constructor Summary
AlignOnPairedAtoms()
           
 
Method Summary
 void addAtomPair(int atom0, int atom1)
          Adds an alignment constraint between the reference and aligned molecule.
 void addAtomPair(int atom0, int atom1, double weight)
          Adds an alignment constraint between the reference and aligned molecule.
 void findFirst()
          Overlays the molecule to align on the reference using the predefined atom pairs.
 void findNext()
          Randomizes dihedral angles of the input conformation for flexible molecules and aligns.
 Molecule getAlignedWithNewCoordinates()
           
 double[][] getCoordinatesOfAligned()
           
 double[][] getCoordinatesOfReference()
           
 java.util.Collection<AlignmentMolecule> getMolecules()
           
 chemaxon.marvin.alignment.NodeColor getNodeColor()
           
 AlignmentProperties.NodeType getNodeType()
           
 Molecule getReferenceWithNewCoordinates()
           
 double getRmsd()
           
 int getStepLimit()
           
 int getTimeLimit()
           
 boolean isLicensed()
           
 void removeAllPairs()
          Removes all user defined atom pairs.
 void removeMolecules()
           
 void setAromatize(boolean arg0)
           
 void setDehidrogenize(boolean arg0)
           
 void setFlexibleRingRotatableBondCount(int arg0)
           
 void setFlexibleRingSize(int arg0)
           
 void setLicenseEnvironment(java.lang.String arg0)
           
 void setMoleculeToAlign(Molecule m, boolean flexible)
          Sets the molecule to align to the reference.
 void setNodeType(AlignmentProperties.NodeType arg0)
           
 void setProgressMonitor(chemaxon.common.util.MProgressMonitor arg0)
           
 void setProperty(AlignmentProperties arg0)
           
 void setProximity(chemaxon.marvin.alignment.AlignmentProperties.ProximityPotentialType arg0)
           
 void setReferenceMolecule(Molecule m, boolean flexible)
          Sets the reference molecule to align to.
 void setStepLimit(int arg0)
           
 void setTimeLimit(int arg0)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AlignOnPairedAtoms

public AlignOnPairedAtoms()
Method Detail

removeMolecules

public void removeMolecules()

setReferenceMolecule

public void setReferenceMolecule(Molecule m,
                                 boolean flexible)
                          throws chemaxon.marvin.alignment.AlignmentException
Sets the reference molecule to align to. All previously added molecules are removed.

Parameters:
m - reference molecule
flexible - if true treat this molecule flexible. If false its conformation is frozen.
Throws:
AlignmentException

setMoleculeToAlign

public void setMoleculeToAlign(Molecule m,
                               boolean flexible)
                        throws chemaxon.marvin.alignment.AlignmentException
Sets the molecule to align to the reference.

Parameters:
m - this molecule will be translated and rotated
flexible - if true treat this molecule flexible. If false its conformation is frozen.
Throws:
AlignmentException

getCoordinatesOfReference

public double[][] getCoordinatesOfReference()

getCoordinatesOfAligned

public double[][] getCoordinatesOfAligned()

getReferenceWithNewCoordinates

public Molecule getReferenceWithNewCoordinates()

getAlignedWithNewCoordinates

public Molecule getAlignedWithNewCoordinates()

addAtomPair

public void addAtomPair(int atom0,
                        int atom1,
                        double weight)
                 throws chemaxon.marvin.alignment.AlignmentException
Adds an alignment constraint between the reference and aligned molecule. Both molecules must be added beforehand.

Parameters:
atom0 - atom seq starting from 0 from the reference molecule
atom1 - atom seq starting from 0 from the other molecule
weight - weight of the constraint of this pair
Throws:
chemaxon.marvin.alignment.AlignmentException - if there is no such atom

addAtomPair

public void addAtomPair(int atom0,
                        int atom1)
                 throws chemaxon.marvin.alignment.AlignmentException
Adds an alignment constraint between the reference and aligned molecule. Both molecules must be added beforehand.

Parameters:
atom0 - atom seq starting from 0 from the reference molecule
atom1 - atom seq starting from 0 from the other molecule
Throws:
chemaxon.marvin.alignment.AlignmentException - if there is no such atom

findFirst

public void findFirst()
               throws chemaxon.marvin.alignment.AlignmentException
Overlays the molecule to align on the reference using the predefined atom pairs.

Throws:
AlignmentException

findNext

public void findNext()
              throws chemaxon.marvin.alignment.AlignmentException
Randomizes dihedral angles of the input conformation for flexible molecules and aligns. If only rigid molecules selected does nothing.

Throws:
AlignmentException

getRmsd

public double getRmsd()
Returns:
the root mean square deviation of the current orientation of the two molecules.

removeAllPairs

public void removeAllPairs()
Removes all user defined atom pairs.


setProperty

public void setProperty(AlignmentProperties arg0)

getNodeType

public AlignmentProperties.NodeType getNodeType()

getNodeColor

public chemaxon.marvin.alignment.NodeColor getNodeColor()

setAromatize

public void setAromatize(boolean arg0)

setDehidrogenize

public void setDehidrogenize(boolean arg0)

setFlexibleRingSize

public void setFlexibleRingSize(int arg0)

setFlexibleRingRotatableBondCount

public void setFlexibleRingRotatableBondCount(int arg0)

getMolecules

public java.util.Collection<AlignmentMolecule> getMolecules()

isLicensed

public boolean isLicensed()
Specified by:
isLicensed in interface chemaxon.license.Licensable

setLicenseEnvironment

public void setLicenseEnvironment(java.lang.String arg0)
Specified by:
setLicenseEnvironment in interface chemaxon.license.Licensable

getStepLimit

public int getStepLimit()

setStepLimit

public void setStepLimit(int arg0)

getTimeLimit

public int getTimeLimit()

setNodeType

public void setNodeType(AlignmentProperties.NodeType arg0)

setTimeLimit

public void setTimeLimit(int arg0)

setProgressMonitor

public void setProgressMonitor(chemaxon.common.util.MProgressMonitor arg0)

setProximity

public void setProximity(chemaxon.marvin.alignment.AlignmentProperties.ProximityPotentialType arg0)