29 #ifndef CDPL_CHEM_PROTONATIONSTATESTANDARDIZER_HPP
30 #define CDPL_CHEM_PROTONATIONSTATESTANDARDIZER_HPP
34 #include <unordered_set>
51 class ChEMBLStandardizer;
75 MAX_CHARGE_COMPENSATION
116 typedef std::vector<Chem::Atom*> AtomList;
120 bool minChargedAtomCount(
Molecule& mol);
121 bool protForPhysCond(
Molecule& mol);
126 std::size_t adaptHydrogenCount(
Atom& atom,
Molecule& mol,
long h_delta)
const;
128 std::size_t calcFreeValence(
const Atom& atom)
const;
130 long calcNetCharge(
const Atom& atom)
const;
132 std::size_t calcValenceExcess(
const Atom& atom)
const;
134 std::size_t getMatches(
const Molecule& ptn,
const Molecule& mol, AtomList& matches);
136 bool incrementCharge(
Atom& atom,
bool checked)
const;
138 bool isRemovableHydrogen(
const Atom& atom)
const;
140 bool cmpCanonicalNumber(
const Atom* atom1,
const Atom* atom2)
const;
142 bool removeConnectedHydrogens(
const AtomList& atoms,
Molecule& mol)
const;
144 typedef std::unordered_set<const Atom*> AtomSet;
149 AtomList posChargedAtoms;
150 AtomList posChargedNoHAtoms;
151 AtomList negChargedAtoms;
152 AtomList negChargedAcidAtoms;
Definition of class CDPL::Util::Array.
Declaration of type CDPL::Util::BitSet.
Definition of class CDPL::Chem::CanonicalNumberingCalculator.
Definition of the preprocessor macro CDPL_CHEM_API.
#define CDPL_CHEM_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Definition of class CDPL::Chem::SubstructureSearch.
Abstract base class representing a chemical atom and its bonded neighborhood.
Definition: Atom.hpp:57
Calculation of canonical atom numberings for molecular graphs using McKay's algorithm.
Definition: CanonicalNumberingCalculator.hpp:72
Implementation of the ChEMBL structure preprocessing pipeline.
Definition: ChEMBLStandardizer.hpp:65
Abstract base class representing a mutable molecular graph that owns its atoms and bonds.
Definition: Molecule.hpp:53
Adjusts the protonation state of a molecule (atom formal charges and bonded hydrogen counts) accordin...
Definition: ProtonationStateStandardizer.hpp:58
Flavor
Selects the objective driving the protonation-state adjustment.
Definition: ProtonationStateStandardizer.hpp:68
@ MIN_CHARGED_ATOM_COUNT
Minimize the total number of formally charged atoms (neutralize where possible).
Definition: ProtonationStateStandardizer.hpp:71
@ PHYSIOLOGICAL_CONDITION_STATE
Set the protonation state expected under physiological conditions (pH ~7.4).
Definition: ProtonationStateStandardizer.hpp:73
bool standardize(const Molecule &mol, Molecule &std_mol, Flavor flavor)
Writes a standardized copy of mol to std_mol without modifying mol.
ProtonationStateStandardizer & operator=(const ProtonationStateStandardizer &standardizer)
Replaces the state of this standardizer by a copy of the state of standardizer.
ProtonationStateStandardizer(const ProtonationStateStandardizer &standardizer)
Constructs a copy of the ProtonationStateStandardizer instance standardizer.
bool standardize(Molecule &mol, Flavor flavor)
Adjusts the protonation state of mol in place according to the selected flavor.
std::shared_ptr< ProtonationStateStandardizer > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated ProtonationStateStandardizer inst...
Definition: ProtonationStateStandardizer.hpp:62
ProtonationStateStandardizer()
Constructs the ProtonationStateStandardizer instance.
Subgraph-isomorphism search of a query molecular graph against a target molecular graph,...
Definition: SubstructureSearch.hpp:74
Array< std::size_t > STArray
Array storing unsigned integers of type std::size_t.
Definition: Array.hpp:575
boost::dynamic_bitset BitSet
Dynamic bitset class.
Definition: BitSet.hpp:46
The namespace of the Chemical Data Processing Library.