STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::chemistry::IndigoFragment Class Reference

A fragment of a structure detailed with the Indigo scoring function. More...

#include <indigo.h>

Public Member Functions

 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.
 
int getCenterCount () const
 Get the number of centers in this fragment.
 
int getStateCount () const
 Get the number of states in this fragment.
 
std::vector< int2getState (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< int3getChargesAndBestEnergies () 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< int2getStatesBearingCharge (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.
 

Detailed Description

A fragment of a structure detailed with the Indigo scoring function.

Constructor & Destructor Documentation

◆ IndigoFragment()

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.

Parameters
idg_tab
atom_listSubset of atoms that will make up this fragment
score_deltaThe maximum score above some ground state, for a particular charge increment, to continue catalogging new states. Other above this threshold will be ignored.

Member Function Documentation

◆ cullHigherEnergyStatesByCharge()

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.

Parameters
charge_valueCull states bearing this net charge with sub-optimal energies
score_deltaThreshold at which to cull non-optimal states (default 3187 implies an energy difference of 10 kcal/mol)

◆ cullStatesBearingCharge()

int stormm::chemistry::IndigoFragment::cullStatesBearingCharge ( int charge_value)

Cull states of a fragment that bear a specific charge.

Parameters
charge_valueCull states bearing this net charge

◆ getCharge()

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.

Parameters
state_indexIndex of the state in question

◆ getChargesAndBestEnergies()

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).

Parameters
state_indexIndex of the state in question

◆ getGlobalCenter()

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.

Parameters
center_indexIndex of the center of interest

◆ getScore()

int stormm::chemistry::IndigoFragment::getScore ( int state_index) const

Return the score associated with a particular state of this atom center.

Parameters
state_indexIndex of the state in question

◆ getState()

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.

Parameters
state_indexIndex of the fragment state in question

◆ getStatesBearingCharge()

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.

Parameters
charge_valueThe charge criterion for selecting states

◆ testEquivalence()

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.

Parameters
otherAnother fragment
real_atom_mapMap of fragment atoms into the original topology
ag_pointerPointer to the original topology
atom_centersArray of all atom centers in the IndigoTable containing these fragments

The documentation for this class was generated from the following files: