Package chemaxon.alignment
Class Alignment
java.lang.Object
chemaxon.alignment.AlignmentBase
chemaxon.alignment.Alignment
- All Implemented Interfaces:
Licensable
3D Alignment aligns two or more 3D molecules onto each other. The
conformation of all molecules can be kept flexible so as to maximize the
molecular overlap or also the input conformation of some of the molecules can
be frozen. Alignment tries to maximize the overlap of atoms of the same type
of different molecules.
Example source
Example source
Molecule[] mols = new Molecule[2];
mols[0] = MolImporter.importMol("CCCCC");
mols[1] = MolImporter.importMol("CCCCCCC");
mols[0].aromatize();
mols[1].aromatize();
Cleaner.clean(mols[0], 3);
Cleaner.clean(mols[1], 3);
Alignment aa = new Alignment();
aa.addMolecule(mols[0], false, false); // adds a molecule no roatation / no
// conformational flexibility
aa.addMolecule(mols[1], true, true); // adds a molecule with roatation/ with
// conformational flexibility
aa.addUserConstraint(0, 3, 1, 4); // optional: add user constraint between atoms
// of two different molecules. Any
// constraint can be added
aa.align();
Molecule result = aa.getMoleculeWithAlignedCoordinates(1);
double tanimoto = aa.tanimoto();
- Since:
- 5.2
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAn atomMap can be added to some of the atoms in MarvinSketch using the single reaction arrow.voidaddMolecule(Molecule m, boolean flexible, boolean enableTranslateAndRotate) Add molecule to alignvoidaddNodeColorWeight(int t1, int t2, double w) User may define extra weights between colors defined at setColoringScheme.voidaddUserConstraint(int molSeq0, int atomSeq0, int molSeq1, int atomSeq1) Adds user constraint between two atoms of two different molecules The addMol method calls must precede this method.voidalign()3D alignment on two or more molecules.getMoleculeWithAlignedCoordinates(int molID) After the alignment result molecule can be obtained.doublegetRmsd()doubleCalculates the volume score between the current orientation and conformation of the two molecules.static MoleculeRotates rotatable bonds by a random dihedral angle value.voidvoidbefore every new alignment the molecules have to be removed.voidvoidsetConformerCount(int conformerCount) The dihedral angles of every flexible molecule should be randomized before alignment.voidvoidsetMode(AlignmentAccuracyMode mode) voidsetMolecules(AlignmentMolecule reference, AlignmentMolecule toAlign) voidsetOrientationType(AlignmentProperties.OrientationType orientationType) final voidsetProperty(AlignmentProperties props) Sets the properties for the alignment.doubletanimoto()Calculates the atomic colored volume Tanimoto similarity of two 3D molecules.Methods inherited from class chemaxon.alignment.AlignmentBase
getMaxGradLimit, getMolecules, getNodeColor, getNodeType, getStepLimit, getTimeLimit, isLicensed, setFlexibleRingRotatableBondCount, setFlexibleRingSize, setLicenseEnvironment, setNodeType, setProgressMonitor, setProximity, setStepLimit, setTimeLimit
-
Constructor Details
-
Alignment
public Alignment() -
Alignment
-
-
Method Details
-
getMoleculeWithAlignedCoordinates
After the alignment result molecule can be obtained.- Parameters:
molID- input sequence / Which molecule to return.- Returns:
- the result molecule
-
setMode
-
getAlignedMoleculesAsFragments
-
getOrientationType
-
setProperty
Description copied from class:AlignmentBaseSets the properties for the alignment. The properties are used to configure the alignment algorithm. The properties are set to the factory and the factory is used to create the alignment molecules.- Overrides:
setPropertyin classAlignmentBase- Parameters:
props- the properties to set
-
setConformerCount
public void setConformerCount(int conformerCount) The dihedral angles of every flexible molecule should be randomized before alignment.- Parameters:
conformerCount- number of randomized conformations to try to align
-
randomizeRotatableDihedrals
Rotates rotatable bonds by a random dihedral angle value. The resulting conformation is optimized, to avoid steric clashes.- Parameters:
m- this Molecule object will be cloned and the coordinates will remain intact.r- parameterizedRandomobject- Returns:
- the Molecule in changed conformation
-
setColoringScheme
-
addNodeColorWeight
public void addNodeColorWeight(int t1, int t2, double w) User may define extra weights between colors defined at setColoringScheme. The default weights are 1 for the same and 0 for the dissimilar types.- Parameters:
t1- color 1 (Atomtype)t2- color 2 (Atomtype)w- weight
-
setDefaultNodeWeightBehavior
-
setOrientationType
-
removeAllConstraints
public void removeAllConstraints() -
removeAllMolecules
public void removeAllMolecules()before every new alignment the molecules have to be removed. -
addMolecule
public void addMolecule(Molecule m, boolean flexible, boolean enableTranslateAndRotate) throws AlignmentException Add molecule to align- Parameters:
m- Molecule to alignflexible- if "false" the molecule kept rigid. If "true" the rotatable bonds are rotated to achieve the best alignment.enableTranslateAndRotate- Turn translation and rotation on if true. If false molecule is frozen.- Throws:
AlignmentException
-
addUserConstraint
public void addUserConstraint(int molSeq0, int atomSeq0, int molSeq1, int atomSeq1) throws AlignmentException Adds user constraint between two atoms of two different molecules The addMol method calls must precede this method.- Throws:
AlignmentException- if there is no such atom or molecule.
-
tanimoto
Calculates the atomic colored volume Tanimoto similarity of two 3D molecules.- Returns:
- the 3D volume Tanimoto between 0..1 If more than two molecules are added returns -1.
- Throws:
AlignmentException
-
align
3D alignment on two or more molecules. WARNING! The new coordinates are written back to the input molecules.- Throws:
AlignmentException- if there is an error with the molecule: not 3d or multi-fragment.
-
getVolumeScore
public double getVolumeScore()Calculates the volume score between the current orientation and conformation of the two molecules.- Returns:
- the volume intersection score.
-
getRmsd
public double getRmsd() -
addConstraintsFromUserMappedAtoms
An atomMap can be added to some of the atoms in MarvinSketch using the single reaction arrow. These maps are imported as user pairs.- Throws:
AlignmentException
-
setMolecules
-