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 atomic pKa of given molecule and enumerate ionization states at neutral pH. The options required for this class can be set using 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 user has initialized the OEMultistatepKaModel instance with default constructor (without molecule and options object), later user can add molecule and OEMultistatepKaModelOptions instance by 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 method SetAllAtomspKaData. It returns -1 if either MultistatepKaModel failed to assess all atomic pKa on the molecule (probably due to unknown atoms present) or it halted assessing pKa data because projected number of microstates exceeded the provided limit of microstates to be generated.

GetModelMolecule

const OEChem::OEMolBase& GetModelMolecule()

This method returns the copy of OEMultistatepKaModel class’ internal molecule object on which all atomic pKa data are assessed and set as generic data.

GetAtompKaRange

unsigned int GetAtompKaRange(const OEChem::OEAtomBase* atom)

This method allows user to assess and get pKa range ( OEpKaRange::Acidic, OEpKaRange::Neutral, OEpKaRange::Basic or OEpKaRange::Unidentified) for an indvidual atom.

GetAtomAdjTypeAtNeutralpH

unsigned int GetAtomAdjTypeAtNeutralpH(const OEChem::OEAtomBase* atom)

This method allows user to assess and get adjustment type to be done at neutral pH ( OEAdjTypeAtNeutralpH::NoChange, OEAdjTypeAtNeutralpH::Protonation, OEAdjTypeAtNeutralpH::Deprotonation, OEAdjTypeAtNeutralpH::NoChangeAndProtonation, OEAdjTypeAtNeutralpH::NoChangeAndDeprotonation ) for an indvidual atom.

GenerateMicrostates

bool GenerateMicrostates()

This method generates all possible microstates (upto the limit specified by options class). And these generated microstaes can be accessed by method GetMicrostates.

GetMicrostates

OESystem::OEIterBase<OEChem::OEMolBase>* GetMicrostates()

Microstates generated by 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 user to filter atoms with desired OEAdjTypeAtNeutralpH generic data attached.

HaspKaRange

HaspKaRange()

This is a predicate functor, which allows user to filter atoms with desired OEpKaRange generic data attached.

SetAllAtomspKaData

bool SetAllAtomspKaData()

This method assess atomic pKa for all heavy/hetero atoms and set generic pKa data for these atoms. If OEMultistatepKaModelOptions class object is specified with parameter processcarbons = true, it assesses all heavy atoms, if OEMultistatepKaModelOptions class object is specified with parameter processcarbons = false, then only hetero atoms are assessed.