Team:ZJU-China/Modeling

From 2010.igem.org

(Difference between revisions)
Line 8: Line 8:
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The process of translation can be divided into three main stages: <em>initiation</em>, <em>elongation</em> and <em>termination</em>. Our model mainly focuses on the description of the elongation process. In fact, during the elongation phase, ribosome moves along mRNA, and simultaneously adding amino acids to the chain of protein being synthesized.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The process of translation can be divided into three main stages: <em>initiation</em>, <em>elongation</em> and <em>termination</em>. Our model mainly focuses on the description of the elongation process. In fact, during the elongation phase, ribosome moves along mRNA, and simultaneously adding amino acids to the chain of protein being synthesized.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;In our modeling, the mRNA is viewed as a one-dimensional lattice and each codon is considered as a grid in the lattice, while a ribosome can be either viewed as an 'extended solid particle' with length <em>l</em>, i.e. it covers <em>l</em> sites in the strand of mRNA, or as a machine with intrinsic structure, which will be talked about later.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;In our modeling, the mRNA is viewed as a one-dimensional lattice and each codon is considered as a grid in the lattice, while a ribosome can be either viewed as an 'extended solid particle' with length <em>l</em>, i.e. it covers <em>l</em> sites in the strand of mRNA, or as a machine with intrinsic structure, which will be talked about later.</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The classical model views each ribosome as an extended solid particle with length 1, and 12 is a frequently used value for <em>l</em> owing to observations from experiments. The position of a ribosome is represented by the index of the site covered by the left edge of the ribosome. When the ribosome rests at site <em>i</em>, it waits until an aa-bounded tRNA bounds with the <em>i+1</em>-th site of mRNA. Therefore, each site <em>i</em> is endowed with a probability <em>p<sub>a</sub>(i)</em> such that in the time interval <em>&Delta;t</em>, the probability of a <em>correct</em> aa-tRNA bounds to the <em>i+1</em>-th site is <em>p<sub>a</sub>(i)</em>. The probability per second <em>&omega;<sub>a</sub>(i)</em> is useful in the numerical computations. It is defined as <img>que</img> . Thus the probabilities of hopping of a ribosome from <em>i</em>-th site to the next site is <em>p<sub>a</sub>(i)</em>. An additional hypothesis is that the inter-ribosome interactions are neglected, except requiring that two different ribosomes cannot overlap. This makes the model easy to simulate. The system can be viewed as a TASEP(totally asymmetric exclusion process).</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The classical model views each ribosome as an extended solid particle with length 1, and 12 is a frequently used value for <em>l</em> owing to observations from experiments. The position of a ribosome is represented by the index of the site covered by the left edge of the ribosome. When the ribosome rests at site <em>i</em>, it waits until an aa-bounded tRNA bounds with the <em>i+1</em>-th site of mRNA. Therefore, each site <em>i</em> is endowed with a probability <em>p<sub>a</sub>(i)</em> such that in the time interval <em>&Delta;t</em>, the probability of a <em>correct</em> aa-tRNA bounds to the <em>i+1</em>-th site is <em>p<sub>a</sub>(i)</em>. The probability per second <em>&omega;<sub>a</sub>(i)</em> is useful in the numerical computations. It is defined as <img src="https://static.igem.org/mediawiki/2009/b/b5/Zjuformula1.jpg"></img> . Thus the probabilities of hopping of a ribosome from <em>i</em>-th site to the next site is <em>p<sub>a</sub>(i)</em>. An additional hypothesis is that the inter-ribosome interactions are neglected, except requiring that two different ribosomes cannot overlap. This makes the model easy to simulate. The system can be viewed as a TASEP(totally asymmetric exclusion process).</p>
     </p>     
     </p>     
      
      
     <h3>Model Description: Mechano-Chemistry Details of Ribosome</h3>
     <h3>Model Description: Mechano-Chemistry Details of Ribosome</h3>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;However, some mechano-chemistry details for the motion of ribosomes on the mRNA strand should be taken into account.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;However, some mechano-chemistry details for the motion of ribosomes on the mRNA strand should be taken into account.</p>
-
    <img></img>
+
</html>
-
     <img></img>
+
 
-
     <img></img>
+
     [[Image:rstep1.jpg|thumb|600px|The motion of ribosomes: Step 1]]
 +
     [[Image:rstep2.jpg|thumb|600px|The motion of ribosomes: Step 2]]
 +
    [[Image:rstep3.jpg|thumb|600px|The motion of ribosomes: Step 3]]
 +
   
 +
<html>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We use the letters E, P and A to denote three binding sites on the ribosome. They look like sockets where the aa-tRNA's inserts into to bind with certain codons on mRNA. They can shift back and forth on mRNA and bring about the movement of ribosomes on the mRNA strand. In the figure, the states of E, P, A sites is presented by a number 0 or 1, representing the absence or presence of tRNA. 1<sup>*</sup> is a EF-Tu bound tRNA and G is a EF-G GTPase.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We use the letters E, P and A to denote three binding sites on the ribosome. They look like sockets where the aa-tRNA's inserts into to bind with certain codons on mRNA. They can shift back and forth on mRNA and bring about the movement of ribosomes on the mRNA strand. In the figure, the states of E, P, A sites is presented by a number 0 or 1, representing the absence or presence of tRNA. 1<sup>*</sup> is a EF-Tu bound tRNA and G is a EF-G GTPase.</p>
<p>This gives an explicit description for these processes.</p>
<p>This gives an explicit description for these processes.</p>
-
<img></img>
+
</html>
 +
 
 +
    [[Image:Transition Process.jpg|thumb|600px|Transition Process]]
 +
<html>
     <li><b>Transition 1&rArr;2:</b> Binding of a fresh tRNA-EF-Tu complex to site A;</li>
     <li><b>Transition 1&rArr;2:</b> Binding of a fresh tRNA-EF-Tu complex to site A;</li>
     <li><b>Transition 2&rArr;3:</b> GTP part of EF-Tu hydrolized to GDP;</li>
     <li><b>Transition 2&rArr;3:</b> GTP part of EF-Tu hydrolized to GDP;</li>
Line 29: Line 36:
     <h3>How to Interpret the Parameters?</h3>
     <h3>How to Interpret the Parameters?</h3>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We consider the system as a stochastic process, and the probability of a ribosome to change its state is described by the rate constants &omega;. Now we interpret these parameters:</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We consider the system as a stochastic process, and the probability of a ribosome to change its state is described by the rate constants &omega;. Now we interpret these parameters:</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;For the simplest chemical reaction <img></img> with reaction rate <em>k</em>, by law of mass actions, we see that:</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;For the simplest chemical reaction <img src="https://static.igem.org/mediawiki/2009/3/39/Zjuformula2.jpg"></img> with reaction rate <em>k</em>, by law of mass actions, we see that:</p>
-
     <img></img>
+
     <img src="https://static.igem.org/mediawiki/2009/a/a3/Zjuformula3.jpg"></img>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Therefore, in time interval <em>&Delta;t</em>, the probability of <em>A</em> to transform into <em>B</em> should be:</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Therefore, in time interval <em>&Delta;t</em>, the probability of <em>A</em> to transform into <em>B</em> should be:</p>
-
     <img></img>
+
     <img src="https://static.igem.org/mediawiki/2009/7/77/Zjuformula4.jpg"></img>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Hence, if we set <img></img> can be interpreted as the probability "per <em>&Delta;t</em>" for the reaction to occur on <em>A</em>. While the actual probability should be <img></img> or with more accuracy, <img></img>.</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Hence, if we set <em>&omega; = k</em>, <em>&omega;</em> can be interpreted as the probability "per <em>&Delta;t</em>" for the reaction to occur on <em>A</em>. While the actual probability should be <em>p = &omega;&Delta;t</em> or with more accuracy, <img src="https://static.igem.org/mediawiki/2009/d/d9/Zjuformula5.jpg"></img>.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The rate constants can be obtained from experiments for <em>E-coli</em> as:</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The rate constants can be obtained from experiments for <em>E-coli</em> as:</p>
-
     <img></img>
