 |
RDKit
Open-source cheminformatics and machine learning.
|
Go to the documentation of this file.
12 #ifndef _RD_MOL_OPS_H_
13 #define _RD_MOL_OPS_H_
19 #include <boost/smart_ptr.hpp>
20 #include <boost/dynamic_bitset.hpp>
71 std::vector<int> &mapping);
84 const ROMol &mol, std::vector<std::vector<int>> &frags);
105 const ROMol &mol,
bool sanitizeFrags =
true, std::vector<int> *frags = 0,
106 std::vector<std::vector<int>> *fragsMolAtomMapping = 0,
107 bool copyConformers =
true);
123 template <
typename T>
126 bool sanitizeFrags =
true,
127 const std::vector<T> *whiteList = 0,
128 bool negateList =
false);
153 const ROMol &mol,
bool useBO =
true,
bool force =
false,
154 const std::vector<int> *bondPath = 0,
bool cacheIt =
true);
184 bool addCoords =
false,
186 bool addResidueInfo =
false);
190 bool addCoords =
false,
192 bool addResidueInfo =
false);
227 bool implicitOnly =
false,
228 bool updateExplicitCount =
false,
229 bool sanitize =
true);
233 bool updateExplicitCount =
false,
234 bool sanitize =
true);
261 bool mergeUnmappedOnly =
false);
265 bool mergeUnmappedOnly =
false);
297 : adjustDegree(true),
299 adjustRingCount(false),
301 makeDummiesQueries(true),
302 aromatizeIfPossible(true),
303 makeBondsGeneric(false),
305 makeAtomsGeneric(false),
307 adjustHeavyDegree(false),
309 adjustRingChain(false),
320 const ROMol &mol,
const AdjustQueryParameters *params = NULL);
324 RWMol &mol,
const AdjustQueryParameters *params = NULL);
341 const ROMol &mol,
const std::vector<unsigned int> &newOrder);
399 unsigned int &operationThatFailed,
478 int (*func)(
RWMol &) = NULL);
548 unsigned int maxBackTracks = 100);
605 std::vector<std::vector<int>> &res);
608 std::vector<std::vector<int>> *res = 0);
647 std::vector<std::vector<int>> &res);
674 const ROMol &mol,
bool useBO =
false,
int emptyVal = 0,
bool force =
false,
675 const char *propNamePrefix = 0,
676 const boost::dynamic_bitset<> *bondsToUse = 0);
702 bool useAtomWts =
false,
704 const char *propNamePrefix = 0);
730 const ROMol &mol,
const std::vector<int> &activeAtoms,
731 const std::vector<const Bond *> &bonds,
bool useBO =
false,
732 bool useAtomWts =
false);
757 bool useAtomWts =
false,
759 const char *propNamePrefix = 0);
808 bool includeChirality=
true,
809 bool includeIsotopes=
true,
810 std::vector<std::vector<int> > *rankHistory=0);
835 const boost::dynamic_bitset<> &atomsToUse,
836 const boost::dynamic_bitset<> &bondsToUse,
837 const std::vector<std::string> *atomSymbols=0,
838 const std::vector<std::string> *bondSymbols=0,
840 std::vector<std::vector<int> > *rankHistory=0);
860 ROMol &mol,
int confId = -1,
bool replaceExistingTags =
true);
874 ROMol &mol,
int confId = -1,
bool replaceExistingTags =
true);
886 ROMol &mol,
int confId = -1,
bool replaceExistingTags =
true);
924 ROMol &mol,
bool cleanIt =
false,
bool force =
false,
925 bool flagPossibleStereoCenters =
false);
957 bool cleanIt =
false);
962 const ROMol &mol, std::string prop);
RDKIT_GRAPHMOL_EXPORT unsigned int getMolFrags(const ROMol &mol, std::vector< int > &mapping)
find fragments (disconnected components of the molecular graph)
RDKIT_GRAPHMOL_EXPORT void Kekulize(RWMol &mol, bool markAtomsBonds=true, unsigned int maxBackTracks=100)
Kekulizes the molecule.
RDKIT_GRAPHMOL_EXPORT double * getAdjacencyMatrix(const ROMol &mol, bool useBO=false, int emptyVal=0, bool force=false, const char *propNamePrefix=0, const boost::dynamic_bitset<> *bondsToUse=0)
returns a molecule's adjacency matrix
RDKIT_GRAPHMOL_EXPORT void cleanupChirality(RWMol &mol)
removes bogus chirality markers (those on non-sp3 centers):
RDKIT_GRAPHMOL_EXPORT void removeStereochemistry(ROMol &mol)
Removes all stereochemistry information from atoms (i.e. R/S) and bonds.
RDKIT_GRAPHMOL_EXPORT void assignRadicals(RWMol &mol)
Called by the sanitizer to assign radical counts to atoms.
@ SANITIZE_SETAROMATICITY
RDKIT_GRAPHMOL_EXPORT int symmetrizeSSSR(ROMol &mol, std::vector< std::vector< int >> &res)
symmetrize the molecule's Smallest Set of Smallest Rings
RDKIT_GRAPHMOL_EXPORT double computeBalabanJ(const ROMol &mol, bool useBO=true, bool force=false, const std::vector< int > *bondPath=0, bool cacheIt=true)
calculates Balaban's J index for the molecule
@ AROMATICITY_CUSTOM
use a function
RDKIT_GRAPHMOL_EXPORT void setDoubleBondNeighborDirections(ROMol &mol, const Conformer *conf=nullptr)
Sets bond directions based on double bond stereochemistry.
RDKIT_GRAPHMOL_EXPORT ROMol * adjustQueryProperties(const ROMol &mol, const AdjustQueryParameters *params=NULL)
returns a copy of a molecule with query properties adjusted
RWMol is a molecule class that is intended to be edited.
@ ADJUST_IGNORENONDUMMIES
RDKIT_GRAPHMOL_EXPORT ROMol * mergeQueryHs(const ROMol &mol, bool mergeUnmappedOnly=false)
RDKIT_GRAPHMOL_EXPORT void findRingFamilies(const ROMol &mol)
The class for representing atoms.
std::uint32_t adjustRingCountFlags
RDKIT_GRAPHMOL_EXPORT std::vector< std::unique_ptr< MolSanitizeException > > detectChemistryProblems(const ROMol &mol, unsigned int sanitizeOps=SANITIZE_ALL)
Identifies chemistry problems (things that don't make chemical sense) in a molecule.
RDKIT_GRAPHMOL_EXPORT double * get3DDistanceMat(const ROMol &mol, int confId=-1, bool useAtomWts=false, bool force=false, const char *propNamePrefix=0)
Computes the molecule's 3D distance matrix.
RDKIT_GRAPHMOL_EXPORT void cleanUp(RWMol &mol)
Designed to be called by the sanitizer to handle special cases before.
RDKIT_GRAPHMOL_EXPORT int findSSSR(const ROMol &mol, std::vector< std::vector< int >> &res)
finds a molecule's Smallest Set of Smallest Rings
RDKIT_GRAPHMOL_EXPORT void sanitizeMol(RWMol &mol, unsigned int &operationThatFailed, unsigned int sanitizeOps=SANITIZE_ALL)
carries out a collection of tasks for cleaning up a molecule and
INVAR_VECT::const_iterator INVAR_VECT_CI
RDKIT_GRAPHMOL_EXPORT void assignStereochemistryFrom3D(ROMol &mol, int confId=-1, bool replaceExistingTags=true)
Uses a conformer to assign ChiralTypes to a molecule's atoms and stereo flags to its bonds.
#define RDKIT_GRAPHMOL_EXPORT
std::vector< UINT > UINT_VECT
RDKIT_GRAPHMOL_EXPORT void fastFindRings(const ROMol &mol)
use a DFS algorithm to identify ring bonds and atoms in a molecule
RDKIT_GRAPHMOL_EXPORT void assignStereochemistry(ROMol &mol, bool cleanIt=false, bool force=false, bool flagPossibleStereoCenters=false)
Assign stereochemistry tags to atoms (i.e. R/S) and bonds (i.e. Z/E)
@ SANITIZE_SETCONJUGATION
RDKIT_GRAPHMOL_EXPORT int setAromaticity(RWMol &mol, AromaticityModel model=AROMATICITY_DEFAULT, int(*func)(RWMol &)=NULL)
Sets up the aromaticity for a molecule.
RDKIT_GRAPHMOL_EXPORT ROMol * addHs(const ROMol &mol, bool explicitOnly=false, bool addCoords=false, const UINT_VECT *onlyOnAtoms=NULL, bool addResidueInfo=false)
returns a copy of a molecule with hydrogens added in as explicit Atoms
RDKIT_GRAPHMOL_EXPORT void assignChiralTypesFrom3D(ROMol &mol, int confId=-1, bool replaceExistingTags=true)
Uses a conformer to assign ChiralType to a molecule's atoms.
RDKIT_GRAPHMOL_EXPORT std::map< T, boost::shared_ptr< ROMol > > getMolFragsWithQuery(const ROMol &mol, T(*query)(const ROMol &, const Atom *), bool sanitizeFrags=true, const std::vector< T > *whiteList=0, bool negateList=false)
splits a molecule into pieces based on labels assigned using a query
INVAR_VECT::iterator INVAR_VECT_I
std::uint32_t adjustRingChainFlags
std::vector< double > INVAR_VECT
@ SANITIZE_SETHYBRIDIZATION
RDKIT_GRAPHMOL_EXPORT void setHybridization(ROMol &mol)
calculates and sets the hybridization of all a molecule's Stoms
RDKIT_GRAPHMOL_EXPORT int countAtomElec(const Atom *at)
return the number of electrons available on an atom to donate for
RDKIT_GRAPHMOL_EXPORT bool atomHasConjugatedBond(const Atom *at)
returns whether or not the given Atom is involved in a conjugated bond
RDKIT_GRAPHMOL_EXPORT ROMol * removeHs(const ROMol &mol, bool implicitOnly=false, bool updateExplicitCount=false, bool sanitize=true)
returns a copy of a molecule with hydrogens removed
@ SANITIZE_CLEANUPCHIRALITY
RDKIT_GRAPHMOL_EXPORT std::list< int > getShortestPath(const ROMol &mol, int aid1, int aid2)
Find the shortest path between two atoms.
std::uint32_t adjustDegreeFlags
RDKIT_GRAPHMOL_EXPORT void setBondStereoFromDirections(ROMol &mol)
Assign CIS/TRANS bond stereochemistry tags based on neighboring directions.
RDKIT_GRAPHMOL_EXPORT void adjustHs(RWMol &mol)
adjust the number of implicit and explicit Hs for special cases
AromaticityModel
Possible aromaticity models.
RDKIT_GRAPHMOL_EXPORT void detectBondStereochemistry(ROMol &mol, int confId=-1)
RDKIT_GRAPHMOL_EXPORT double * getDistanceMat(const ROMol &mol, bool useBO=false, bool useAtomWts=false, bool force=false, const char *propNamePrefix=0)
Computes the molecule's topological distance matrix.
RDKIT_GRAPHMOL_EXPORT void assignChiralTypesFromBondDirs(ROMol &mol, int confId=-1, bool replaceExistingTags=true)
Use bond directions to assign ChiralTypes to a molecule's atoms and stereo flags to its bonds.
RDKIT_GRAPHMOL_EXPORT unsigned getNumAtomsWithDistinctProperty(const ROMol &mol, std::string prop)
returns the number of atoms which have a particular property set
@ AROMATICITY_DEFAULT
future proofing
RDKIT_GRAPHMOL_EXPORT int getFormalCharge(const ROMol &mol)
sums up all atomic formal charges and returns the result
std::uint32_t makeBondsGenericFlags
RDKIT_GRAPHMOL_EXPORT void setConjugation(ROMol &mol)
flags the molecule's conjugated bonds
const RDKIT_GRAPHMOL_EXPORT int ci_LOCAL_INF
std::uint32_t adjustHeavyDegreeFlags
RDKIT_GRAPHMOL_EXPORT ROMol * renumberAtoms(const ROMol &mol, const std::vector< unsigned int > &newOrder)
returns a copy of a molecule with the atoms renumbered
RDKIT_GRAPHMOL_EXPORT void findPotentialStereoBonds(ROMol &mol, bool cleanIt=false)
finds bonds that could be cis/trans in a molecule and mark them as Bond::STEREOANY.
std::uint32_t makeAtomsGenericFlags