BioDynaMo
v1.05.120-25dc9790
|
#include <gene_regulation.h>
Public Member Functions | |
GeneRegulation () | |
virtual | ~GeneRegulation ()=default |
void | Initialize (const NewAgentEvent &event) override |
void | AddGene (const std::function< real_t(real_t, real_t)> &first_derivative, real_t initial_concentration) |
const std::vector< real_t > & | GetValues () const |
void | Run (Agent *agent) override |
Public Member Functions inherited from bdm::Behavior | |
Behavior () | |
virtual | ~Behavior ()=default |
virtual Behavior * | New () const =0 |
Create a new instance of this object using the default constructor. More... | |
virtual Behavior * | NewCopy () const =0 |
Create a new copy of this behavior. More... | |
virtual void | Update (const NewAgentEvent &event) |
void | AlwaysCopyToNew () |
Always copy this behavior to new agents. More... | |
void | NeverCopyToNew () |
Never copy this behavior to new agents. More... | |
void | CopyToNewIf (const std::initializer_list< NewAgentEventUid > &uids) |
void | AlwaysRemoveFromExisting () |
void | NeverRemoveFromExisting () |
void | RemoveFromExistingIf (const std::initializer_list< NewAgentEventUid > &uids) |
bool | WillBeCopied (NewAgentEventUid event) const |
bool | WillBeRemoved (NewAgentEventUid event) const |
void * | operator new (size_t size) |
void | operator delete (void *p) |
Private Member Functions | |
BDM_BEHAVIOR_HEADER (GeneRegulation, Behavior, 1) | |
Private Attributes | |
std::vector< real_t > | concentrations_ = {} |
Store the current concentration for each gene. More... | |
std::vector< std::function< real_t(real_t, real_t)> > | first_derivatives_ = {} |
This behavior simulates expression of genes and contains all required additional variables for tracking of the concentration of proteins. Thus, it can work with any type of agent. It has the implementation of Euler and Runge-Kutta numerical methods for solving ODE. Both methods implemented inside the body of method Run(). The user determines which method is picked in particular simulation through variable Param::numerical_ode_solver
.
Definition at line 36 of file gene_regulation.h.
|
inline |
Definition at line 40 of file gene_regulation.h.
|
virtualdefault |
|
inline |
AddGene adds a new differential equation.
first_derivative | differential equation in the form: slope = f(time, last_concentration) – e.g.: [](real_t time, real_t last_concentration) { return 1 - time * last_concentration; } |
initial_concentration |
Definition at line 66 of file gene_regulation.h.
|
private |
|
inline |
Definition at line 72 of file gene_regulation.h.
|
inlineoverridevirtual |
This method is called to initialize new behaviors that are created during a NewAgentEvent. Override this method to initialize attributes of your own Behavior subclasses. NB: Don't forget to call the implementation of the base class first. Base::Initialize(event);
Failing to do so will result in errors.
Reimplemented from bdm::Behavior.
Definition at line 44 of file gene_regulation.h.
|
inlineoverridevirtual |
Method Run() contains the implementation for Runge-Khutta and Euler methods for solving ODE.
Implements bdm::Behavior.
Definition at line 76 of file gene_regulation.h.
|
private |
Store the current concentration for each gene.
Definition at line 112 of file gene_regulation.h.
|
private |
Store the gene differential equations, which define how the concentration change. New functions can be added through method AddGene()
Definition at line 117 of file gene_regulation.h.