+
     <img src="https://static.igem.org/mediawiki/2009/8/88/Ecoli.jpg"></img>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Moreover, the initiation and termination process are described by two parameters &alpha; and &beta;, denoting the reaction rate of a fresh ribosome binds to the first <em>l</em> sites of mRNA and the probability of a ribosome at the rear of the mRNA strand to get detached from the mRNA strand in the time interval <em>&Delta;t</em>.
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Moreover, the initiation and termination process are described by two parameters &alpha; and &beta;, denoting the reaction rate of a fresh ribosome binds to the first <em>l</em> sites of mRNA and the probability of a ribosome at the rear of the mRNA strand to get detached from the mRNA strand in the time interval <em>&Delta;t</em>.
     <br style="clear: both" />
     <br style="clear: both" />
      
      
     <h2>Theoretical Analysis of the Model</h2>
     <h2>Theoretical Analysis of the Model</h2>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We first specify some assumptions and notations. <em>P<sub>&mu;</sub>(i)</em> with <em>&mu;</em> denotes the probability of finding a ribosome in state <em>&mu;</em> which is 'working' on site <em>i</em> and is assumed to be the site which is covered by the leftmost site of the ribosome. <img></img> is the probability of finding a ribosome at <em>i</em>. The ribosome can shift forward only if the sites with index from <em>i+1</em> to <em>i+1</em> are all empty. Assume that the probabilities of finding a ribosome at any sites are independent. Then the probability <em>Q(i)</em> for the required sites are empty is <img></img>.</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We first specify some assumptions and notations. <em>P<sub>&mu;</sub>(i)</em> with <em>&mu;</em> denotes the probability of finding a ribosome in state <em>&mu;</em> which is 'working' on site <em>i</em> and is assumed to be the site which is covered by the leftmost site of the ribosome. <img src="https://static.igem.org/mediawiki/2009/0/0c/Zjuformula6.jpg"></img> is the probability of finding a ribosome at <em>i</em>. The ribosome can shift forward only if the sites with index from <em>i+1</em> to <em>i+<b>l</b></em> are all empty. Assume that the probabilities of finding a ribosome at any sites are independent. Then the probability <em>Q(i)</em> for the required sites are empty is <img src="https://static.igem.org/mediawiki/2009/c/ca/Zjuformula7.jpg"></img>.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Thus the differential equations are:</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Thus the differential equations are:</p>
-
     <img></img>
+
     <img src="https://static.igem.org/mediawiki/2009/f/f3/Zjuformula8.jpg"></img>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Use Runge-Kutta method to get the solution. Here we assume that, if there were no detachments, the ribosomes are completely recycled.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Use Runge-Kutta method to get the solution. Here we assume that, if there were no detachments, the ribosomes are completely recycled.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;However, this will not be used in our programming.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;However, this will not be used in our programming.</p>
