EcoliSimulator  2.0.1a
Molecular_rExp_tExp Class Reference

Celani Shimitzu Vergassola Molecular Model Class for a bacterium. More...

#include <Molecular_rExp_tExp.h>

Inheritance diagram for Molecular_rExp_tExp:
ParameterEstimation_E_coli E_coli Molecular_rIG_tExp Molecular_rExpIG_tExp

Public Member Functions

 Molecular_rExp_tExp ()
 
 Molecular_rExp_tExp (const Molecular_rExp_tExp &modello)
 
void stationary_dyn (double dt, std::vector< double > &m0, int changed_pos)
 
void change_par (int change)
 
void change_molecular ()
 
int agg_dyn (double dt, double t)
 
void agg_dyint (double dt, double t)
 
void save_dyn (std::ofstream &file_, double t)
 
void gnuplot_single (string *names_files_Ecoli_mod, string &names_indice_mod, string *names_files_tau_mod, string &names_file_dyn_mod, string *names_info_mod, double T_f, Funz_C *f, int save_, int con_gen_sim)
 
void print_info (std::ofstream &file_save)
 
void reset_par ()
 
- Public Member Functions inherited from ParameterEstimation_E_coli
 ParameterEstimation_E_coli ()
 
 ParameterEstimation_E_coli (const E_coli &modello)
 
void s_F_lambda_r (vector< Q_tau_stat > vector_lambda, int n_vect)
 
void set_GoodnessFit (int Good, double D_n, double cumD_n)
 
- Public Member Functions inherited from E_coli
 E_coli ()
 
 E_coli (const E_coli &modello)
 
int initial_position_ec (int j, std::array< double, 2 > x0, double Raggio, int num_dist, int &cont_dist_5, int delta_dist_cont, double Delta_delta_dist)
 
int dist_iniz_ec (std::array< double, 2 > x0, double R, unsigned int num_dist)
 
std::array< double, 2 > X ()
 
double V ()
 
int N_dyn_var ()
 
double C ()
 
double C_iniziale ()
 
double Production_rate ()
 
void setProductionRate (double _prodRate)
 
void Tau_t (double tt_)
 
void Get_tipo_response_c (int T_r)
 
void Get_RC_0 (double Rc0)
 
void Get_RC_1 (double Rc1)
 
void Get_RC_q (int Rcq)
 
int F_tipo_response_c ()
 
double F_RC_0 ()
 
double F_RC_1 ()
 
double F_RC_q ()
 
void set_response (int ftipo_response_c, double fRC_0, double fRC_1, int fRC_q)
 
void agg_ligand (double t, Funz_C *f)
 
void aggiornamento (double dt, double t, Funz_C *f, int &sign_p, ofstream *file_tau, std::ofstream &file_theta)
 
void start_simulation (Funz_C *f)
 
void response_function ()
 
void save_E_coli (ofstream *file, double t)
 
void save_E_coli_initial (std::ofstream *file_, double t)
 
void save_run (double t, ofstream &file_salto, double dt)
 
void save_tumble (double t, ofstream &file_tumble, double dt)
 
void save_theta (double t, double theta, std::ofstream &file_run)
 
virtual int saveIntDyn (std::string nameFile)
 
virtual void produce (Funz_C *f_i, double dt)
 
virtual double reset_barrier ()
 
virtual double reset_barrier_t ()
 
virtual void save_dyn (ofstream &file, double t)
 
virtual void gnuplot_single (std::string *names_files_Ecoli_mod, std::string &names_indice_mod, std::string *names_files_tau_mod, std::string &names_file_dyn_mod, std::string *names_info_mod, double T_f, Funz_C *f, int save_, int con_gen_sim)
 
virtual void gnuplot_single_film (std::string *names_files_Ecoli_mod, std::string &names_indice_mod, std::string *names_files_tau_mod, std::string &names_file_dyn_mod, std::string *names_info_mod, double T_f, Funz_C *f, int cont_sim)
 
virtual void gnuplot_single_film_gif (std::string *names_files_Ecoli_mod, std::string &names_indice_mod, std::string *names_files_tau_mod, std::string &names_file_dyn_mod, std::string *names_info_mod, double T_f, Funz_C *f, int cont_sim)
 produce the .gif film More...
 
virtual void gnuplotFunzInternalDynalmic (std::string buffer, int save_, int con_gen_sim)
 
virtual void gnuplot_response (std::string names_info_mod, int save_, int con_gen_sim)
 
virtual void s_F_lambda_r (std::vector< Q_tau_stat > vector_lambda, int n_vect)
 
void statF_lambda_r (s_lambda &vector_lambda)
 
virtual void debugFunction ()
 

Protected Member Functions

int writeScriptgnuplotSingle (string tipo, string *names_files_Ecoli_mod, string *names_files_tau_mod, string *names_info_mod, string &names_file_dyn_mod, double T_f, int con_gen_sim, int save_)
 
- Protected Member Functions inherited from E_coli
void setSeed_ec (unsigned int *seed_thread)
 
virtual int writeScriptgnuplotSingle (std::string tipo, std::string *names_files_Ecoli_mod, std::string *names_files_tau_mod, std::string *names_info_mod, std::string &names_file_dyn_mod, double T_f, int con_gen_sim, int save_)
 
virtual int writeScriptLunchgnuplotSingle (std::string tipo, int save_, int con_gen_sim)
 
double Exp_dist_ec ()
 
double rand_normal_ec (double stddev)
 
double gamma_par_double_ec ()
 
double unifRand_ec ()
 
double deltaW_ec (double dt)
 
double newtheta_ec (double theta)
 
void setEngine_ec (std::mt19937_64 *engine_thread_theta, std::mt19937_64 *engine_thread_bar, std::mt19937_64 *engine_thread_altro)
 

Protected Attributes

double a_m
 
double m_0
 
double K_off
 
double K_on
 
double n_a
 
double M_max
 
double A_max
 
double L_max
 
double y_max
 
double K_R
 
double K_B
 
double kCheR
 
double kCheB
 
double y_0
 
double k_a
 
double k_z
 
double H
 
double meth
 
double a
 
double y
 
double p_r
 
double factor_prob
 
- Protected Attributes inherited from ParameterEstimation_E_coli
double s_lambda_t
 
int GoodFit
 
double KS_D_n
 
double KS_L1
 
string distribution_I_r
 
double I_tau_r [2]
 
string distribution_I_t
 
double I_tau_t [2]
 
- Protected Attributes inherited from E_coli
double production_rate
 
double v
 
std::array< double, 2 > x
 
double theta
 
double c
 
double D_theta
 
double lambda_r
 
double lambda_t
 
double tau_r
 
double tau_t
 
int n_dyn_var
 
double barriera_r
 
double barriera_t
 
int salto_
 
double t_t
 
double t_r
 
int sign_c
 
int up_down
 
double c_iniziale
 
int tipo_response_c
 
double RC_0
 
double RC_1
 
int RC_q
 
int tipoNewTheta
 
unsigned int * seed_ecoli
 pointer to a seed More...
 

Friends

double F_CSV (Molecular_rExp_tExp *batterio, double m_s, double L_use)
 

Additional Inherited Members

- Public Attributes inherited from E_coli
std::mt19937_64 * engine_theta
 pointer to a engine (if I want to use std::uniform_real_distribution<double>) More...
 
std::mt19937_64 * engine_barrier
 
std::mt19937_64 * engine_altro
 
int simulation
 
std::string Tipo_batterio
 
int codice_batterio
 
s_lambda s_lambda_r
 

Detailed Description

Celani Shimitzu Vergassola Molecular Model Class for a bacterium.

Class implementing Celani Shimitzu Vergassola Molecular model

This model is taken from CSV11 [A. Celani, T.S. Shimizu and M. Vergassola, Molecular and functional aspects of bacterial chemotaxis, J. Stat. Phys. 144, 219-240 (2011).], and implement the mean field approximation for the molecular-base model of the internal dynamic of the bacterium. The generalization to the Inverse gaussian and exponential-inverse gaussian is straightforward.

The chemotactic transduction pathway is conveniently modeled by the following set of mean-field equations:

\begin{align} a&=G(m,L),\\ \frac{d}{dt}m&=F(a,m),\\ \frac{d}{dt}y&=k_a a(1-y)-k_zy,\\ \frac{d}{dt}p_r&=\frac{1-\frac{p_r}{h(y)}}{\tau_t}. \end{align}

The detailed expressions for the functions that appear above are

\begin{align*} G(m,L)&=\frac{1}{1+e^{f(m,L)}},\\ f(m,L)&=n_a\alpha_m(m_0-m)+n_a\ln\frac{1+\frac{L}{K_{off}}}{1+\frac{L}{K_{on}}},\\ F(a,m)&=k_r[\textrm{CheR}](1-a)\frac{M-a}{M-m+K_R}-k_b[\textrm{CheB}]a\frac{m}{m+K_B};\\ h(y)&=\frac{1}{1+\Big(\frac{y}{y_0}\Big)^H}. \end{align*}

Constructor & Destructor Documentation

Molecular_rExp_tExp::Molecular_rExp_tExp ( )
Molecular_rExp_tExp::Molecular_rExp_tExp ( const Molecular_rExp_tExp modello)

Member Function Documentation

void Molecular_rExp_tExp::agg_dyint ( double  dt,
double  t 
)
virtual

update internal dynamic

