Team:Tsinghua-A/Modeling/GILLESPIE/part1

From 2012.igem.org

Tsinghua-A::Modeling::GILLESPIE Algorithm

A more accurate model using Gillespie algorithm

To make the model more convincing, we use Gillespie algorithm, which is a kind of stochastic simulation algorithm to generate a statistically correct trajectory (possible solution) of a stochastic equation.


Summary of the steps to run the algorithm

“Step 0 (Initialization). Input the desired values for the M reaction constants c_1,. . ., c_Mand the N initial molecular population numbers X_1,. . ., X_M. Set the time variable t and the reaction counter n both to zero. Initialize the unit-interval uniform random number generator (URN).
Step 1. Calculate and store the M quantities a_1 = h_1 c_1,, . , , a_M = h_M c_M for the current molecular population numbers, where h_v is that function of X_1,. . ., X_M defined in (1). Also calculate and store as a_0 the sum of the M a_v values.
Step 2. Generate two random numbers r1 and r2 using the unit-interval uniform random number generator, and calculateτandμaccording to (2) and (3).
Step 3. Using theτandμvalues obtained in step 2, increase t byτ, and adjust the molecular population levels to reflect the occurrence of one R_μ, reaction; e.g., if R_μ is the reaction in (4), then increase X_1 by 1 and decrease X_2 by 1. Then increase the reaction counter n by 1 and return to step 1. “(Danlel T. Gillespie, 1977, p. 2345)[7]

We define for each reaction R_μ and h_μ according to the equations below.

Schematic of the stochastic simulation al algorithm (Danlel T. Gillespie, 1977)[7]

Simplified summary of the steps to run the algorithm

1. Initialization:
Initialize the number of molecules in the system, reactions constants, and random number generators.
2. Monte Carlo step:
Generate random numbers to determine the next reaction to occur as well as the time interval. The probability of a given reaction to be chosen is proportional to the number of substrate molecules.
3. Update:
Increase the time step by the randomly generated time in Step 2. Update the molecule count based on the reaction that occurred.
4. Iterate:
Go back to Step 2 unless the number of reactants is zero or the simulation time has been exceeded.

Return