COPASI API
4.16.103
|
#include <CBitPatternMethod.h>
Public Member Functions | |
virtual bool | calculate () |
CBitPatternMethod (const CBitPatternMethod &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | initialize () |
~CBitPatternMethod () | |
![]() | |
CEFMMethod (const CEFMMethod &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) |
virtual | ~CEFMMethod () |
![]() | |
CCopasiMethod (const CCopasiMethod &src, const CCopasiContainer *pParent=NULL) | |
const CCopasiMethod::SubType & | getSubType () const |
const CCopasiTask::Type & | getType () const |
virtual void | load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH) |
virtual void | print (std::ostream *ostream) const |
virtual void | printResult (std::ostream *ostream) const |
virtual bool | setCallBack (CProcessReport *pCallBack) |
virtual | ~CCopasiMethod () |
![]() | |
bool | addGroup (const std::string &name) |
bool | addParameter (const CCopasiParameter ¶meter) |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type) |
template<class CType > | |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value) |
void | addParameter (CCopasiParameter *pParameter) |
CCopasiParameterGroup * | assertGroup (const std::string &name) |
template<class CType > | |
CCopasiParameter * | assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue) |
index_iterator | beginIndex () const |
name_iterator | beginName () const |
CCopasiParameterGroup (const CCopasiParameterGroup &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameterGroup (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &objectType="ParameterGroup") | |
void | clear () |
virtual bool | elevateChildren () |
index_iterator | endIndex () const |
name_iterator | endName () const |
CCopasiParameterGroup * | getGroup (const std::string &name) |
const CCopasiParameterGroup * | getGroup (const std::string &name) const |
CCopasiParameterGroup * | getGroup (const size_t &index) |
const CCopasiParameterGroup * | getGroup (const size_t &index) const |
size_t | getIndex (const std::string &name) const |
std::string | getKey (const std::string &name) const |
std::string | getKey (const size_t &index) const |
virtual const std::string & | getName (const size_t &index) const |
virtual const CObjectInterface * | getObject (const CCopasiObjectName &cn) const |
CCopasiParameter * | getParameter (const std::string &name) |
const CCopasiParameter * | getParameter (const std::string &name) const |
CCopasiParameter * | getParameter (const size_t &index) |
const CCopasiParameter * | getParameter (const size_t &index) const |
CCopasiParameter::Type | getType (const std::string &name) const |
CCopasiParameter::Type | getType (const size_t &index) const |
std::string | getUniqueParameterName (const CCopasiParameter *pParameter) const |
const CCopasiParameter::Value & | getValue (const std::string &name) const |
const CCopasiParameter::Value & | getValue (const size_t &index) const |
CCopasiParameter::Value & | getValue (const std::string &name) |
CCopasiParameter::Value & | getValue (const size_t &index) |
CCopasiParameterGroup & | operator= (const CCopasiParameterGroup &rhs) |
bool | removeParameter (const std::string &name) |
bool | removeParameter (const size_t &index) |
template<class CType > | |
bool | setValue (const std::string &name, const CType &value) |
template<class CType > | |
bool | setValue (const size_t &index, const CType &value) |
size_t | size () const |
bool | swap (const size_t &iFrom, const size_t &iTo) |
bool | swap (index_iterator &from, index_iterator &to) |
virtual | ~CCopasiParameterGroup () |
![]() | |
CCopasiParameter (const CCopasiParameter &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CCopasiContainer *pParent=NULL, const std::string &objectType="Parameter") | |
virtual CCopasiObjectName | getCN () const |
virtual const std::string & | getKey () const |
virtual std::string | getObjectDisplayName (bool regular=true, bool richtext=false) const |
const CCopasiParameter::Type & | getType () const |
const Value & | getValue () const |
Value & | getValue () |
virtual void * | getValuePointer () const |
CCopasiObject * | getValueReference () const |
bool | isValidValue (const C_FLOAT64 &value) const |
bool | isValidValue (const C_INT32 &value) const |
bool | isValidValue (const unsigned C_INT32 &value) const |
bool | isValidValue (const bool &value) const |
bool | isValidValue (const std::string &value) const |
bool | isValidValue (const CCopasiObjectName &value) const |
bool | isValidValue (const std::vector< CCopasiParameter * > &value) const |
CCopasiParameter & | operator= (const CCopasiParameter &rhs) |
template<class CType > | |
bool | setValue (const CType &value) |
bool | setValue (const std::vector< CCopasiParameter * > &value) |
virtual | ~CCopasiParameter () |
![]() | |
virtual bool | add (CCopasiObject *pObject, const bool &adopt=true) |
CCopasiContainer (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=CCopasiObject::Container) | |
CCopasiContainer (const CCopasiContainer &src, const CCopasiContainer *pParent=NULL) | |
virtual std::string | getChildObjectUnits (const CCopasiObject *pObject) const |
virtual const objectMap & | getObjects () const |
virtual std::string | getUnits () const |
virtual const CCopasiObject * | getValueObject () const |
virtual bool | remove (CCopasiObject *pObject) |
virtual | ~CCopasiContainer () |
![]() | |
void | addDirectDependency (const CCopasiObject *pObject) |
CCopasiObject (const CCopasiObject &src, const CCopasiContainer *pParent=NULL) | |
void | clearDirectDependencies () |
void | clearRefresh () |
bool | dependsOn (DataObjectSet candidates, const DataObjectSet &context=DataObjectSet()) const |
void | getAllDependencies (DataObjectSet &dependencies, const DataObjectSet &context) const |
virtual const DataObjectSet & | getDirectDependencies (const DataObjectSet &context=DataObjectSet()) const |
CCopasiContainer * | getObjectAncestor (const std::string &type) const |
CCopasiDataModel * | getObjectDataModel () |
const CCopasiDataModel * | getObjectDataModel () const |
const std::string & | getObjectName () const |
CCopasiContainer * | getObjectParent () const |
const std::string & | getObjectType () const |
virtual const CObjectInterface::ObjectSet & | getPrerequisites () const |
virtual Refresh * | getRefresh () const |
UpdateMethod * | getUpdateMethod () const |
bool | hasCircularDependencies (DataObjectSet &candidates, DataObjectSet &verified, const DataObjectSet &context) const |
bool | hasUpdateMethod () const |
bool | isArray () const |
bool | isContainer () const |
bool | isDataModel () const |
bool | isMatrix () const |
bool | isNameVector () const |
bool | isNonUniqueName () const |
virtual bool | isPrerequisiteForContext (const CObjectInterface *pObject, const CMath::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const |
bool | isReference () const |
bool | isRoot () const |
bool | isSeparator () const |
bool | isStaticString () const |
bool | isValueBool () const |
bool | isValueDbl () const |
bool | isValueInt () const |
bool | isValueInt64 () const |
bool | isValueString () const |
bool | isVector () const |
virtual bool | mustBeDeleted (const DataObjectSet &deletedObjects) const |
void | removeDirectDependency (const CCopasiObject *pObject) |
void | setDirectDependencies (const DataObjectSet &directDependencies) |
bool | setObjectName (const std::string &name) |
virtual bool | setObjectParent (const CCopasiContainer *pParent) |
void | setObjectValue (const C_FLOAT64 &value) |
void | setObjectValue (const C_INT32 &value) |
void | setObjectValue (const bool &value) |
template<class CType > | |
void | setRefresh (CType *pType, void(CType::*method)(void)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_FLOAT64 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_INT32 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const bool &)) |
virtual | ~CCopasiObject () |
![]() | |
CObjectInterface () | |
virtual | ~CObjectInterface () |
Static Public Member Functions | |
static bool | CalculateKernel (CMatrix< C_INT64 > &matrix, CMatrix< C_INT64 > &kernel, CVector< size_t > &rowPivot) |
static void | GCD (C_INT64 &m, C_INT64 &n) |
![]() | |
static CEFMMethod * | createMethod (CCopasiMethod::SubType subType=CCopasiMethod::EFMAlgorithm) |
![]() | |
static std::vector< Refresh * > | buildUpdateSequence (const DataObjectSet &objects, const DataObjectSet &uptoDateObjects, const DataObjectSet &context=DataObjectSet()) |
static void | setRenameHandler (CRenameHandler *rh) |
Protected Member Functions | |
CBitPatternMethod (const CCopasiContainer *pParent=NULL) | |
CBitPatternMethod (const CCopasiMethod::SubType subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CEFMMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiParameterGroup () | |
![]() | |
template<class CType > | |
CCopasiObject * | addMatrixReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addObjectReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addVectorReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
void | initObjects () |
![]() | |
CCopasiObject () | |
CCopasiObject (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=0) | |
Protected Attributes | |
bool | mContinueCombination |
CMatrix< C_INT64 > | mExpandedStoiTranspose |
size_t | mhProgressCounter |
size_t | mhProgressCounter2 |
size_t | mMinimumSetSize |
std::vector< CStepMatrixColumn * > | mNewColumns |
CModel * | mpModel |
unsigned C_INT32 | mProgressCounter |
unsigned C_INT32 | mProgressCounter2 |
unsigned C_INT32 | mProgressCounter2Max |
unsigned C_INT32 | mProgressCounterMax |
CStepMatrix * | mpStepMatrix |
std::vector< std::pair< size_t, bool > > | mReactionForward |
CVector< size_t > | mReactionPivot |
size_t | mStep |
![]() | |
std::vector< CFluxMode > * | mpFluxModes |
std::vector< const CReaction * > * | mpReorderedReactions |
![]() | |
CProcessReport * | mpCallBack |
![]() | |
std::string | mKey |
CCopasiObject * | mpValueReference |
size_t | mSize |
Value | mValue |
![]() | |
objectMap | mObjects |
Private Member Functions | |
void | addMode (const CFluxMode &mode) |
void | buildFluxModeMatrix (CStepMatrix *fluxModeMatrix, std::stack< CStepMatrixColumn * > kernelStack) |
void | buildFluxModes () |
void | buildKernelMatrix (CMatrix< C_INT64 > &kernel) |
void | combine (const CStepMatrixColumn *pPositive, const CStepMatrixColumn *pNegative, const std::vector< CStepMatrixColumn * > NullColumns) |
void | findRemoveInvalidColumns (const std::vector< CStepMatrixColumn * > &nullColumns) |
void | getAllUnsetBitIndexes (const CStepMatrixColumn *pColumn, CVector< size_t > &indexes) const |
void | getUnsetBitIndexes (const CStepMatrixColumn *pColumn, CVector< size_t > &indexes) const |
void | initObjects () |
CMatrix< C_INT64 > | performRankTest (CStepMatrixColumn *pIntersectColumn) |
Friends | |
CEFMMethod * | CEFMMethod::createMethod (CCopasiMethod::SubType subType) |
Definition at line 34 of file CBitPatternMethod.h.
|
protected |
Default constructor
const | CCopasiContainer * pParent (Default: NULL) |
Definition at line 27 of file CBitPatternMethod.cpp.
References initObjects().
|
protected |
Constructor to be called by derived methods
const | CCopasiMethod::SubType subType |
const | CCopasiContainer * pParent (Default: NULL) |
Definition at line 47 of file CBitPatternMethod.cpp.
References initObjects().
CBitPatternMethod::CBitPatternMethod | ( | const CBitPatternMethod & | src, |
const CCopasiContainer * | pParent = NULL |
||
) |
Copy Constructor
const | CBitPatternMethod & src |
Definition at line 68 of file CBitPatternMethod.cpp.
References initObjects().
CBitPatternMethod::~CBitPatternMethod | ( | ) |
Add the flux mode to the list only if the reversed does not exist
const | CFluxMode & mode |
Definition at line 650 of file CBitPatternMethod.cpp.
References CEFMMethod::mpFluxModes.
Referenced by buildFluxModes().
|
private |
Definition at line 955 of file CBitPatternMethod.cpp.
References CStepMatrix::add(), CMatrix< CType >::numCols(), CMatrix< CType >::numRows(), performRankTest(), and CStepMatrixColumn::push_front().
|
private |
Postprocess the step matrix to construct the flux modes.
Definition at line 423 of file CBitPatternMethod.cpp.
References addMode(), CVectorCore< CType >::array(), CMatrix< CType >::array(), CStepMatrix::begin(), C_FLOAT64, C_INT64, CalculateKernel(), CStepMatrix::end(), getUnsetBitIndexes(), mExpandedStoiTranspose, CEFMMethod::mpReorderedReactions, mpStepMatrix, mReactionForward, CMatrix< CType >::numCols(), and CVectorCore< CType >::size().
Referenced by calculate().
Construct the kernel matrix
CMatrix< | C_FLOAT64> & kernel |
Definition at line 343 of file CBitPatternMethod.cpp.
References CMatrix< CType >::array(), CCopasiVector< T >::begin(), C_FLOAT64, C_INT64, CalculateKernel(), CCopasiVector< T >::end(), CModel::getReactions(), CModel::getRedStoi(), mExpandedStoiTranspose, min, mpModel, CEFMMethod::mpReorderedReactions, mReactionForward, mReactionPivot, CMatrix< CType >::numCols(), CMatrix< CType >::numRows(), CMatrix< CType >::resize(), and CMatrix< CType >::size().
Referenced by initialize().
|
virtual |
Execute the optimization algorithm calling simulation routine when needed. It is noted that this procedure can give feedback of its progress by the callback function set with SetCallback. @ return success;
Reimplemented from CEFMMethod.
Definition at line 165 of file CBitPatternMethod.cpp.
References CProcessReport::addItem(), buildFluxModes(), C_INT32, combine(), CStepMatrix::compact(), CStepMatrix::convertRow(), findRemoveInvalidColumns(), CProcessReport::finishItem(), CStepMatrix::getFirstUnconvertedRow(), CStepMatrix::getNumUnconvertedRows(), initialize(), mContinueCombination, mhProgressCounter, mhProgressCounter2, CCopasiMethod::mpCallBack, mProgressCounter, mProgressCounter2, mProgressCounter2Max, mProgressCounterMax, mpStepMatrix, mStep, CProcessReport::progressItem(), CStepMatrix::removeInvalidColumns(), and CStepMatrix::splitColumns().
|
static |
A static method that calculates the kernel of a full column rank matrix. Note, the input matrix is used as work area and will be modified during the calculation.
const | CMatrix< C_INT64 > & matrix |
CMatrix< | C_INT64 > & kernel |
CVector< | size_t > & rowPivot |
Definition at line 668 of file CBitPatternMethod.cpp.
References abs64, CVectorCore< CType >::array(), CMatrix< CType >::array(), C_FLOAT64, C_INT64, GCD(), max, CMatrix< CType >::numCols(), CMatrix< CType >::numRows(), CMatrix< CType >::resize(), CVector< CType >::resize(), and CMatrix< CType >::size().
Referenced by buildFluxModes(), buildKernelMatrix(), and performRankTest().
|
private |
Create all possible linear combinations of the bit pattern nodes pPositive and pNegative and all their child nodes.
const | CBitPatternTreeNode * pPositive |
const | CBitPatternTreeNode * pNegative |
Definition at line 245 of file CBitPatternMethod.cpp.
References CStepMatrix::addColumn(), CZeroSet::getNumberOfSetBits(), CStepMatrixColumn::getZeroSet(), CZeroSet::intersection(), CZeroSet::isExtremeRay(), mContinueCombination, mhProgressCounter2, mMinimumSetSize, mNewColumns, CCopasiMethod::mpCallBack, mProgressCounter2, mpStepMatrix, CMatrix< CType >::numCols(), performRankTest(), CProcessReport::proceed(), CProcessReport::progressItem(), and CStepMatrix::removeColumn().
Referenced by calculate().
|
private |
Remove the invalid columns from the step matrix
const | std::vector< CStepMatrix::iterator > & nullColumns |
Definition at line 318 of file CBitPatternMethod.cpp.
References mNewColumns, mpStepMatrix, and CStepMatrix::removeInvalidColumns().
Referenced by calculate().
Calculate the greatest common divisor (GCD) of 2 positive integers. On return m and n contain the GCD
C_INT64 | & m |
C_INT64 | & n |
Definition at line 57 of file CBitPatternMethod.h.
Referenced by CalculateKernel().
|
private |
Definition at line 619 of file CBitPatternMethod.cpp.
References CVectorCore< CType >::array(), CStepMatrix::getAllUnsetBitIndexes(), mpStepMatrix, mReactionPivot, and CVectorCore< CType >::size().
Referenced by performRankTest().
|
private |
Get the index of the unset bits of the flux mode.
Definition at line 634 of file CBitPatternMethod.cpp.
References CVectorCore< CType >::array(), CStepMatrix::getUnsetBitIndexes(), mpStepMatrix, mReactionPivot, and CVectorCore< CType >::size().
Referenced by buildFluxModes().
|
virtual |
Initialize arrays and pointer.
Reimplemented from CEFMMethod.
Definition at line 98 of file CBitPatternMethod.cpp.
References CProcessReport::addItem(), buildKernelMatrix(), C_INT32, CCopasiProblem::getModel(), CStepMatrix::getNumUnconvertedRows(), CCopasiObject::getObjectParent(), CCopasiTask::getProblem(), CEFMMethod::initialize(), mContinueCombination, mhProgressCounter, mMinimumSetSize, CCopasiMethod::mpCallBack, mpModel, mProgressCounter, mProgressCounterMax, mpStepMatrix, mReactionForward, CMatrix< CType >::numCols(), CMatrix< CType >::numRows(), pdelete, pTask, and CStepMatrixColumn::push_front().
Referenced by calculate().
|
private |
Initialize the needed CCopasiObjects.
Definition at line 93 of file CBitPatternMethod.cpp.
References CCopasiContainer::addObjectReference(), mProgressCounter, and CCopasiObject::ValueInt.
Referenced by CBitPatternMethod().
|
private |
Performs rank test on given intersection.
Definition at line 923 of file CBitPatternMethod.cpp.
References CVectorCore< CType >::array(), CMatrix< CType >::array(), C_INT64, CalculateKernel(), getAllUnsetBitIndexes(), mExpandedStoiTranspose, CMatrix< CType >::numCols(), and CVectorCore< CType >::size().
Referenced by buildFluxModeMatrix(), and combine().
|
friend |
|
protected |
Boolean value indicating whether combination should continue.
Definition at line 257 of file CBitPatternMethod.h.
Referenced by calculate(), combine(), and initialize().
The transpose of the expanded stoichiometry matrix.
Definition at line 232 of file CBitPatternMethod.h.
Referenced by buildFluxModes(), buildKernelMatrix(), and performRankTest().
|
protected |
Handle to the process report item "Current Step"
Definition at line 202 of file CBitPatternMethod.h.
Referenced by calculate(), and initialize().
|
protected |
Handle to the process report item "Combination"
Definition at line 217 of file CBitPatternMethod.h.
Referenced by calculate(), and combine().
|
protected |
The minimum set size use to determine whether a linear combination is allowed.
Definition at line 247 of file CBitPatternMethod.h.
Referenced by combine(), and initialize().
|
protected |
A list of invalid columns currently in the step matrix
Definition at line 242 of file CBitPatternMethod.h.
Referenced by combine(), and findRemoveInvalidColumns().
|
protected |
A pointer to the model which is analyzed.
Definition at line 187 of file CBitPatternMethod.h.
Referenced by buildKernelMatrix(), and initialize().
|
protected |
The current step used for process report.
Definition at line 192 of file CBitPatternMethod.h.
Referenced by calculate(), initialize(), and initObjects().
|
protected |
The current combination used for process report.
Definition at line 207 of file CBitPatternMethod.h.
Referenced by calculate(), and combine().
|
protected |
The max combination used for process report.
Definition at line 212 of file CBitPatternMethod.h.
Referenced by calculate().
|
protected |
The max step used for process report.
Definition at line 197 of file CBitPatternMethod.h.
Referenced by calculate(), and initialize().
|
protected |
A pointer to the step matrix for creating the flux modes
Definition at line 237 of file CBitPatternMethod.h.
Referenced by buildFluxModes(), calculate(), combine(), findRemoveInvalidColumns(), getAllUnsetBitIndexes(), getUnsetBitIndexes(), and initialize().
|
protected |
A vector to recording the expansion of the stoichiometry matrix.
Definition at line 222 of file CBitPatternMethod.h.
Referenced by buildFluxModes(), buildKernelMatrix(), and initialize().
|
protected |
A vector recording the pivots for the QR factorization
Definition at line 227 of file CBitPatternMethod.h.
Referenced by buildKernelMatrix(), getAllUnsetBitIndexes(), and getUnsetBitIndexes().
|
protected |
The currently process step
Definition at line 252 of file CBitPatternMethod.h.
Referenced by calculate().