Package com.actelion.research.chem
Class StereoIsomerEnumerator
- java.lang.Object
-
- com.actelion.research.chem.StereoIsomerEnumerator
-
public class StereoIsomerEnumerator extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description StereoIsomerEnumerator(StereoMolecule mol, boolean skipEnantiomers)
If the passed molecule has stereo-chemically undefined configurations (double bonds, stereo centers) or/and one or more AND/OR groups of defined relative stereo configurations, then it represents multiple stereo isomers.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StereoMolecule
getStereoIsomer(int index)
Creates and returns the molecule in a specific atom and bond parity permutation state, i.e.int
getStereoIsomerCount()
This calculates the stereo isomer count that may be requested by the getStereoIsomer() method.boolean
isCorrectStereoIsomer(StereoMolecule mol, int index)
Checks, whether the given molecule's atom and bond parities are the expected one's for the given stereo isomer index.boolean
isSkippingEnantiomers()
Checks and returns, whether skipEnantiomers was chosen in the constructor and whether the complete set of isomers would contain enantiomeric sets, because of the absence of absolute stereo centers and the presence of unknown or relative tetrahedral or atrop stereo configurations.
-
-
-
Constructor Detail
-
StereoIsomerEnumerator
public StereoIsomerEnumerator(StereoMolecule mol, boolean skipEnantiomers)
If the passed molecule has stereo-chemically undefined configurations (double bonds, stereo centers) or/and one or more AND/OR groups of defined relative stereo configurations, then it represents multiple stereo isomers. The StereoIsomerEnumerator generates all individual stereo isomers of the passed molecule. If the passed molecule does not include absolute stereo centers (or atrop isomeric configuration), but unknown stereo centers or groups with defined relative configuration, then we have pairs of enantiomers. In this case the StereoIsomerEnumerator may either generate one or both stereo isomers of each enantiomeric pair.- Parameters:
mol
- WARNINGskipEnantiomers
-
-
-
Method Detail
-
isSkippingEnantiomers
public boolean isSkippingEnantiomers()
Checks and returns, whether skipEnantiomers was chosen in the constructor and whether the complete set of isomers would contain enantiomeric sets, because of the absence of absolute stereo centers and the presence of unknown or relative tetrahedral or atrop stereo configurations.- Returns:
- whether we are skipping enantiomers
-
getStereoIsomerCount
public int getStereoIsomerCount()
This calculates the stereo isomer count that may be requested by the getStereoIsomer() method. If isSkippingEnantiomers() returns true, then the enumerated stereo isomers don't contain enatiomers, i.e. in order to complete the set of stereo isomers, one needs to duplicate and invert externally in this case.- Returns:
- stereo isomer count that may be requested by the getStereoIsomer() method.
-
getStereoIsomer
public StereoMolecule getStereoIsomer(int index)
Creates and returns the molecule in a specific atom and bond parity permutation state, i.e. a specific stereo isomer. If stereo bonds are permuted (as opposed to tetrahedral centers), then new atom coordinates are generated to reflect the specific bond configuration. Otherwise, only atom parities are set and up/down stereo bonds are set to reflect the expected correct atom stereo configuration.
This method does not sort out stereo isomers that are impossible because of geometric strain.- Parameters:
index
- parity permutation- Returns:
-
isCorrectStereoIsomer
public boolean isCorrectStereoIsomer(StereoMolecule mol, int index)
Checks, whether the given molecule's atom and bond parities are the expected one's for the given stereo isomer index. This may be useful when creating conformers from the stereo isomer returned by getStereoIsomer() to check, whether conformers still have the correct stereo configurations. If the correct stereo configuration is an impossible one due to ring strains, then conformer generators or force field may change the configuration in order to create a conformer at all.- Parameters:
mol
-index
-- Returns:
- true, if the given molecule's atom and bond parities are correct the given index
-
-