Class AlignOnPairedAtoms

  • All Implemented Interfaces:
    chemaxon.license.Licensable

    @PublicAPI
    public final class AlignOnPairedAtoms
    extends 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 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:
        chemaxon.marvin.alignment.AlignmentException
      • setConformerCount

        public void setConformerCount​(int count)
      • 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:
        chemaxon.marvin.alignment.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:
        chemaxon.marvin.alignment.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:
        chemaxon.marvin.alignment.AlignmentException
      • align

        public double align()
      • 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.
      • setConvergenceLimit

        public void setConvergenceLimit​(double converg)
      • getMaxGradLimit

        public double getMaxGradLimit()
      • getNodeColor

        public chemaxon.marvin.alignment.NodeColor getNodeColor()
      • setAromatize

        @Deprecated
        public void setAromatize​(boolean arg0)
        Deprecated.
      • setDehidrogenize

        @Deprecated
        public void setDehidrogenize​(boolean arg0)
        Deprecated.
      • setFlexibleRingSize

        public void setFlexibleRingSize​(int arg0)
      • setFlexibleRingRotatableBondCount

        public void setFlexibleRingRotatableBondCount​(int arg0)
      • isLicensed

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

        public void setLicenseEnvironment​(String arg0)
        Specified by:
        setLicenseEnvironment in interface chemaxon.license.Licensable
      • getStepLimit

        public int getStepLimit()
      • setStepLimit

        public void setStepLimit​(int arg0)
      • getTimeLimit

        public int getTimeLimit()
      • setTimeLimit

        public void setTimeLimit​(int arg0)
      • setProgressMonitor

        public void setProgressMonitor​(MProgressMonitor arg0)
      • setProximity

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