Line 49: Line 56:
     <h1><b>Monte Carlo Methods</b></h1>
     <h1><b>Monte Carlo Methods</b></h1>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We use Monte Carlo method in our programming for convenience. Here is the specification of the algorithm:</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;We use Monte Carlo method in our programming for convenience. Here is the specification of the algorithm:</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Note that Each Monte Carlo Step(MCS) represents a time interval <img></img> in our simulation.</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;Note that Each Monte Carlo Step(MCS) represents a time interval &Delta;t = 0.001s in our simulation.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The mRNA strand of <em>N</em> codons is implemented by an array <em>mRNA</em> of length N, which takes value from 0 to 5 in each entry. 1 to 5 represents the state of ribosome on the certain position, while 0 represents the site is empty, or is not occupied by a "working" ribosome.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;The mRNA strand of <em>N</em> codons is implemented by an array <em>mRNA</em> of length N, which takes value from 0 to 5 in each entry. 1 to 5 represents the state of ribosome on the certain position, while 0 represents the site is empty, or is not occupied by a "working" ribosome.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;1. Set the initial condition: all the sites on the mRNA strand is empty except the site in the first entry.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;1. Set the initial condition: all the sites on the mRNA strand is empty except the site in the first entry.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;2. Begin a new MCS:</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;2. Begin a new MCS:</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a) Select an entry with value 1 (ribosome in state 1), generate a random number. If the random number is less than <img></img>, then change the value to 2, otherwise proceed;</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a) Select an entry with value 1 (ribosome in state 1), generate a random number. If the random number is less than <img src="https://static.igem.org/mediawiki/2009/2/2d/Zjuformula9.jpg"></img>, then change the value to 2, otherwise proceed;</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b) Select an entry with value 2 (ribosome in state 2), generate a random number. If the random number is less than <img></img>, then change the value to 1, otherwise proceed;</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b) Select an entry with value 2 (ribosome in state 2), generate a random number. If the random number is less than <img src="https://static.igem.org/mediawiki/2009/8/89/Zjuformula10.jpg"></img>, then change the value to 1, otherwise proceed;</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c) Select an entry with value 2 (ribosome in state 2), generate a random number. If the random number is less than <img></img>, then change the value to 3, otherwise proceed;</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c) Select an entry with value 2 (ribosome in state 2), generate a random number. If the random number is less than <img src="https://static.igem.org/mediawiki/2009/b/bb/Zjuformula11.jpg"></img>, then change the value to 3, otherwise proceed;</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d) Select an entry with value 3 (ribosome in state 3), generate a random number. If the random number is less than <img></img>, then change the value to 4, otherwise proceed;</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d) Select an entry with value 3 (ribosome in state 3), generate a random number. If the random number is less than <img src="https://static.igem.org/mediawiki/2009/8/81/Zjuformula12.jpg"></img>, then change the value to 4, otherwise proceed;</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e) Select an entry with value 4 (ribosome in state 4), generate a random number. If the random number is less than <img></img>, then change the value to 5, otherwise proceed;</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e) Select an entry with value 4 (ribosome in state 4), generate a random number. If the random number is less than <img src="https://static.igem.org/mediawiki/2009/d/dd/Zjuformula13.jpg"></img>, then change the value to 5, otherwise proceed;</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f) Select an entry with value 5 (ribosome in state 5), generate a random number. If the random number is less than <img></img>, and that assume the index of the selected entry is i, if entries with index from i+1 to i+l are all of value 0, then change mRNA[i] to 0 and mRNA[i+1] to 1;
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f) Select an entry with value 5 (ribosome in state 5), generate a random number. If the random number is less than <img src="https://static.igem.org/mediawiki/2009/1/1b/Zjuformula14.jpg"></img>, and that assume the index of the selected entry is i, if entries with index from i+1 to i+l are all of value 0, then change mRNA[i] to 0 and mRNA[i+1] to 1;
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g) Look at the last entry, assume it has index N (when use MATLAB to program) or index N-1 (when use C++ to program), generate a random number. If the value of the last entry is 5 and the random number is less than <img></img>, then change the last entry to 0.</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g) Look at the last entry, assume it has index N (when use MATLAB to program) or index N-1 (when use C++ to program), generate a random number. If the value of the last entry is 5 and the random number is less than <img src="https://static.igem.org/mediawiki/2009/4/4b/Zjuformula15.jpg"></img>, then change the last entry to 0.</p>
-
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h) Look at the first a few entries. If the first l entries are 0, then generate a random number. If the random number is less than <img></img>, then change the first entry to 1.</p>
+
     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h) Look at the first a few entries. If the first l entries are 0, then generate a random number. If the random number is less than <img src="https://static.igem.org/mediawiki/2009/4/4b/Zjuformula16.jpg"></img>, then change the first entry to 1.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;3. Iterate Step 2, until maximal number of Monte Carlo Steps are reached.</p>
     <p>&nbsp;&nbsp;&nbsp;&nbsp;3. Iterate Step 2, until maximal number of Monte Carlo Steps are reached.</p>
<br style="clear: both" />
<br style="clear: both" />

Revision as of 14:38, 27 October 2010

On A Dynamic Model for Protein Synthesis

Introduction

Model Description:Classical TASEP Model

    The process of translation can be divided into three main stages: initiation, elongation and termination. Our model mainly focuses on the description of the elongation process. In fact, during the elongation phase, ribosome moves along mRNA, and simultaneously adding amino acids to the chain of protein being synthesized.

    In our modeling, the mRNA is viewed as a one-dimensional lattice and each codon is considered as a grid in the lattice, while a ribosome can be either viewed as an 'extended solid particle' with length l, i.e. it covers l sites in the strand of mRNA, or as a machine with intrinsic structure, which will be talked about later.

    The classical model views each ribosome as an extended solid particle with length 1, and 12 is a frequently used value for l owing to observations from experiments. The position of a ribosome is represented by the index of the site covered by the left edge of the ribosome. When the ribosome rests at site i, it waits until an aa-bounded tRNA bounds with the i+1-th site of mRNA. Therefore, each site i is endowed with a probability pa(i) such that in the time interval Δt, the probability of a correct aa-tRNA bounds to the i+1-th site is pa(i). The probability per second ωa(i) is useful in the numerical computations. It is defined as . Thus the probabilities of hopping of a ribosome from i-th site to the next site is pa(i). An additional hypothesis is that the inter-ribosome interactions are neglected, except requiring that two different ribosomes cannot overlap. This makes the model easy to simulate. The system can be viewed as a TASEP(totally asymmetric exclusion process).

Model Description: Mechano-Chemistry Details of Ribosome

    However, some mechano-chemistry details for the motion of ribosomes on the mRNA strand should be taken into account.

