com.actelion.research.chem.IDCodeParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openchemlib Show documentation
Show all versions of openchemlib Show documentation
Open Source Chemistry Library
package com.actelion.research.chem;
import com.actelion.research.chem.coords.CoordinateInventor;
public class IDCodeParser extends IDCodeParserWithoutCoordinateInvention {
private boolean mEnsure2DCoordinates;
/**
* This default constructor creates molecules guaranteed to have 2D-atom-coordinates.
* If 2D-coordinates are not supplied with the idcode, or if supplied coordinates are 3D,
* then new 2D-coordinates are created on the fly.
*/
public IDCodeParser(){
this(true);
}
/**
*
* @param ensure2DCoordinates If TRUE and no coordinates are passed with the idcode, then
* the parser generates atom coordinates of any molecule and assigns up/down bonds reflecting
* given atom parities. Generating coordinates is potentially error prone, such that providing
* original coordinates, where available, should be the preferred option.
*
WARNING: If FALSE: In this case stereo parities are taken directly from the idcode,
* missing explicitly 'unknown' parities, because they are not part of the idcode.
* Without atom coordinates up/down bonds cannot be assigned. If further processing relies
* on up/down bond stereo information or needs to distinguish parities 'none' from 'unknown',
* (e.g. idcode creation, checking for stereo centers, calculating the skeletonSpheres descriptor),
* or if you are not exactly sure, what to do, then use the constructor IDCodeParser(true).
* If you supply encoded 3D-coordinates, then use IDCodeParser(false).
*/
public IDCodeParser(boolean ensure2DCoordinates) {
super();
mEnsure2DCoordinates = ensure2DCoordinates;
}
@Override
protected boolean ensure2DCoordinates() {
return mEnsure2DCoordinates;
}
@Override
protected void inventCoordinates(StereoMolecule mol) {
CoordinateInventor inventor = new CoordinateInventor();
inventor.setRandomSeed(0x1234567890L); // create reproducible coordinates
inventor.invent(mol);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy