bool OE3DToAtomStereo(OEMolBase &mol)
Set the stereochemistry at the chiral atoms of a molecule, as specified by the molecule’s 3D coordinates. The affected atoms are those with a ‘chiral’ atom property of true, as perceived by a call to OEPerceiveChiral, or set manually by the user calling the OEAtomBase.SetChiral method. If no chirality has been perceived on the molecule, OEPerceiveChiral will be called inside this function.
bool OE3DToBondStereo(OEMolBase &mol, unsigned char *bmask=0)
Set the stereochemistry at the chiral bonds of a molecule, as specified by the molecule’s 3D (or possibly 2D) coordinates. The affected bonds are those with a ‘chiral’ bond property of true, as discovered by a call to OEPerceiveChiral, or set manually by the user calling OEBondBase.SetChiral method. If no chirality has been perceived or set on the molecule, OEPerceiveChiral will be called inside this function.
bool OE3DToInternalStereo(OEMolBase &mol)
Assigns the stereochemistry of molecule from its 3D coordinates. It perceives both the tetrahedral chirality around atomic centers, and the EZ chirality around double bonds. This function is equivalent to the sequence of calling OEPerceiveChiral followed by both OE3DToAtomStereo and OE3DToBondStereo.
OESystem::OEIterBase<OEAtomBase> *OEAcyclicPath(const OEAtomBase *,
const OEAtomBase *)
bool OEAddExplicitHydrogens(OEMolBase &mol, OEAtomBase *atm)
bool OEAddExplicitHydrogens(OEMol &mol, bool polarOnly=false, bool set3D=true)
bool OEAddExplicitHydrogens(OEMolBase &mol, bool polarOnly=false,
bool set3D=true)
bool OEAddExplicitHydrogens(OEMCMolBase &mol, bool polarOnly=false,
bool set3D=true)
bool OEAddMols(OEMolBase &, const OEMolBase &, OEAtomBase **a=(OEAtomBase **) 0,
OEBondBase **b=(OEBondBase **) 0)
bool OEAddMols(OEMolBase &, const OEMolBase &, const char *delim,
OEAtomBase **a=(OEAtomBase **) 0,
OEBondBase **b=(OEBondBase **) 0)
bool OEAddPDBData(OEMolBase &mol, const OESDDataPair &dp)
bool OEAddPDBData(OEMolBase &mol, const std::string &tag,
const std::string &value)
bool OEAddSDData(OEMolBase &mol, const OESDDataPair &dp)
bool OEAddSDData(OEMolBase &mol, const std::string &tag,
const std::string &value)
void OEAssignAromaticFlags(OEMolBase &mol,
const OEAroModel model=OEAroModelOpenEye,
bool clearflags=true, unsigned int maxpath=0,
bool prune=false)
void OEAssignBondiVdWRadii(OEMolBase &mol)
Assigns radii to all atoms in the given OEMolBase using calls to OEGetBondiVdWRadius. The assigned radii of an OEAtomBase can be accessed by GetRadius method.
void OEAssignCovalentRadii(OEMolBase &mol)
Assigns radii to all atoms in the given OEMolBase using calls to OEGetCovalentRadius. The assigned radii of an OEAtomBase can be accessed by GetRadius method.
void OEAssignDelphiRadii(OEMolBase &mol)
Assigns radii to all atoms in the given OEMolBase using calls to OEGetDelphiRadius. The assigned radii of an OEAtomBase can be accessed by GetRadius method.
void OEAssignFormalCharges(OEMolBase &mol)
void OEAssignFormalCharges(OEAtomBase *atm)
void OEAssignHonigIonicCavityRadii(OEMolBase &mol)
Assigns radii to all atoms in the given OEMolBase using calls to OEGetHonigIonicCavityRadius. The assigned radii of an OEAtomBase can be accessed by GetRadius method.
bool OEAssignHybridization(OEMolBase &)
Assigns hybridization to all atoms in the given OEMolBase using calls to OEGetHybridization function. The assigned hybridization value (from the namespace OEHybridization) can be accessed by the GetHyb method of OEAtomBase.
Warning
The predicted atom hybridization depends on the perceived aromaticity.
void OEAssignImplicitHydrogens(OEMolBase &mol)
void OEAssignImplicitHydrogens(OEAtomBase *atm)
void OEAssignMDLHydrogens(OEMolBase &mol)
void OEAssignMDLHydrogens(OEAtomBase *atm)
void OEAssignPaulingVdWRadii(OEMolBase &mol)
Assigns radii to all atoms in the given OEMolBase using calls to OEGetPaulingVdWRadius. The assigned radii of an OEAtomBase can be accessed by GetRadius method.
void OEAssignResidueNumbers(OEMolBase &mol)
void OEAssignSerialNumbers(OEMolBase &mol)
void OEAssignZap9Radii(OEMolBase &mol)
Assigns radii to all atoms in the given OEMolBase using atomic radii defined in [Nicholls-2008]. These radii include minor atom-typing for oxygen and nitrogen and are not a simple atomic number mapping. They are suitable for use in calculating transfer energies when used with a surface-area coefficient of 6.3cal per square Å. The assigned radii of an OEAtomBase can be accessed by GetRadius method.
unsigned int OEAtomGetMDLParity(const OEAtomBase *atm)
const OEResidue &OEAtomGetResidue(const OEAtomBase *atm)
unsigned int OEAtomGetSmallestRingSize(const OEAtomBase *atm)
unsigned int OEAtomGetSmallestRingSize(const OEAtomBase &atm)
bool OEAtomIsInAromaticRingSize(const OEAtomBase &atm, unsigned int size)
bool OEAtomIsInAromaticRingSize(const OEAtomBase *atm, unsigned int size)
bool OEAtomIsInRingSize(const OEAtomBase *atm, unsigned int size)
bool OEAtomIsInRingSize(const OEAtomBase &atm, unsigned int size)
bool OEAtomSetMDLParity(OEAtomBase *atm, unsigned int)
bool OEAtomSetResidue(OEAtomBase *atm, const OEResidue &res)
const char *OEBAtomIntTypeOpts()
const char *OEBDefaultOpts()
const char *OEBGZipCompressOpts()
const char *OEBRotCompressOpts()
unsigned int OEBondGetSmallestRingSize(const OEBondBase &bnd)
unsigned int OEBondGetSmallestRingSize(const OEBondBase *bnd)
bool OEBondIsInAromaticRingSize(const OEBondBase *bnd, unsigned int size)
bool OEBondIsInAromaticRingSize(const OEBondBase &bnd, unsigned int size)
bool OEBondIsInRingSize(const OEBondBase *bnd, unsigned int size)
bool OEBondIsInRingSize(const OEBondBase &bnd, unsigned int size)
bool OEBuildMDLQueryExpressions(OEQMolBase &qmol, const OEMolBase &mol,
unsigned int opts=OEMDLQueryOpts::Default)
void OECalcCartesianCoord(float *a, float *b, float *c, float *z, float *x)
void OECalcInternalCoord(float *a, float *b, float *c, float *x, float *z)
double OECalculateMolecularWeight(const OEMolBase &mol, bool isotopic=false)
This function calculates the molecular weight of the given molecule. By default, all atoms are assumed their average atomic weight, as returned by the OEGetAverageWeight function. If the isotopic parameter is true, and atom of the molecule that has a specified (non-zero) isotopic mass, as returned by OEAtomBase.GetIsotope, instead uses the isotopic weight as returned by the OEGetIsotopicWeight function.
void OECanonicalOrderAtoms(OEMolBase &mol)
void OECanonicalOrderBonds(OEMolBase &mol)
void OECenter(OEMolBase &, double *t=0)
void OECenter(OEMCMolBaseT<float, 3> &mcmol)
void OECenter(OEConfBaseT<float, 3> &conf, double *t=0)
const char *OEChemGetArch()
bool OEChemGetLicensee(std::string &licensee)
const char *OEChemGetPlatform()
const char *OEChemGetRelease()
bool OEChemGetSite(std::string &site)
unsigned int OEChemGetVersion()
bool OEChemIsLicensed(const char *feature=0, unsigned int *expdate=0)
void OEClearAromaticFlags(OEMolBase &mol)
bool OEClearPDBData(OEMolBase &mol)
void OEClearPartialCharges(OEMolBase &mol)
void OEClearResidue(OEAtomBase *atom)
void OEClearResidues(OEMolBase &mol)
bool OEClearRotorCompressData(OEMCMolBase &mol)
bool OEClearSDData(OEMolBase &mol)
OESystem::OEIterBase<OEMatchBase> *
OEComposeDMCSFromCliques(OESystem::OEIterBase<OEMatchBase> *,
unsigned int max=1024)
bool OECopyHistory(oemolistream &str, OESystem::OEHeader &header)
bool OECopyPDBData(OEMolBase &dst, const OEMolBase &src)
bool OECopySDData(OEMolBase &dst, const OEMolBase &src)
bool OECopySDData(OEMolBase &dst, const OESystem::OEContainer &src)
bool OECorrectAcidProtonGeometry(OEMolBase &mol)
bool OECorrectAcidProtonGeometry(OEMolBase &mol, const OEAtomBase *atom)
unsigned int OECount(const OEMolBase &, const OESubSearch &)
unsigned int OECount(const OEMolBase &,
const OESystem::OEUnaryPredicate<OEAtomBase> &)
unsigned int OECount(const OEMolBase &,
const OESystem::OEUnaryPredicate<OEBondBase> &)
void OECreateAbsSmiString(std::string &str, const OEMolBase &mol,
std::pair<const OEAtomBase *,
const OEAtomBase *> *atmord=(std::pair<const OEAtomBase *,
const OEAtomBase *> *) 0)
Create a SMILES string representing a given molecule, without isotopic labeling or stereochemistry, and in arbitrary output order (i.e. not necessarily canonical). This function is just a special case of the OECreateSmiString function.
Note
This function does not correspond to any of the forms (flavors) of SMILES string produced by Daylight.
See also
void OECreateCanSmiString(std::string &str, const OEMolBase &mol)
Create a canonical SMILES string representing a given molecule, but without isotopic labeling or stereochemistry. This function is just a special case of the OECreateSmiString function, called with the flavor OESMILESFlag.DEFAULT.
Note
This function produces what Daylight Chemical Information Systems term a unique SMILES.
Note that the canonical SMILES generated by this function remains dependent on the state of the molecule, especially its aromaticity state (see examples in Aromaticity Models in OEChem section). Thus, to generate a canonical smiles suitable for purposes such as a database key, the user must assure that the state of the molecule has been standardized. In particular, aromaticity should be perceived according to the preferred model.
In contrast, the high-level output function OEWriteMolecule, when writing the canonical SMILES format (OEFormat.CAN) does invoke OEFindRingAtomsAndBonds and OEAssignAromaticFlags.
See also
void OECreateIsoSmiString(std::string &str, const OEMolBase &mol)
Create an canonical isomeric SMILES string representing a given molecule.
This function is just a special case of the OECreateSmiString function, called with the flavor OESMILESFlag.ISOMERIC.
Note
This function produces SMILES that correspond what Daylight Chemical Information Systems term an ‘absolute‘ SMILES
Note that the canonical SMILES generated by this function remains dependent on the state of the molecule, especially its aromaticity state (see examples in Aromaticity Models in OEChem section). Thus, to generate a canonical smiles suitable for purposes such as a database key, the user must assure that the state of the molecule has been standardized. In particular, aromaticity should be perceived according to the preferred model.
In contrast, the high-level output function OEWriteMolecule, when writing the canonical SMILES format (OEFormat.ISM) does invoke OEFindRingAtomsAndBonds and OEAssignAromaticFlags.
Furthermore, whether OEWriteMolecule or OECreateIsoSmiString is used, the canonical SMILES generated depends on the current stereo specifications for the molecule. If the goal is a canonical isomeric SMILES which is unique for all representations of an equivalent stereoisomer, i.e., for use as a database key, it is the user’s responsibility to assure that the stereochemical state of the molecule has been rationalized and standardized, using methods such as: OEPerceiveChiral, OE3DToAtomStereo, OE3DToBondStereo, OEAtomBase.IsChiral, OEAtomBase.SetStereo, OEBondBase.IsChiral, OEBondBase.SetStereo, and others. Moreover, it should well be considered that there are limitations to the classes of stereochemistry (especially ‘extended‘ or ‘relative‘) which OEChem can rationalize and thereby canonicalize. One example is the chirality of para-substituted cyclohexane. Unfortunately this also reflects a limitation in the state of the art in chemoinformatics and chemistry at the time of this writing.
See also
void OECreateSlnString(std::string &str, const OEMolBase &mol,
unsigned int flavor=OESLNFlag::DEFAULT)
Create a Tripos SLN string representing a given molecule. Several variants of SLN format are supported by using different flavors from the OESLNFlag namespace.
void OECreateSmiString(std::string &str, const OEMolBase &mol,
unsigned int flavor=OESMILESFlag::DEFAULT,
std::pair<const OEAtomBase *,
const OEAtomBase *> *atmord=(std::pair<const OEAtomBase *,
const OEAtomBase *> *) 0)
Create a SMILES string representing a given molecule. Several variants of SMILES format are supported by using different flavors from the OESMILESFlag namespace.
See also
unsigned int OEDefaultImplicitHCount(const OEAtomBase *atm)
unsigned int OEDefaultMDLHCount(const OEAtomBase *atm)
bool OEDeleteEverythingExceptTheFirstLargestComponent(OEMolBase &)
bool OEDeletePDBData(OEMolBase &mol, const std::string &tag)
bool OEDeleteSDData(OEMolBase &mol, const std::string &tag)
unsigned int OEDetermineAromaticRingSystems(const OEMolBase &mol,
unsigned int *rings)
unsigned int OEDetermineComponents(const OEMolBase &mol, unsigned int *parts)
void OEDetermineConnectivity(OEMolBase &mol)
unsigned int OEDetermineReactants(const OEMolBase &mol, unsigned int *parts)
unsigned int OEDetermineRingSystems(const OEMolBase &mol, unsigned int *rings)
bool OEDisassembleExpressions(OEQMolBase &)
unsigned int OEDoubleBondCount(const OEAtomBase *atm)
unsigned int OEDoubleBondOCount(const OEAtomBase *atm)
int OEElementHistogram(unsigned int *hist, const OEMolBase &mol)
void OEEulerRotate(OEMolBase &mol, const double *angles)
void OEEulerRotate(OEConfBaseT<float, 3> &conf, const double *angles)
void OEEulerRotate(OEMCMolBaseT<float, 3> &mcmol, const double *angles)
bool OEExactGraphMatch(const OEMolBase &mol1, const OEMolBase &mol2)
bool OEExpandSuperAtoms(OEMolBase &mol)
void OEFindRingAtomsAndBonds(OEMolBase &mol)
void OEFormalPartialCharges(OEMolBase &mol)
bool OEGasteigerInitialCharges(OEMolBase &mol)
bool OEGasteigerPartialCharges(OEMolBase &mol)
double OEGetAbsTorsion(const OEMolBase &, const OEAtomBase *a,
const OEAtomBase *b, const OEAtomBase *c,
const OEAtomBase *d)
double OEGetAbsTorsion(const OEConfBaseT<float, 3> &, const OEAtomBase *a,
const OEAtomBase *b, const OEAtomBase *c,
const OEAtomBase *d)
char OEGetAminoAcidCode(unsigned int idx)
double OEGetAngle(const OEMolBase &, const OEAtomBase *a, const OEAtomBase *b,
const OEAtomBase *c)
double OEGetAngle(const OEConfBaseT<float, 3> &conf, const OEAtomBase *a,
const OEAtomBase *b, const OEAtomBase *c)
double OEGetAngle(const OEMolBase &ma, const OEAtomBase *a, const OEMolBase &mb,
const OEAtomBase *b, const OEMolBase &mc, const OEAtomBase *c)
double OEGetAngle(const OEConfBaseT<float, 3> &ca, const OEAtomBase *a,
const OEConfBaseT<float, 3> &cb, const OEAtomBase *b,
const OEConfBaseT<float, 3> &cc, const OEAtomBase *c)
bool OEGetAnisou(const OEAtomBase *atom, int &u11, int &u22, int &u33, int &u12,
int &u13, int &u23)
OEFuzzy OEGetAromatic(const OEExprBase *, bool &aro)
const char *OEGetAtomComment(const OEAtomBase *atm)
unsigned int OEGetAtomicNum(const char *sym)
OEFuzzy OEGetAtomicNum(const OEExprBase *, unsigned int &anum)
const char *OEGetAtomicSymbol(unsigned int elemno)
OESystem::OEIterBase<OEMatchBase> *OEGetAutomorphs(const OEMolBase &,
bool includeH=false)
double OEGetAverageWeight(unsigned int elemno)
Return the average atomic weight of an element, based upon the naturally occurring abundances of its isotopes. To return the ‘’monoisotopic’’ weight for a particular element use the call
int elemno = OEElemNo.O;
double weight = oechem.OEGetIsotopicWeight(elemno, oechem.OEGetDefaultMass(elemno));
OEFuzzy OEGetBondOrder(const OEExprBase *, unsigned int &order)
double OEGetBondiVdWRadius(unsigned int elemno)
Return the Van der Waals radius for a particular atomic number as tabulated by Bondi [Bondi-1964]. There are several experimental values for Van der Waals radii (see also OEGetPaulingVdWRadius) and many additional: values used in molecular mechanics forcefields (including united-atom VdW radii), so there is often no definitive notion of Van der Waals radius.
void OEGetCenterAndExtents(const OEMolBase &mol, float *ctr, float *ext)
void OEGetCenterOfMass(const OEMolBase &mol, float *com, bool weightAtoms=false)
const char *OEGetComment(const OEMolBase &mol)
double OEGetCovalentRadius(unsigned int elemno)
Return the covalent radius of the element specified by the given atomic number. The covalent radius of an atom is typically used in bonding calculations, such as the function OEDetermineConnectivity. A value of zero is returned for elements other than those commonly found in organic molecules. The actual values are those prescribed by the Cambridge Crystallographic Database (http://www.ccdc.cam.ac.uk).
unsigned int OEGetDefaultMass(unsigned int elemno)
Return the most abundant isotope for the given atomic number i.e. the same values as required by the MDL file format. In MDL SD files, non-natural isotopes are represented as a delta from the most commonly occurring isotope for a particular element/atomic number.
For example, for OEElemNo.C this function returns the value 12. For input value of zero and for values greater than or equal to OEElemNo.MAXELEM, it returns zero.
double OEGetDelphiRadius(unsigned int elemno)
Return the default radius for a given element used by the Accelrys’ Delphi program for electrostatics calculations.
double OEGetDistance(const OEMolBase &, const OEAtomBase *a,
const OEAtomBase *b)
double OEGetDistance(const OEConfBaseT<float, 3> &conf, const OEAtomBase *a,
const OEAtomBase *b)
double OEGetDistance(const OEMolBase &ma, const OEAtomBase *a,
const OEMolBase &mb, const OEAtomBase *b)
double OEGetDistance(const OEConfBaseT<float, 3> &ca, const OEAtomBase *a,
const OEConfBaseT<float, 3> &cb, const OEAtomBase *b)
double OEGetDistance2(const OEMolBase &, const OEAtomBase *a,
const OEAtomBase *b)
double OEGetDistance2(const OEConfBaseT<float, 3> &conf, const OEAtomBase *a,
const OEAtomBase *b)
double OEGetDistance2(const OEMolBase &ma, const OEAtomBase *a,
const OEMolBase &mb, const OEAtomBase *b)
double OEGetDistance2(const OEConfBaseT<float, 3> &ca, const OEAtomBase *a,
const OEConfBaseT<float, 3> &cb, const OEAtomBase *b)
OEAtomBase *OEGetDoubleBondNeighbor(const OEAtomBase *atm)
const char *OEGetFileExtension(const char *fname)
unsigned int OEGetFileType(const char *ext)
OEFuzzy OEGetFormalCharge(const OEExprBase *, int &fc)
const char *OEGetFormatExtension(unsigned int tag)
const char *OEGetFormatString(unsigned int tag)
OEFuzzy OEGetHCount(const OEExprBase *expr, unsigned int &hcount)
double OEGetHonigIonicCavityRadius(unsigned int elemno)
Return the effective ionic radius (defined in [Rashin-1985]) of each element to be used in solvation calculations.
unsigned int OEGetHybridization(const OEAtomBase *)
This function predicts the atomic hybridization/geometry of an atom given its immediate connectivity. The return value is taken from the namespace OEHybridization.
Warning
The aromaticity has to be perceived prior to calling OEGetHybridization function.
OEFuzzy OEGetImplicitHCount(const OEExprBase *, unsigned int &hcount)
double OEGetIsotopicWeight(unsigned int elemno, unsigned int mass)
Return the atomic weight for a specific isotope. The isotope is specified by the atomic number (elemno) and the atomic mass (mass).
To get the average atomic weight of an element, based upon typically occurring abundances of its natural isotopes, use the OEGetAverageWeight function.
OESystem::OEIterBase<OENbrs> *OEGetNearestNbrs(const OEMolBase &mol,
double maxdist,
unsigned int method=OENearestNbrsMethod::Default)
OESystem::OEIterBase<OENbrs> *OEGetNearestNbrs(const OEMolBase &mol,
const float *coords,
double maxdist,
unsigned int method=OENearestNbrsMethod::Default)
OESystem::OEIterBase<OENbrs> *OEGetNearestNbrs(const OEMolBase &mol,
const double *coords,
double maxdist,
unsigned int method=OENearestNbrsMethod::Default)
OESystem::OEIterBase<OENbrs> *OEGetNearestNbrs(const OEMolBase &mol1,
const OEMolBase &mol2,
double maxdist,
unsigned int method=OENearestNbrsMethod::Default)
OEBondBase *OEGetOtherNeighbor(const OEAtomBase *atm, const OEBondBase *nbr)
OEAtomBase *OEGetOtherNeighbor(const OEAtomBase *atm, const OEAtomBase *nbr)
unsigned int OEGetPDBAtomIndex(const char *name)
unsigned int OEGetPDBAtomIndex(const OEAtomBase *atm)
const char *OEGetPDBAtomName(unsigned int idx)
OESystem::OEIterBase<OESystem::OEBaseDataT<std::string> > *
OEGetPDBBaseData(const OESystem::OEBase &mol)
std::string OEGetPDBData(const OEMolBase &mol, const std::string &tag)
OESystem::OEIterBase<OEPDBDataPair> *OEGetPDBDataPairs(const OEMolBase &mol)
void OEGetPackedCoords(const OEMolBase &mol, float *coords)
void OEGetPackedCoords(const OEMolBase &mol, double *coords)
unsigned int OEGetPathLength(const OEAtomBase *, const OEAtomBase *,
unsigned int maxpath=0)
double OEGetPaulingVdWRadius(unsigned int elemno)
Return the Van der Waals radius for a particular atomic number as tabulated by Linus Pauling [Pauling-1960]. There are several experimental values for Van der Waals radii (see also OEGetBondiVdWRadius) and many additional values used in molecular mechanics forcefields (including united-atom VdW radii), so there is often no definitive notion of Van der Waals radius.
unsigned int OEGetResidueIndex(const char *name)
unsigned int OEGetResidueIndex(const OEResidue &res)
unsigned int OEGetResidueIndex(const OEAtomBase *atm)
const char *OEGetResidueName(unsigned int idx)
OESystem::OEIterBase<OESystem::OEBaseDataT<std::string> > *
OEGetSDBaseData(const OESystem::OEBase &mol)
std::string OEGetSDData(const OEMolBase &mol, const std::string &tag)
OESystem::OEIterBase<OESDDataPair> *OEGetSDDataPairs(const OEMolBase &mol)
OEAtomBase *OEGetSingleBondNeighbor(const OEAtomBase *atm)
OESystem::OEIterBase<OEAtomBase> *OEGetSmallestSubtree(const OEBondBase *)
OESystem::OEIterBase<OEAtomBase> *OEGetSmallestSubtree(const OEBondBase *bond,
const OESystem::OEUnaryPredicate<OEAtomBase> &excludeAtoms)
OEBondBase *OEGetSoleBond(const OEAtomBase *atm)
OEBondBase *OEGetSoleDoubleBond(const OEAtomBase *atm)
OEAtomBase *OEGetSoleNeighbor(const OEAtomBase *atm)
OEBondBase *OEGetSoleSingleBond(const OEAtomBase *atm)
OEBondBase *OEGetSoleTripleBond(const OEAtomBase *atm)
OEFuzzy OEGetStereo(const OEExprBase *expr, unsigned int &stereo)
OESystem::OEIterBase<OEAtomBase> *OEGetSubtree(const OEAtomBase *bgn,
const OEAtomBase *end)
OESystem::OEIterBase<OEAtomBase> *OEGetSubtree(const OEBondBase *,
const OESystem::OEUnaryPredicate<OEAtomBase> &excludeAtoms)
OETokenizerBase *OEGetTokenizer(unsigned int fmt, unsigned int flavor)
double OEGetTorsion(const OEMolBase &, const OEAtomBase *a, const OEAtomBase *b,
const OEAtomBase *c, const OEAtomBase *d)
double OEGetTorsion(const OEConfBaseT<float, 3> &, const OEAtomBase *a,
const OEAtomBase *b, const OEAtomBase *c,
const OEAtomBase *d)
OESystem::OEIterBase<OETorsion> *OEGetTorsions(const OEMolBase &,
const OESystem::OEUnaryPredicate<OEBondBase> &isRotor=static_cast<const OESystem::OEUnaryPredicate<OEBondBase> &>(IsRotor()))
OEAtomBase *OEGetTripleBondNeighbor(const OEAtomBase *atm)
OESystem::OEIterBase<OEMolBase> *OEGetUniMolecularRxnIter(const OEMolBase &mol,
OEQMolBase &rxn,
bool strictSmirks=true,
unsigned maxMatches=10000)
bool OEHasAtomStereoHydrogens(const OEAtomBase *atm)
bool OEHasBondStereoHydrogens(const OEAtomBase *atm)
bool OEHasDoubleBond(const OEAtomBase *atm)
bool OEHasDoubleBondO(const OEAtomBase *atm)
bool OEHasExplicitHydrogens(const OEMolBase &mol)
bool OEHasImplicitHydrogens(const OEMolBase &mol)
bool OEHasMultipleBond(const OEAtomBase *atm)
bool OEHasPDBData(const OEMolBase &mol)
bool OEHasPDBData(const OEMolBase &mol, const std::string &tag)
bool OEHasPartialCharges(const OEMolBase &mol)
bool OEHasResidue(const OEAtomBase *atm)
bool OEHasResidues(const OEMolBase &mol)
bool OEHasSDData(const OEMolBase &mol)
bool OEHasSDData(const OEMolBase &mol, const std::string &tag)
bool OEHasSingleBond(const OEAtomBase *atm)
bool OEHasStereoHydrogens(const OEAtomBase *atm)
bool OEHasTokenizer(unsigned int fmt)
bool OEHasTripleBond(const OEAtomBase *atm)
void OEHistogramFormula(std::string &str, unsigned int *hist, int charge)
bool OEInitDefaultHandler(OESystem::OEBinaryIOHandlerBase &hand,
bool compressMCMol=false)
bool OEInitHandler(OESystem::OEBinaryIOHandlerBase &hand,
const char *readOptHex, const char *writeOptHex)
bool OEInvertCenter(OEMolBase &mol, const OEAtomBase *atom)
bool OEInvertCenter(OEMolBase &mol, const OEAtomBase *atom,
const OEAtomBase *ref1, const OEAtomBase *ref2)
bool OEIsBinary(unsigned int format)
bool OEIsCommonIsotope(unsigned int elemno, unsigned int mass)
Determine whether the isotope specified by the atomic number (elemno), and atomic mass (mass) is a valid combination. This list is derived from high-energy physics experiments, and is useful for checking whether the masses provided on radioisotopes are within the expected range.
bool OEIsExtension(const char *fname)
bool OEIsGZip(const char *)
bool OEIsReadable(unsigned int format)
bool OEIsReadable(const std::string &filename)
bool OEIsReadable(unsigned int format, unsigned int flavor)
bool OEIsReadable(const std::string &filename, unsigned int flavor)
bool OEIsSingleOrAromatic(const OEExprBase *)
bool OEIsTerminalOxygen(const OEAtomBase *atm)
bool OEIsTerminalSulfur(const OEAtomBase *atm)
bool OEIsWriteable(unsigned int format)
bool OEIsWriteable(const std::string &filename)
bool OEIsWriteable(unsigned int format, unsigned int flavor)
bool OEIsWriteable(const std::string &filename, unsigned int flavor)
bool OEKekulize(OEMolBase &)
void OEMDLClearParity(OEMolBase &mol)
bool OEMDLCorrectBondStereo(OEMolBase &mol)
bool OEMDLHasIncorrectBondStereo(const OEMolBase &mol)
bool OEMDLHasParity(const OEMolBase &mol)
const char *OEMDLParityTag()
bool OEMDLPerceiveBondStereo(OEMolBase &mol)
void OEMDLPerceiveParity(OEMolBase &mol)
bool OEMDLStereoFromBondStereo(OEMolBase &mol)
void OEMDLStereoFromParity(OEMolBase &mol)
bool OEMMFF94InitialCharges(OEMolBase &mol)
bool OEMMFF94PartialCharges(OEMolBase &mol)
unsigned int OEMMFFAtomType(const OEAtomBase *atm, bool &fail)
bool OEMMFFAtomTypeNames(OEMolBase &mol)
bool OEMMFFAtomTypes(OEMolBase &mol)
void OEMMFFClearRemappedElements()
void OEMMFFRemapElement(unsigned int from_element, unsigned int to_element)
unsigned int OEMMFFTypeIndex(unsigned int type)
const char *OEMMFFTypeName(unsigned int type)
bool OEMMFFTypeNames(OEMolBase &mol)
bool OEMacroModelAtomTypeNames(OEMolBase &mol)
bool OEMacroModelAtomTypes(OEMolBase &mol)
unsigned int OEMacroModelTypeElement(unsigned int type)
const char *OEMacroModelTypeName(unsigned int type)
bool OEMacroModelTypeNames(OEMolBase &mol)
void OEMolecularFormula(std::string &str, const OEMolBase &mol)
unsigned int OEMultipleBondCount(const OEAtomBase *atm)
int OENetCharge(const OEMolBase &mol)
OEMCMolBase *OENewMCMolBase(unsigned int type=OEMCMolType::OEDefault)
OEMCMolBase *OENewMCMolBase(const OEMolBase &mol,
unsigned int type=OEMCMolType::OEDefault)
OEMCMolBase *OENewMCMolBase(const OEMCMolBase &mol,
unsigned int type=OEMCMolType::OEDefault)
OEMCMolBase *OENewMCMolBase(const OESystem::OEBase &b,
unsigned int type=OEMCMolType::OEDefault)
OEMolBase *OENewMolBase(unsigned int type=OEMolBaseType::OEDefault)
OEMolBase *OENewMolBase(const OEMolBase &mol,
unsigned int type=OEMolBaseType::OEDefault)
OEQMolBase *OENewQMolBase(unsigned int type=OEQMolType::OEDefault)
OEQMolBase *OENewQMolBase(const OEMolBase &mol,
unsigned int type=OEQMolType::OEDefault)
OEQMolBase *OENewQMolBase(const OEQMolBase &mol,
unsigned int type=OEQMolType::OEDefault)
void OENormalize(OEMolBase &mol, const OENormModel model=OENormModelDefault)
bool OEPDBOrderAtoms(OEMolBase &mol)
bool OEParseSmarts(OEQMolBase &, const char *,
unsigned int opt=OESmartsParseOpts::Default)
bool OEParseSmarts(OEQMolBase &, const char *, const OEVectorBindings &vb,
unsigned int opt=OESmartsParseOpts::Default)
bool OEParseSmiles(OEMolBase &mol, const char *str, bool canon=false,
bool strict=false)
bool OEParseSmiles(OEMolBase &mol, const std::string &str, bool canon=false,
bool strict=false)
bool OEParseSmirks(OEQMolBase &, const char *,
unsigned int opt=OESmartsParseOpts::Default)
bool OEParseSmirks(OEQMolBase &, const char *, const OEVectorBindings &vb,
unsigned int opt=OESmartsParseOpts::Default)
void OEPerceiveBondOrders(OEMolBase &mol)
bool OEPerceiveChiral(OEMolBase &)
This function perceives whether an atom or a bond in a molecule is chiral and updates the ‘chiral’ property accordingly. Because this function is based on the symmetry classes of a molecule, as a side-effect, it also sets the ‘symmetry’ property of all the atoms the molecule to be their ‘explicit hydrogen suppressed’ symmetry class, by calling the OEChem function OEPerceiveSymmetry.
void OEPerceiveResidues(OEMolBase &mol,
unsigned int stable=OEPreserveResInfo::None)
bool OEPerceiveSymmetry(OEMolBase &, bool includeH=true, bool automorph=false)
Set the structural symmetry class of each atom of the given molecule. Symmetry classes are numbered sequentially from one up to the maximum number of atoms in the molecule for totally assymetric molecules. The assigned symmetry class for each atom may be retrieved using the OEAtomBase.GetSymmetryClass method.
The ‘includeH’ parameter is used to specify whether implicit hydrogens should be considered distinct from explicit hydrogens. Normally, a molecule will have all hydrogens either implicitly represented or explicitly represented so this option shouldn’t affect symmetries.
double OERMSD(const float *refcrds, const float *fitcrds, unsigned int size,
bool overlay=false, double *rot=0, double *trans=0)
double OERMSD(const OEMolBase &, const OEMolBase &, const OEMatchBase &match,
bool overlay=false, double *rot=0, double *trans=0)
double OERMSD(const double *refcrds, const double *fitcrds, unsigned int size,
bool overlay=false, double *rot=0, double *trans=0)
bool OERMSD(const OEMolBase &, const OEMCMolBase &, double *rmsdArray,
const OEMatchBase &match, bool overlay=false, double *rot=0,
double *trans=0)
double OERMSD(const OEMolBase &, const OEMolBase &, bool automorph=true,
bool heavyOnly=true, bool overlay=false, double *rot=0,
double *trans=0)
bool OERMSD(const OEMolBase &, const OEMCMolBase &, double *rmsdArray,
bool automorph=true, bool heavyOnly=true, bool overlay=false,
double *rot=0, double *trans=0)
bool OERandomizeTorsions(OEMolBase &, double maxRadians)
bool OERandomizeTorsions(OEMolBase &, double maxRadians,
const OESystem::OEUnaryPredicate<OEBondBase> &isRotor)
bool OEReadCDXFile(oemolistream &ifs, OEMolBase &mol)
bool OEReadFASTAFile(oemolistream &ifs, OEMolBase &mol)
bool OEReadHeader(oemolistream &str, OESystem::OEHeader &header)
bool OEReadMDLFile(oemolistream &ifs, OEMolBase &mol, const char *id="")
bool OEReadMDLQueryFile(oemolistream &ifs, OEMolBase &mol)
bool OEReadMDLQueryFile(oemolistream &ifs, OEQMolBase &qmol,
unsigned int opts=OEMDLQueryOpts::Default)
bool OEReadMDLReactionQueryFile(oemolistream &ifs, OEMolBase &mol)
bool OEReadMDLReactionQueryFile(oemolistream &ifs, OEQMolBase &qmol,
unsigned int opts=OEMDLQueryOpts::ReactionQuery)
bool OEReadMOPACFile(oemolistream &ifs, OEMolBase &mol)
bool OEReadMacroModelFile(oemolistream &ifs, OEMolBase &mol)
bool OEReadMacroModelFile(oemolistream &ifs, OEMCMolBase &mol)
bool OEReadMol2File(oemolistream &ifs, OEMolBase &mol, bool m2h=false)
bool OEReadMolecule(oemolistream &ifs, OEMol &mol)
bool OEReadMolecule(oemolistream &ifs, OEQMol &mol)
bool OEReadMolecule(oemolistream &ifs, OEMolBase &mol)
bool OEReadMolecule(oemolithread &ifs, OEMolBase &mol)
bool OEReadMolecule(oemolistream &ifs, OEGraphMol &mol)
bool OEReadMolecule(oemolithread &ifs, OEQMolBase &mol)
bool OEReadMolecule(oemolistream &ifs, OEQMolBase &mol)
bool OEReadMolecule(oemolistream &ifs, OEMCMolBase &mol)
bool OEReadMolecule(oemolithread &ifs, OEMCMolBase &mol)
bool OEReadOldBinary(oemolistream &, OEMCMolBase &)
bool OEReadPDBFile(oemolistream &ifs, OEMolBase &mol,
unsigned int flavor=OEPDBIFlag::DEFAULT)
bool OEReadRxnFile(oemolistream &ifs, OEMolBase &mol, const char *id="",
bool query=false)
bool OEReadSketchFile(oemolistream &ifs, OEMolBase &mol)
bool OEReadXYZFile(oemolistream &ifs, OEMolBase &mol)
void OEResidueHydrogens(OEMolBase &mol)
void OEResidueHydrogens(OEAtomBase *atm)
void OERotate(OEMolBase &mol, const float *m)
void OERotate(OEMolBase &mol, const double *m)
void OERotate(OEConfBaseT<float, 3> &conf, const float *m)
void OERotate(OEConfBaseT<float, 3> &conf, const double *m)
void OERotate(OEMCMolBaseT<float, 3> &mcmol, const float *m)
void OERotate(OEMCMolBaseT<float, 3> &mcmol, const double *m)
bool OESameChain(const OEResidue &res1, const OEResidue &res2)
bool OESameResidue(const OEResidue &res1, const OEResidue &res2)
bool OEScrambleMolecule(OEMolBase &)
bool OESet3DHydrogenGeom(OEMolBase &mol)
bool OESet3DHydrogenGeom(OEMolBase &mol, const OEAtomBase *hatom)
bool OESetAngle(OEMolBase &mol, OEAtomBase *a, OEAtomBase *b, OEAtomBase *c,
double ang, double *axis=0)
void OESetAnisou(OEAtomBase *atom, int u11, int u22, int u33, int u12, int u13,
int u23)
void OESetAtomComment(OEAtomBase *atm, const char *c)
void OESetAtomComment(OEAtomBase *atm, const std::string &c)
void OESetComment(OEMolBase &mol, const char *c)
void OESetComment(OEMolBase &mol, const std::string &c)
bool OESetDefaultFlavors(oemolostream &)
bool OESetDefaultFlavors(oemolistream &)
bool OESetDefaultIFlavors(oemolstreambase &)
bool OESetDefaultOFlavors(oemolstreambase &)
void OESetDimensionFromCoords(OEMolBase &)
bool OESetDistance(OEMolBase &mol, OEAtomBase *a, OEAtomBase *b, double dist)
bool OESetPDBData(OEMolBase &mol, const OESDDataPair &dp)
bool OESetPDBData(OEMolBase &mol, const std::string &tag,
const std::string &value)
void OESetPackedCoords(OEMolBase &mol, const float *coords)
void OESetPackedCoords(OEMolBase &mol, const double *coords)
bool OESetSDData(OEMolBase &mol, const OESDDataPair &dp)
bool OESetSDData(OEMolBase &mol, const std::string &tag,
const std::string &value)
bool OESetTorsion(OEMolBase &, OEAtomBase *a, OEAtomBase *b, OEAtomBase *c,
OEAtomBase *d, double ang)
bool OESetTorsion(OEConfBaseT<float, 3> &, OEAtomBase *a, OEAtomBase *b,
OEAtomBase *c, OEAtomBase *d, double ang)
OESystem::OEIterBase<OEAtomBase> *OEShortestPath(const OEAtomBase *a,
const OEAtomBase *b)
unsigned int OESingleBondCount(const OEAtomBase *atm)
unsigned int OESmilesAtomCount(const char *str)
unsigned int OESmilesAtomCount(const std::string &str)
unsigned int OEString2OEAtomExpr(const char *expression)
unsigned int OEString2OEBondExpr(const char *expression)
bool OESubsetMol(OEMolBase &dst, const OEMatchBase *match,
bool adjustHCount=false, bool RGroup=false,
OEAtomBase **atomMap=0, OEBondBase **bondMap=0)
bool OESubsetMol(OEMCMolBase &dst, const OEMCMolBase &src,
const OEMatchBase *match, bool adjustHCount=false,
bool RGroup=false, OEAtomBase **atomMap=0,
OEBondBase **bondMap=0)
bool OESubsetMol(OEMolBase &dst, const OEMolBase &src,
const OESystem::OEUnaryPredicate<OEAtomBase> &atomfcn,
bool adjustHCount=false, bool RGroup=false,
OEAtomBase **atomMap=0, OEBondBase **bondMap=0)
bool OESubsetMol(OEQMolBase &dst, const OEQMolBase &src,
const OESystem::OEUnaryPredicate<OEAtomBase> &atomfcn,
bool adjustHCount=false, bool RGroup=false,
OEAtomBase **atomMap=0, OEBondBase **bondMap=0)
bool OESubsetMol(OEMCMolBase &dst, const OEMCMolBase &src,
const OESystem::OEUnaryPredicate<OEAtomBase> &atomfcn,
bool adjustHCount=false, bool RGroup=false,
OEAtomBase **atomMap=0, OEBondBase **bondMap=0)
bool OESubsetMol(OEMolBase &dst, const OEMolBase &src,
const OESystem::OEUnaryPredicate<OEAtomBase> &atomfcn,
const OESystem::OEUnaryPredicate<OEBondBase> &bondfcn,
bool adjustHCount=false, bool RGroup=false,
OEAtomBase **atomMap=0, OEBondBase **bondMap=0)
bool OESubsetMol(OEQMolBase &dst, const OEQMolBase &src,
const OESystem::OEUnaryPredicate<OEAtomBase> &atomfcn,
const OESystem::OEUnaryPredicate<OEBondBase> &bondfcn,
bool adjustHCount=false, bool RGroup=false,
OEAtomBase **atomMap=0, OEBondBase **bondMap=0)
bool OESubsetMol(OEMCMolBase &dst, const OEMCMolBase &src,
const OESystem::OEUnaryPredicate<OEAtomBase> &atomfcn,
const OESystem::OEUnaryPredicate<OEBondBase> &bondfcn,
bool adjustHCount=false, bool RGroup=false,
OEAtomBase **atomMap=0, OEBondBase **bondMap=0)
bool OESuppressHydrogens(OEMolBase &mol, bool retainPolar=false,
bool retainStereo=false, bool retainIsotope=true)
unsigned OESymmetryNumber(const OEMolBase &mol, bool useH=true,
double threshold=0.05)
bool OESymmetryNumber(const OEMCMolBase &mol, unsigned *symCtArray,
bool useH=true, double threshold=0.05)
unsigned int OETerminalOCount(const OEAtomBase *atm)
unsigned int OETerminalSCount(const OEAtomBase *atm)
bool OETheFunctionFormerlyKnownAsStripSalts(OEMolBase &mol)
void OETranslate(OEMolBase &mol, const float *v)
void OETranslate(OEMolBase &mol, const double *v)
void OETranslate(OEConfBaseT<float, 3> &conf, const float *v)
void OETranslate(OEConfBaseT<float, 3> &conf, const double *v)
void OETranslate(OEMCMolBaseT<float, 3> &mcmol, const float *v)
void OETranslate(OEMCMolBaseT<float, 3> &mcmol, const double *v)
unsigned int OETripleBondCount(const OEAtomBase *atm)
void OETriposAtomNames(OEMolBase &mol)
unsigned int OETriposAtomType(const OEAtomBase *atm)
bool OETriposAtomTypeNames(OEMolBase &mol)
bool OETriposAtomTypes(OEMolBase &mol)
void OETriposBondTypeNames(OEMolBase &mol)
void OETriposOrderAtoms(OEMolBase &mol)
void OETriposResonantTypeNames(OEMolBase &mol)
unsigned int OETriposTypeElement(unsigned int type)
unsigned int OETriposTypeIndex(const char *name)
const char *OETriposTypeName(unsigned int type)
bool OETriposTypeNames(OEMolBase &mol)
bool OEWriteCDXFile(oemolostream &ofs, OEMolBase &mol)
unsigned OEWriteConstMolecule(oemolostream &ofs, const OEMol &mol)
unsigned OEWriteConstMolecule(oemolostream &ofs, const OEQMol &mol)
unsigned OEWriteConstMolecule(oemolostream &ofs, const OEMolBase &mol)
unsigned OEWriteConstMolecule(oemolostream &ofs, const OEGraphMol &mol)
unsigned OEWriteConstMolecule(oemolostream &ofs, const OEQMolBase &mol)
unsigned OEWriteConstMolecule(oemolostream &ofs, const OEMCMolBase &mol)
void OEWriteFASTAFile(oemolostream &ofs, OEMolBase &mol, const char *ident)
bool OEWriteHeader(oemolostream &str, const OESystem::OEHeader &header)
void OEWriteMDLFile(oemolostream &ofs, OEMolBase &mol,
unsigned int flavor=OEMDLOFlag::DEFAULT)
void OEWriteMOPACInputFile(oemolostream &ofs, OEMolBase &mol,
unsigned int flavor=OEMOPACOFlag::DEFAULT)
void OEWriteMacroModelFile(oemolostream &ofs, OEMolBase &mol)
void OEWriteMacroModelFile(oemolostream &ofs, OEMCMolBase &mol)
void OEWriteMol2File(oemolostream &ofs, OEMolBase &mol, bool m2h=true,
bool substruct=false)
unsigned OEWriteMolecule(oemolostream &ofs, OEMol &mol)
unsigned OEWriteMolecule(oemolostream &ofs, OEQMol &mol)
unsigned int OEWriteMolecule(oemolothread &, OEQMolBase &)
unsigned int OEWriteMolecule(oemolothread &, OEMCMolBase &)
unsigned OEWriteMolecule(oemolostream &ofs, OEMolBase &mol)
unsigned OEWriteMolecule(oemolostream &ofs, OEGraphMol &mol)
unsigned OEWriteMolecule(oemolostream &ofs, OEQMolBase &mol)
unsigned OEWriteMolecule(oemolostream &ofs, OEMCMolBase &mol)
unsigned int OEWriteMolecule(oemolothread &ofs, OEMolBase &mol)
void OEWritePDBFile(oemolostream &ofs, OEMolBase &mol,
unsigned int flavor=OEPDBOFlag::DEFAULT)
void OEWriteXYZFile(oemolostream &ofs, const OEMolBase &mol, bool charges=true,
bool symbols=true)
bool SmartsLexReplace(std::string &, std::vector<std::pair<std::string,
std::string> > &)