NFcore::ReactionClass Class Reference

#include <NFcore.hh>

Inheritance diagram for NFcore::ReactionClass:

NFcore::BasicRxnClass NFcore::DORRxnClass NFcore::FunctionalRxnClass NFcore::MMRxnClass

List of all members.

Detailed Description

Abstract Base Class that defines the interface for all reaction rules.

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.

Michael Sneddon

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
double baseRate
string baseRateParameterName
double a
unsigned int fireCounter
unsigned int traversalLimit
TemplateMolecule ** reactantTemplates
MappingSet ** mappingSet
bool onTheFlyObservables
bool isDimerStyle
list< Molecule * > products
list< Molecule * >::iterator molIter
vector< int > updatedComplexes
bool totalRateFlag


class MatchSetIter
class Netgen

Constructor & Destructor Documentation

ReactionClass::ReactionClass ( string  name,
double  rate,
string  baseRateParameterName,
TransformationSet transformationSet,
System s 

ReactionClass::~ReactionClass (  )  [virtual]

Member Function Documentation

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.

Friends And Related Function Documentation

friend class MatchSetIter [friend]

friend class Netgen [friend]

Member Data Documentation

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]

TransformationSet* NFcore::ReactionClass::transformationSet [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)

The documentation for this class was generated from the following files:
Generated on Thu Dec 9 11:02:48 2010 for NFsim by  doxygen 1.5.4