STORMM Source Documentation
|
A fragment of a structure detailed with the Indigo scoring function. More...
#include <indigo.h>
Public Member Functions | |
IndigoFragment (const std::vector< int > ¢ers_list_in, const std::vector< IndigoAtomCenter > &all_centers, int score_delta=default_indigo_energy_gap) | |
Constructor takes a list of atoms, then determines the bonds between them and whatever connections to other fragments. The identities of other fragments are not determined at the time of construction, but space to store them is allocated. | |
int | getCenterCount () const |
Get the number of centers in this fragment. | |
int | getStateCount () const |
Get the number of states in this fragment. | |
std::vector< int2 > | getState (int state_index) const |
Return the vector of {atom center number, atom center state} tuples describing a particular state of this fragment. This list will have to be interpreted in light of the complete list of atom centers to know what formal charge states and bond orders the fragment state actually implies. | |
int | getGlobalCenter (int center_index) const |
Get the index of a center in the fragment within the molecule system as a whole. | |
int | getCharge (int state_index) const |
Get the charge of this fragment in a particular state. There total charges were compute when the object was constructed, hence no further references to a master list of atom centers and their individual states is necessary. | |
int | getScore (int state_index) const |
Return the score associated with a particular state of this atom center. | |
std::vector< int > | getChargeStates () const |
Create a vector of the unique charge states in a fragment. | |
std::vector< int3 > | getChargesAndBestEnergies () const |
Get the range of charges and the minimum energy states that can produce each charge offered by this fragment. The vector of results is a list of tuples providing the fragment charge (in the x member), the minimum energy state (in the y member), and the index of the fragment state for that minimum energy and charge combination (in the z member). | |
std::vector< int2 > | getStatesBearingCharge (int charge_value) const |
Get all states in a fragment bearing a particular charge. The energy of each state satisfying the net charge condition is returned in the x member of each tuple. The index of the state is returned in the y member. | |
bool | testEquivalence (const IndigoFragment &other, const std::vector< int > &real_atom_map, const AtomGraph *ag_pointer, const std::vector< IndigoAtomCenter > &atom_centers) const |
Assess whether two fragments are equivalent, just with different atom indices. Return the result as a boolean expression. | |
int | cullStatesBearingCharge (int charge_value) |
Cull states of a fragment that bear a specific charge. | |
int | cullHigherEnergyStatesByCharge (int charge_value, int score_delta=default_indigo_energy_gap) |
Cull non-optimal states of a fragment that bear a specific charge. | |
A fragment of a structure detailed with the Indigo scoring function.
stormm::chemistry::IndigoFragment::IndigoFragment | ( | const std::vector< int > & | centers_list_in, |
const std::vector< IndigoAtomCenter > & | all_centers, | ||
int | score_delta = default_indigo_energy_gap ) |
Constructor takes a list of atoms, then determines the bonds between them and whatever connections to other fragments. The identities of other fragments are not determined at the time of construction, but space to store them is allocated.
idg_tab | |
atom_list | Subset of atoms that will make up this fragment |
score_delta | The maximum score above some ground state, for a particular charge increment, to continue catalogging new states. Other above this threshold will be ignored. |
int stormm::chemistry::IndigoFragment::cullHigherEnergyStatesByCharge | ( | int | charge_value, |
int | score_delta = default_indigo_energy_gap ) |
Cull non-optimal states of a fragment that bear a specific charge.
charge_value | Cull states bearing this net charge with sub-optimal energies |
score_delta | Threshold at which to cull non-optimal states (default 3187 implies an energy difference of 10 kcal/mol) |
int stormm::chemistry::IndigoFragment::cullStatesBearingCharge | ( | int | charge_value | ) |
Cull states of a fragment that bear a specific charge.
charge_value | Cull states bearing this net charge |
int stormm::chemistry::IndigoFragment::getCharge | ( | int | state_index | ) | const |
Get the charge of this fragment in a particular state. There total charges were compute when the object was constructed, hence no further references to a master list of atom centers and their individual states is necessary.
state_index | Index of the state in question |
std::vector< int3 > stormm::chemistry::IndigoFragment::getChargesAndBestEnergies | ( | ) | const |
Get the range of charges and the minimum energy states that can produce each charge offered by this fragment. The vector of results is a list of tuples providing the fragment charge (in the x member), the minimum energy state (in the y member), and the index of the fragment state for that minimum energy and charge combination (in the z member).
state_index | Index of the state in question |
int stormm::chemistry::IndigoFragment::getGlobalCenter | ( | int | center_index | ) | const |
Get the index of a center in the fragment within the molecule system as a whole.
center_index | Index of the center of interest |
int stormm::chemistry::IndigoFragment::getScore | ( | int | state_index | ) | const |
Return the score associated with a particular state of this atom center.
state_index | Index of the state in question |
std::vector< int2 > stormm::chemistry::IndigoFragment::getState | ( | int | state_index | ) | const |
Return the vector of {atom center number, atom center state} tuples describing a particular state of this fragment. This list will have to be interpreted in light of the complete list of atom centers to know what formal charge states and bond orders the fragment state actually implies.
state_index | Index of the fragment state in question |
std::vector< int2 > stormm::chemistry::IndigoFragment::getStatesBearingCharge | ( | int | charge_value | ) | const |
Get all states in a fragment bearing a particular charge. The energy of each state satisfying the net charge condition is returned in the x member of each tuple. The index of the state is returned in the y member.
charge_value | The charge criterion for selecting states |
bool stormm::chemistry::IndigoFragment::testEquivalence | ( | const IndigoFragment & | other, |
const std::vector< int > & | real_atom_map, | ||
const AtomGraph * | ag_pointer, | ||
const std::vector< IndigoAtomCenter > & | atom_centers ) const |
Assess whether two fragments are equivalent, just with different atom indices. Return the result as a boolean expression.
other | Another fragment |
real_atom_map | Map of fragment atoms into the original topology |
ag_pointer | Pointer to the original topology |
atom_centers | Array of all atom centers in the IndigoTable containing these fragments |