OEMultistatepKaModel¶
Attention
This is a preliminary API and may be improved based on user feedback. It is currently available in C++ and Python.
class OEMultistatepKaModel
This class provides functionality to assess the atomic pKa of a given molecule and enumerate ionization states at neutral pH. The options required for this class can be set using the OEMultistatepKaModelOptions class.
The OEMultistatepKaModel class defines the following public methods:
Constructors¶
Constructors.
OEMultistatepKaModel()
OEMultistatepKaModel(OEChem::OEMolBase &mol)
OEMultistatepKaModel(OEChem::OEMolBase &mol, OEMultistatepKaModelOptions &opts)
Copy constructor.
OEMultistatepKaModel(const OEMultistatepKaModel &rhs)
Copy assignment constructor.
operator=¶
OEMultistatepKaModel& operator=(const OEMultistatepKaModel &rhs)
Init¶
void Init(OEChem::OEMolBase &mol)
void Init(OEChem::OEMolBase &mol, OEMultistatepKaModelOptions &opts)
If a user has initialized the OEMultistatepKaModel instance with default constructor (without molecule and options object), they can add a molecule and OEMultistatepKaModelOptions instance later by the Init method.
CalculateNumOfMicrostates¶
int CalculateNumOfMicrostates()
This method calculates the number of microstates possible for given molecule. It uses the information (generic pKa data) assessed and set by the method SetAllAtomspKaData. It returns -1 if either OEMultistatepKaModel failed to assess all atomic pKa on the molecule (probably due to unknown atoms present), or it halted assessing pKa data because the projected number of microstates exceeded the provided limit of microstates to be generated.
GetModelMolecule¶
const OEChem::OEMolBase& GetModelMolecule()
This method returns the copy of the internal molecule object from the OEMultistatepKaModel class on which all atomic pKa data are assessed and set as generic data.
GetAtompKaRange¶
unsigned int GetAtompKaRange(const OEChem::OEAtomBase* atom)
This method allows a user to assess and get the pKa range (
OEpKaRange_Acidic
,
OEpKaRange_Neutral
,
OEpKaRange_Basic
or
OEpKaRange_Unidentified
)
for an individual atom.
GetAtomAdjTypeAtNeutralpH¶
unsigned int GetAtomAdjTypeAtNeutralpH(const OEChem::OEAtomBase* atom)
This method allows a user to assess and get the adjustment type to be done at
neutral pH (
OEAdjTypeAtNeutralpH_NoChange
,
OEAdjTypeAtNeutralpH_Protonation
,
OEAdjTypeAtNeutralpH_Deprotonation
,
OEAdjTypeAtNeutralpH_NoChangeAndProtonation
,
OEAdjTypeAtNeutralpH_NoChangeAndDeprotonation
) for an individual atom.
GenerateMicrostates¶
bool GenerateMicrostates()
This method generates all possible microstates (up to the limit specified by the options class).
These generated microstates can be accessed by the method
GetMicrostates
.
GetMicrostates¶
OESystem::OEIterBase<OEChem::OEMolBase>* GetMicrostates()
Microstates generated by the method GenerateMicrostates
can be accessed by this method. It returns an iterator over the generated microstates molecule objects.
HasAdjTypeAtNeutralpH¶
HasAdjTypeAtNeutralpH()
This is a predicate functor, which allows a user to filter atoms with the
desired OEAdjTypeAtNeutralpH
generic data attached.
HaspKaRange¶
HaspKaRange()
This is a predicate functor, which allows a user to filter atoms with the
desired OEpKaRange
generic data attached.
SetAllAtomspKaData¶
bool SetAllAtomspKaData()
This method assesses the atomic pKa for all heavy/hetero atoms and sets generic pKa data for these atoms. If an OEMultistatepKaModelOptions class object is specified with the parameter processcarbons = true, it assesses all heavy atoms. If an OEMultistatepKaModelOptions class object is specified with the parameter processcarbons = false, then only hetero atoms are assessed.