The motion of ribosomes: Step 1
The motion of ribosomes: Step 2
The motion of ribosomes: Step 3

    We use the letters E, P and A to denote three binding sites on the ribosome. They look like sockets where the aa-tRNA's inserts into to bind with certain codons on mRNA. They can shift back and forth on mRNA and bring about the movement of ribosomes on the mRNA strand. In the figure, the states of E, P, A sites is presented by a number 0 or 1, representing the absence or presence of tRNA. 1* is a EF-Tu bound tRNA and G is a EF-G GTPase.

This gives an explicit description for these processes.

Transition Process

  • Transition 1⇒2: Binding of a fresh tRNA-EF-Tu complex to site A;
  • Transition 2⇒3: GTP part of EF-Tu hydrolized to GDP;
  • Transition 3⇒4: Phosphate group, a product of the hydrolysis, leaves, and releases the EF-Tu;
  • Transition 4⇒5: Shift of tRNA, and site A occupied by EF-G in the GTP bound form;
  • Transition 5⇒6: Hydrolysis of GTP to GDP and release;
  • Transition 6⇒7⇒1: Shift of ribosome.

    How to Interpret the Parameters?

        We consider the system as a stochastic process, and the probability of a ribosome to change its state is described by the rate constants ω. Now we interpret these parameters:

        For the simplest chemical reaction with reaction rate k, by law of mass actions, we see that:

        Therefore, in time interval Δt, the probability of A to transform into B should be:

        Hence, if we set ω = k, ω can be interpreted as the probability "per Δt" for the reaction to occur on A. While the actual probability should be p = ωΔt or with more accuracy, .

        The rate constants can be obtained from experiments for E-coli as:

        Moreover, the initiation and termination process are described by two parameters α and β, denoting the reaction rate of a fresh ribosome binds to the first l sites of mRNA and the probability of a ribosome at the rear of the mRNA strand to get detached from the mRNA strand in the time interval Δt.

    Theoretical Analysis of the Model

        We first specify some assumptions and notations. Pμ(i) with μ denotes the probability of finding a ribosome in state μ which is 'working' on site i and is assumed to be the site which is covered by the leftmost site of the ribosome. is the probability of finding a ribosome at i. The ribosome can shift forward only if the sites with index from i+1 to i+l are all empty. Assume that the probabilities of finding a ribosome at any sites are independent. Then the probability Q(i) for the required sites are empty is .

        Thus the differential equations are:

        Use Runge-Kutta method to get the solution. Here we assume that, if there were no detachments, the ribosomes are completely recycled.

        However, this will not be used in our programming.


    Monte Carlo Methods

        We use Monte Carlo method in our programming for convenience. Here is the specification of the algorithm:

        Note that Each Monte Carlo Step(MCS) represents a time interval Δt = 0.001s in our simulation.

        The mRNA strand of N codons is implemented by an array mRNA of length N, which takes value from 0 to 5 in each entry. 1 to 5 represents the state of ribosome on the certain position, while 0 represents the site is empty, or is not occupied by a "working" ribosome.

        1. Set the initial condition: all the sites on the mRNA strand is empty except the site in the first entry.

        2. Begin a new MCS:

            a) Select an entry with value 1 (ribosome in state 1), generate a random number. If the random number is less than , then change the value to 2, otherwise proceed;

            b) Select an entry with value 2 (ribosome in state 2), generate a random number. If the random number is less than , then change the value to 1, otherwise proceed;

            c) Select an entry with value 2 (ribosome in state 2), generate a random number. If the random number is less than , then change the value to 3, otherwise proceed;

            d) Select an entry with value 3 (ribosome in state 3), generate a random number. If the random number is less than , then change the value to 4, otherwise proceed;

            e) Select an entry with value 4 (ribosome in state 4), generate a random number. If the random number is less than , then change the value to 5, otherwise proceed;

            f) Select an entry with value 5 (ribosome in state 5), generate a random number. If the random number is less than , and that assume the index of the selected entry is i, if entries with index from i+1 to i+l are all of value 0, then change mRNA[i] to 0 and mRNA[i+1] to 1;

            g) Look at the last entry, assume it has index N (when use MATLAB to program) or index N-1 (when use C++ to program), generate a random number. If the value of the last entry is 5 and the random number is less than , then change the last entry to 0.

            h) Look at the first a few entries. If the first l entries are 0, then generate a random number. If the random number is less than , then change the first entry to 1.

        3. Iterate Step 2, until maximal number of Monte Carlo Steps are reached.