Reimplemented from E_coli.

int Molecular_rExp_tExp::agg_dyn ( double  dt,
double  t 
)
virtual

update dynamic to control run/tumble
It controll the hitting time $\tau_{n+1}$ of the inernal variable lambda_[...] Heuristically we have:

  • if the distribution is exponential we have
    • $\int_{\tau_{n}}^{\tau_{n+1}}\Lambda^*(s)ds\sim Exp(1)$
  • if the distribution is IG we have
    • $\tau_{n+1}=\inf\{s>\tau_n:\Lambda(s)ds\geq const\}$
  • if the distribution is Exp_IG we have
    • $\tau_{n+1}=\inf\{s>\tau_n:\Lambda(s)ds\geq Exp(1)\}$

Where in general we can write: $d\Lambda(s)=\lambda(s)dt+\sigma(s)dW(t)$.
note $\sigma(s)=0$ in the first case above.

Reimplemented from E_coli.

Reimplemented in Molecular_rIG_tExp.

void Molecular_rExp_tExp::change_molecular ( )
void Molecular_rExp_tExp::change_par ( int  change)
virtual

set parameters model

Reimplemented from E_coli.

Reimplemented in Molecular_rIG_tExp.

void Molecular_rExp_tExp::gnuplot_single ( string *  names_files_Ecoli_mod,
string &  names_indice_mod,
string *  names_files_tau_mod,
string &  names_file_dyn_mod,
string *  names_info_mod,
double  T_f,
Funz_C f,
int  save_,
int  con_gen_sim 
)
void Molecular_rExp_tExp::print_info ( std::ofstream &  file_save)
virtual

print info for LateX report

Reimplemented from E_coli.

void Molecular_rExp_tExp::reset_par ( )
virtual

reset defolt parametes model

Reimplemented from E_coli.

Reimplemented in Molecular_rExpIG_tExp, and Molecular_rIG_tExp.

void Molecular_rExp_tExp::save_dyn ( std::ofstream &  file_,
double  t 
)
void Molecular_rExp_tExp::stationary_dyn ( double  dt,
std::vector< double > &  m0,
int  changed_pos 
)
virtual

calculate stationary dynamics for the initial condition

Parameters
m0are the initial condition for the internal variables: if changed_pos says that the initial condition are not changed, for example if the initial distribution for the population is a delta dirac, then we just use the old values, and do not recalculate them

Reimplemented from E_coli.

int Molecular_rExp_tExp::writeScriptgnuplotSingle ( string  tipo,
string *  names_files_Ecoli_mod,
string *  names_files_tau_mod,
string *  names_info_mod,
string &  names_file_dyn_mod,
double  T_f,
int  con_gen_sim,
int  save_ 
)
protected

Friends And Related Function Documentation

double F_CSV ( Molecular_rExp_tExp batterio,
double  m_s,
double  L_use 
)
friend

Function to calculate stationary state in CV model see paper [Celani Schimizu Vergassola] E_coli "something" 2011

Member Data Documentation

double Molecular_rExp_tExp::a
protected

Internal variable: see model in detailed description

double Molecular_rExp_tExp::a_m
protected

see model in detailed description

double Molecular_rExp_tExp::A_max
protected

see model in detailed description

double Molecular_rExp_tExp::factor_prob
protected

factor to adjust initial value for probability rate, it's make stable the process, it's like play with y_0

double Molecular_rExp_tExp::H
protected

see model in detailed description

double Molecular_rExp_tExp::k_a
protected

see model in detailed description

double Molecular_rExp_tExp::K_B
protected

see model in detailed description

double Molecular_rExp_tExp::K_off
protected

see model in detailed description

double Molecular_rExp_tExp::K_on
protected

see model in detailed description

double Molecular_rExp_tExp::K_R
protected

see model in detailed description

double Molecular_rExp_tExp::k_z
protected

see model in detailed description

double Molecular_rExp_tExp::kCheB
protected

see model in detailed description

double Molecular_rExp_tExp::kCheR
protected

see model in detailed description

double Molecular_rExp_tExp::L_max
protected

see model in detailed description

double Molecular_rExp_tExp::m_0
protected

see model in detailed description

double Molecular_rExp_tExp::M_max
protected

see model in detailed description

double Molecular_rExp_tExp::meth
protected

Internal variable methalination level: see model in detailed description

double Molecular_rExp_tExp::n_a
protected

see model in detailed description

double Molecular_rExp_tExp::p_r
protected

Internal variable: see model in detailed description

double Molecular_rExp_tExp::y
protected

Internal variable: see model in detailed description

double Molecular_rExp_tExp::y_0
protected

see model in detailed description

double Molecular_rExp_tExp::y_max
protected

see model in detailed description


The documentation for this class was generated from the following files: