#include <NFcore.hh>
A ReactionClass represents the set of reactions implied by a single reaction rule along with the rate law and propensity of that reaction rule. ReactionClasses also store information needed to transform reactants. A ReactionClass keeps a reference to every reactant Molecule in the system that might participate in the rule. To determine if a particular set of connected Molecules is a possible reactant, ReactionClasses use TemplateMolecules. ReactionClasses come in several forms based on how reactants are chosen and the rate law. For typical ReactionClasses, each reactant Molecule has an equal probability of reacting and therefore reactants are selected to participate at random. However, for ReactionClasses with rates that depend functionally on local context, each reactant will have a different probability and rate of reacting. Such ReactionClasses have a distribution of rates and so we refer to them as Distribution of Rates (DOR) Reactions. DOR Reactions require special handling because the participating reactants must be chosen based on its weighted probability of reacting. There are also reactionClasses that can support functionally defined rate laws and michaelis-menton style reactions. All of these implementing classes are declared in the file reactions.hh.
Public Member Functions | |
ReactionClass (string name, double rate, string baseRateParameterName, TransformationSet *transformationSet, System *s) | |
virtual | ~ReactionClass () |
int | getNumOfReactants () const |
string | getName () const |
double | getBaseRate () const |
int | getRxnType () const |
void | setBaseRate (double newBaseRate, string newBaseRateName) |
void | resetBaseRateFromSystemParamter () |
void | setTraversalLimit (int limit) |
double | get_a () const |
virtual void | printDetails () const |
void | fire (double random_A_number) |
virtual void | notifyRateFactorChange (Molecule *m, int reactantIndex, int rxnListIndex)=0 |
virtual int | getDORreactantPosition () const |
virtual void | init ()=0 |
virtual void | prepareForSimulation ()=0 |
virtual bool | tryToAdd (Molecule *m, unsigned int reactantPos)=0 |
virtual void | remove (Molecule *m, unsigned int reactantPos)=0 |
virtual double | update_a ()=0 |
void | tag () |
virtual unsigned int | getReactantCount (unsigned int reactantIndex) const =0 |
virtual void | printFullDetails () const =0 |
void | setRxnId (int rxnId) |
int | getRxnId () const |
void | turnOff_OnTheFlyObs () |
void | setTotalRateFlag (bool totalRate) |
void | set_match (vector< MappingSet * > &match_set) |
void | apply (vector< Molecule * > &product_molecules) |
Static Public Attributes | |
static const int | NO_LIMIT = -3 |
static const int | BASIC_RXN = 0 |
static const int | DOR_RXN = 1 |
static const int | OBS_DEPENDENT_RXN = 2 |
Protected Member Functions | |
virtual void | pickMappingSets (double randNumber) const =0 |
Protected Attributes | |
int | rxnId |
bool | tagged |
string | name |
int | reactionType |
unsigned int | n_reactants |
System * | system |
double | baseRate |
string | baseRateParameterName |
double | a |
unsigned int | fireCounter |
unsigned int | traversalLimit |
TemplateMolecule ** | reactantTemplates |
TransformationSet * | transformationSet |
MappingSet ** | mappingSet |
bool | onTheFlyObservables |
bool | isDimerStyle |
list< Molecule * > | products |
list< Molecule * >::iterator | molIter |
vector< int > | updatedComplexes |
bool | totalRateFlag |
Friends | |
class | MatchSetIter |
class | Netgen |
ReactionClass::ReactionClass | ( | string | name, | |
double | rate, | |||
string | baseRateParameterName, | |||
TransformationSet * | transformationSet, | |||
System * | s | |||
) |
ReactionClass::~ReactionClass | ( | ) | [virtual] |
int NFcore::ReactionClass::getNumOfReactants | ( | ) | const [inline] |
string NFcore::ReactionClass::getName | ( | ) | const [inline] |
double NFcore::ReactionClass::getBaseRate | ( | ) | const [inline] |
int NFcore::ReactionClass::getRxnType | ( | ) | const [inline] |
void NFcore::ReactionClass::setBaseRate | ( | double | newBaseRate, | |
string | newBaseRateName | |||
) | [inline] |
void ReactionClass::resetBaseRateFromSystemParamter | ( | ) |
void NFcore::ReactionClass::setTraversalLimit | ( | int | limit | ) | [inline] |
double NFcore::ReactionClass::get_a | ( | ) | const [inline] |
void ReactionClass::printDetails | ( | ) | const [virtual] |
Reimplemented in NFcore::FunctionalRxnClass, NFcore::MMRxnClass, and NFcore::DORRxnClass.
void ReactionClass::fire | ( | double | random_A_number | ) |
virtual void NFcore::ReactionClass::notifyRateFactorChange | ( | Molecule * | m, | |
int | reactantIndex, | |||
int | rxnListIndex | |||
) | [pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
virtual int NFcore::ReactionClass::getDORreactantPosition | ( | ) | const [inline, virtual] |
Reimplemented in NFcore::DORRxnClass.
virtual void NFcore::ReactionClass::init | ( | ) | [pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
virtual void NFcore::ReactionClass::prepareForSimulation | ( | ) | [pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
virtual bool NFcore::ReactionClass::tryToAdd | ( | Molecule * | m, | |
unsigned int | reactantPos | |||
) | [pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
virtual void NFcore::ReactionClass::remove | ( | Molecule * | m, | |
unsigned int | reactantPos | |||
) | [pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
virtual double NFcore::ReactionClass::update_a | ( | ) | [pure virtual] |
Implemented in NFcore::BasicRxnClass, NFcore::FunctionalRxnClass, NFcore::MMRxnClass, and NFcore::DORRxnClass.
void NFcore::ReactionClass::tag | ( | ) | [inline] |
virtual unsigned int NFcore::ReactionClass::getReactantCount | ( | unsigned int | reactantIndex | ) | const [pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
virtual void NFcore::ReactionClass::printFullDetails | ( | ) | const [pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
void NFcore::ReactionClass::setRxnId | ( | int | rxnId | ) | [inline] |
int NFcore::ReactionClass::getRxnId | ( | ) | const [inline] |
void NFcore::ReactionClass::turnOff_OnTheFlyObs | ( | ) | [inline] |
void NFcore::ReactionClass::setTotalRateFlag | ( | bool | totalRate | ) | [inline] |
void NFcore::ReactionClass::set_match | ( | vector< MappingSet * > & | match_set | ) |
void NFcore::ReactionClass::apply | ( | vector< Molecule * > & | product_molecules | ) |
virtual void NFcore::ReactionClass::pickMappingSets | ( | double | randNumber | ) | const [protected, pure virtual] |
Implemented in NFcore::BasicRxnClass, and NFcore::DORRxnClass.
friend class MatchSetIter [friend] |
friend class Netgen [friend] |
const int NFcore::ReactionClass::NO_LIMIT = -3 [static] |
const int NFcore::ReactionClass::BASIC_RXN = 0 [static] |
const int NFcore::ReactionClass::DOR_RXN = 1 [static] |
const int NFcore::ReactionClass::OBS_DEPENDENT_RXN = 2 [static] |
int NFcore::ReactionClass::rxnId [protected] |
bool NFcore::ReactionClass::tagged [protected] |
string NFcore::ReactionClass::name [protected] |
int NFcore::ReactionClass::reactionType [protected] |
unsigned int NFcore::ReactionClass::n_reactants [protected] |
System* NFcore::ReactionClass::system [protected] |
double NFcore::ReactionClass::baseRate [protected] |
string NFcore::ReactionClass::baseRateParameterName [protected] |
double NFcore::ReactionClass::a [protected] |
unsigned int NFcore::ReactionClass::fireCounter [protected] |
unsigned int NFcore::ReactionClass::traversalLimit [protected] |
TemplateMolecule** NFcore::ReactionClass::reactantTemplates [protected] |
MappingSet** NFcore::ReactionClass::mappingSet [protected] |
bool NFcore::ReactionClass::onTheFlyObservables [protected] |
bool NFcore::ReactionClass::isDimerStyle [protected] |
list<Molecule *> NFcore::ReactionClass::products [protected] |
list<Molecule *>::iterator NFcore::ReactionClass::molIter [protected] |
vector<int> NFcore::ReactionClass::updatedComplexes [protected] |
bool NFcore::ReactionClass::totalRateFlag [protected] |
flag to identify if the macroscopic vs. microscopic rate is to be used (TotalRate = macroscopic)