Develop Biology
The language of life
|
#include <Pathway.h>
Public Member Functions | |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (chemical, Pathway) BIO_DEFAULT_IDENTIFIABLE_CONSTRUCTORS(chemical | |
& | chemical::ReactionPerspective::Instance () |
filter::Chemical ()) virtual ~Pathway() | |
virtual chemical::Products | Process (chemical::Reactants *reactants) |
virtual bool | ReactantsMeetRequirements (const chemical::Reactants *toCheck) const |
![]() | |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Pathway) Class(Pathway *object | |
![]() | |
Class (T *object, Symmetry *symmetry=NULL) | |
virtual | ~Class () |
virtual Wave * | AsWave () |
virtual const Wave * | AsWave () const |
virtual Wave * | Clone () const |
T * | Convert (Wave *wave) |
virtual | operator T* () |
virtual | operator Wave * () |
![]() | |
Wave (Symmetry *symmetry=NULL) | |
virtual | ~Wave () |
virtual chemical::Atom * | AsAtom () |
virtual const chemical::Atom * | AsAtom () const |
virtual Wave * | AsWave () |
virtual const Wave * | AsWave () const |
virtual Code | Attenuate (const Wave *other) |
virtual Wave * | Clone () const |
virtual Wave * | Demodulate () |
virtual const Wave * | Demodulate () const |
virtual Code | Disattenuate (const Wave *other) |
virtual Properties | GetProperties () const |
virtual Wave * | Modulate (Wave *signal) |
virtual Wave * | operator* () |
virtual const Wave * | operator* () const |
virtual Wave * | operator* (Wave *signal) |
virtual void | operator+ (const Wave *other) |
virtual void | operator- (const Wave *other) |
virtual void | operator| (Symmetry *symmetry) |
virtual Code | Reify (Symmetry *symmetry) |
virtual Symmetry * | Spin () const |
![]() | |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Identifiable< StandardDimension >) explicit Identifiable(Perspective< StandardDimension > *perspective | |
void | CloneIntoName (Name name) |
![]() | |
Observer (const Observer &other) | |
Observer (Perspective *perspective=NULL) | |
virtual | ~Observer () |
virtual Perspective * | GetPerspective () const |
virtual void | SetPerspective (Perspective *perspective) |
![]() | |
Class (Identifiable< StandardDimension > *object, Symmetry *symmetry=NULL) | |
virtual | ~Class () |
virtual Wave * | AsWave () |
virtual const Wave * | AsWave () const |
virtual Wave * | Clone () const |
Identifiable< StandardDimension > * | Convert (Wave *wave) |
virtual | operator Identifiable< StandardDimension > * () |
virtual | operator Wave * () |
![]() | |
Writer (Engine *logEngine, Filter logFilter) | |
virtual | ~Writer () |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Writer) Writer() | |
void | ExternalLog (Filter logFilter, Level level, const char *format,...) const |
Engine * | GetLogEngine () |
const Engine * | GetLogEngine () const |
bool | HasLogEngine () const |
virtual void | SetLogEngine (Engine *logEngine) |
![]() | |
Filterable (Filter filter) | |
virtual | ~Filterable () |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Filterable) Filterable() | |
Filter | GetFilter () const |
virtual void | InitializeImplementation (ByteStreams args) |
virtual Code | Reify (Symmetry *symmetry) |
virtual void | SetFilter (Filter filter) |
virtual Symmetry * | Spin () const |
![]() | |
Class (Filterable *object, Symmetry *symmetry=NULL) | |
virtual | ~Class () |
virtual Wave * | AsWave () |
virtual const Wave * | AsWave () const |
virtual Wave * | Clone () const |
Filterable * | Convert (Wave *wave) |
virtual | operator Filterable * () |
virtual | operator Wave * () |
![]() | |
Class (Writer *object, Symmetry *symmetry=NULL) | |
virtual | ~Class () |
virtual Wave * | AsWave () |
virtual const Wave * | AsWave () const |
virtual Wave * | Clone () const |
Writer * | Convert (Wave *wave) |
virtual | operator Wave * () |
virtual | operator Writer * () |
![]() | |
Atom (const Atom &other) | |
virtual | ~Atom () |
template<typename T > | |
T | As () |
template<typename T > | |
const T | As () const |
template<typename T > | |
T | AsBonded () |
template<typename T > | |
const T | AsBonded () const |
template<typename T > | |
T | AsBondedQuantum () |
template<typename T > | |
const T | AsBondedQuantum () const |
virtual Code | Attenuate (const Wave *other) |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Atom) explicit Atom() | |
template<typename T > | |
bool | BreakBond (T toDisassociate, BondType type=bond_type::Unknown()) |
virtual Code | Disattenuate (const Wave *other) |
template<typename T > | |
bool | FormBond (T toBond, BondType type=bond_type::Unknown()) |
Bonds * | GetAllBonds () |
const Bonds * | GetAllBonds () const |
Wave * | GetBonded (Valence position) |
const Wave * | GetBonded (Valence position) const |
template<typename T > | |
Valence | GetBondPosition () const |
Valence | GetBondPosition (AtomicNumber bondedId) const |
Valence | GetBondPosition (Name typeName) const |
template<typename T > | |
BondType | GetBondType () const |
BondType | GetBondType (Valence position) const |
template<typename T > | |
operator T () | |
virtual Code | Reify (physical::Symmetry *symmetry) |
virtual physical::Symmetry * | Spin () const |
![]() | |
Class (Atom *object, Symmetry *symmetry=NULL) | |
virtual | ~Class () |
virtual Wave * | AsWave () |
virtual const Wave * | AsWave () const |
virtual Wave * | Clone () const |
Atom * | Convert (Wave *wave) |
virtual | operator Atom * () |
virtual | operator Wave * () |
![]() | |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (chemical, Reaction) BIO_DEFAULT_IDENTIFIABLE_CONSTRUCTORS(chemical | |
filter::Chemical () | |
virtual Products | operator() (Reactants *reactants) const |
virtual Products | Process (Reactants *reactants) const |
virtual bool | ReactantsMeetRequirements (const Reactants *toCheck) const |
& | ReactionPerspective::Instance () |
template<typename T > | |
void | Require () |
template<typename T > | |
void | Require (const T *substance) |
template<typename T > | |
void | Require (const typename UnorderedMotif< Property >::Contents *properties, const typename UnorderedMotif< State >::Contents *states) |
void | Require (Name typeName, const Substance *substance) |
void | Require (Name typeName, const typename UnorderedMotif< Property >::Contents *properties, const typename UnorderedMotif< State >::Contents *states) |
virtual void | Require (Reactant *reactant) |
symmetry_type::Operation ()) explicit Reaction(Name name | |
![]() | |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Reaction) Class(Reaction *object | |
![]() | |
Structure () | |
virtual | ~Structure () |
![]() | |
UnorderedStructureInterface () | |
virtual | ~UnorderedStructureInterface () |
template<typename T > | |
T | Add (const T t) |
template<typename T > | |
void | Clear () |
template<typename T > | |
Container * | GetAll () |
template<typename T > | |
const Container * | GetAll () const |
template<typename T > | |
std::vector< T > | GetAllAsVector () |
template<typename T > | |
const std::vector< T > | GetAllAsVector () const |
template<typename T > | |
unsigned long | GetCount () const |
template<typename T > | |
unsigned int | GetNumMatching (const Container *other) const |
template<typename T > | |
std::string | GetStringFrom (std::string separator=", ") |
template<typename T > | |
bool | Has (T content) const |
template<typename T > | |
bool | HasAll (const Container *contents) const |
template<typename T > | |
void | Import (const std::vector< T > &other) |
template<typename T > | |
void | Import (const UnorderedMotif< T > *other) |
Code | ImportAll (const physical::Wave *other) |
template<typename T > | |
T | Remove (const T t) |
![]() | |
ThreadSafe () | |
ThreadSafe (const ThreadSafe &toCopy) | |
virtual | ~ThreadSafe () |
void | LockThread () const |
void | UnlockThread () const |
![]() | |
LinearStructureInterface () | |
virtual | ~LinearStructureInterface () |
template<typename T > | |
Emission | ForEach (ExcitationBase *excitation) |
template<typename T > | |
T | GetById (StandardDimension id) |
template<typename T > | |
const T | GetById (StandardDimension id) const |
template<typename T > | |
T | GetByName (Name name) |
template<typename T > | |
const T | GetByName (Name name) const |
template<typename T > | |
T | GetOrCreateById (StandardDimension id) |
template<typename T > | |
T | GetOrCreateByName (Name name) |
template<typename T > | |
Code | Insert (T toAdd, const Position position=BOTTOM, const StandardDimension optionalPositionArg=0, const bool transferSubContents=false) |
![]() | |
LinearMotif (const Contents *contents, physical::Perspective< StandardDimension > *perspective=NULL) | |
LinearMotif (const LinearMotif< chemical::Reaction * > &toCopy) | |
LinearMotif (physical::Perspective< StandardDimension > *perspective=NULL) | |
virtual | ~LinearMotif () |
virtual chemical::Reaction * | AddImplementation (chemical::Reaction * content) |
virtual Code | Attenuate (const physical::Wave *other) |
BIO_DISAMBIGUATE_REQUIRED_CLASS_METHODS (chemical, LinearMotif< chemical::Reaction * >) BIO_DISAMBIGUATE_OPTIONAL_CLASS_METHODS(physical | |
virtual void | ClearImplementation () |
virtual chemical::Reaction * | CreateImplementation (StandardDimension id) |
virtual Code | Disattenuate (const physical::Wave *other) |
virtual Emission | ForEachImplementation (ExcitationBase *excitation) |
virtual chemical::Reaction * | GetByIdImplementation (StandardDimension id) |
virtual const chemical::Reaction * | GetByIdImplementation (StandardDimension id) const |
virtual chemical::Reaction * | GetByNameImplementation (Name name) |
virtual const chemical::Reaction * | GetByNameImplementation (Name name) const |
virtual chemical::Reaction * | GetOrCreateByIdImplementation (StandardDimension id) |
virtual chemical::Reaction * | GetOrCreateByNameImplementation (Name name) |
virtual std::string | GetStringFromImplementation (std::string separator=", ") |
physical::Perspective< StandardDimension > * | GetStructuralPerspective () |
const physical::Perspective< StandardDimension > * | GetStructuralPerspective () const |
virtual bool | HasImplementation (const chemical::Reaction * &content) const |
virtual void | ImportImplementation (const LinearMotif< chemical::Reaction * > *other) |
virtual Code | InsertImplementation (chemical::Reaction * toAdd, const Position position=BOTTOM, const StandardDimension optionalPositionArg=0, const bool transferSubContents=false) |
![]() | |
Elementary () | |
Elementary (const Properties properties) | |
virtual | ~Elementary () |
void | RegisterProperties (const Properties properties) |
![]() | |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, LinearMotif< chemical::Reaction * >) Class(LinearMotif< chemical::Reaction * > *object | |
![]() | |
UnorderedMotif (const Contents *contents) | |
UnorderedMotif (const UnorderedMotif< chemical::Reaction * > *toCopy) | |
virtual | ~UnorderedMotif () |
virtual chemical::Reaction * | AddImplementation (const chemical::Reaction * content) |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (chemical, UnorderedMotif< chemical::Reaction * >) UnorderedMotif() | |
virtual void | ClearImplementation () |
virtual unsigned long | GetCountImplementation () const |
virtual unsigned int | GetNumMatchingImplementation (const Container *other) const |
virtual std::string | GetStringFromImplementation (std::string separator=", ") |
virtual bool | HasAllImplementation (const Container *contents) const |
virtual bool | HasImplementation (const chemical::Reaction * content) const |
virtual void | ImportImplementation (const UnorderedMotif< chemical::Reaction * > *other) |
virtual chemical::Reaction * | RemoveImplementation (const chemical::Reaction * content) |
![]() | |
BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, UnorderedMotif< chemical::Reaction * >) Class(UnorderedMotif< chemical::Reaction * > *object | |
![]() | |
AbstractMotif () | |
virtual | ~AbstractMotif () |
virtual void | ClearImplementation () |
virtual Container * | GetAllImplementation () |
virtual const Container * | GetAllImplementation () const |
virtual unsigned long | GetCountImplementation () const |
virtual std::string | GetStringFromImplementation (std::string separator=", ") |
virtual void | ImportImplementation (const void *other) |
Additional Inherited Members | |
![]() | |
typedef StandardDimension | Id |
typedef std::vector< Id > | Ids |
![]() | |
typedef Perspective< StandardDimension > | Perspective |
![]() | |
typedef physical::Line | Contents |
![]() | |
typedef physical::Arrangement< chemical::Reaction * > | Contents |
![]() | |
static Properties | GetResonanceBetween (const Wave *wave, const Properties &properties) |
static Properties | GetResonanceBetween (const Wave *wave1, const Wave *wave2) |
static Properties | GetResonanceBetween (ConstWaves waves) |
![]() | |
template<typename T > | |
static Products | Attempt (Reactants *reactants) |
template<typename T > | |
static Products | Attempt (Substance *reactant1, Substance *reactant2=NULL, Substance *reactant3=NULL) |
template<typename T > | |
static Products | Attempt (Substances &substances) |
template<typename T > | |
static const T * | Initiate () |
static const Reaction * | Initiate (StandardDimension id) |
![]() | |
static LinearMotif< chemical::Reaction * > Properties | GetClassProperties () |
![]() | |
static Properties | GetClassProperties () |
![]() | |
static bool | hasRegistered |
![]() | |
virtual void | InitializeImplementation (ByteStreams args) |
![]() | |
VirtualBase () | |
virtual | ~VirtualBase () |
void | Initialize (ByteStream arg1) |
void | Initialize (ByteStream arg1, ByteStream arg2) |
void | Initialize (ByteStream arg1, ByteStream arg2, ByteStream arg3) |
void | Initialize (ByteStreams args) |
virtual void | InitializeImplementation (ByteStreams args)=0 |
![]() | |
virtual void | InitializeImplementation (ByteStreams args) |
void | Log (Level level, const char *format,...) const |
![]() | |
virtual bool | BreakBondImplementation (Wave *toDisassociate, AtomicNumber id, BondType type) |
virtual bool | FormBondImplementation (Wave *toBond, AtomicNumber id, BondType type) |
![]() | |
T * | m_object |
![]() | |
Wave * | m_signal |
Symmetry * | m_symmetry |
![]() | |
bool | m_hasBeenInitialized |
![]() | |
Identifiable< StandardDimension > * | m_object |
![]() | |
Filter | m_filter |
![]() | |
Filterable * | m_object |
![]() | |
Writer * | m_object |
![]() | |
Bonds | m_bonds |
![]() | |
Atom * | m_object |
![]() | |
Reactants | m_requiredReactants |
![]() | |
Container * | m_contents |
A Pathway is a series chemical::Reactions that accomplishes some larger goal. Pathways, are themselves Reactions and can be invoked using the same calls (e.g. chemical::Reaction::Initiate<MyPathway>. NOTE: in real life, pathways often include protein-catalyzed reactions. You can do that here too!
NOTE: while Pathways are Reactions, they should not have any Requirements / Reactants nor should they perform any Process of their own. Instead, they should rely entirely on the Reactions added to them. With the above stated, Pathways can be treated like Reactions for the purpose of being added to other Pathways ;)
Pathways are First-In-First-Out (FIFO) ordered. The first call to Add<Reaction*>() will be the first Reaction run by this and the Reaction that determines the required Reactants to even begin *this Process. The last call to Add<Reaction>() will be the last Reaction called and will determine the ultimate Products returned by *this Process, should it successfully run to completion. i.e. return last(middle(first(reactants)));
TODO: Add switching logic for Products Code.
bio::molecular::Pathway::BIO_DISAMBIGUATE_ALL_CLASS_METHODS | ( | chemical | , |
Pathway | |||
) |
Ensure virtual methods point to Class implementations. Standard ctors.
& bio::molecular::Pathway::chemical::ReactionPerspective::Instance | ( | ) |
bio::molecular::Pathway::filter::Chemical | ( | ) |
|
virtual |
The Process of a Pathway is the series of Reactions it includes. This is FIFO ordering (see class description for details).
reactants |
Definition at line 36 of file Pathway.cpp.
References bio::chemical::Reaction::Reaction, bio::code::BadArgument1(), BIO_SANITIZE, bio::SmartIterator::IsAtEnd(), bio::code::NoErrorNoSuccess(), bio::chemical::Reaction::reactants, and bio::code::Success().
|
virtual |
*this shouldn't have an Requirements / Reactants, so instead we check the first Reaction in *this.
toCheck |
Reimplemented from bio::chemical::Reaction.
Definition at line 62 of file Pathway.cpp.
References BIO_SANITIZE, and ReactantsMeetRequirements().
Referenced by ReactantsMeetRequirements().