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.

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.