Team:uOttawa/drylab

From 2014.igem.org

(Difference between revisions)
Line 167: Line 167:
                     <p>Equations for inducible switch of design two assuming singular terms.</p>
                     <p>Equations for inducible switch of design two assuming singular terms.</p>
                 </figure>
                 </figure>
 +
 +
 +
<h2>Stochastic Design</h2>
 +
                <p>A stochastic model is different from a deterministic model. In Biology, Stochasticity is an attribute of most, if not all, biological systems. A stochastic system is one where the the subsequent state is calculated probabilistically. This is simply another way of saying that there is noise and randomness associated with most things in life. In gene expression, where noise causes lots of "randomness", stochastic methods of modelling are very useful to account for that "randomness".</p>
 +
                <p>There are many methods of stochastic modelling and each differ in the exact step where the "random" is added to the model. In the case of the Direct Method, it occurs in reaction determination. In the case of the Tau Leap Method, it occurs in the determination of the time-step. This step is called the Monte Carlo step, named after the famous casino in Monaco, because a random number is generated and used in a calculation. Our stochastic model used the Direct Method since it is simpler to code, and simpler to understand. Unfortunately, it is also pretty computationally inefficient.</p>
 +
                <p>The first step is producing an intimidating flow chart that looks something like this:</p>
 +
                <figure>
 +
                    <img src="https://static.igem.org/mediawiki/2014/0/08/Uo2014-bigmodel.png" alt="">
 +
                </figure>
 +
                <p>or this:</p>
 +
                <figure><img src="https://static.igem.org/mediawiki/2014/9/95/Uo2014-bigmodel2.png" alt=""></figure>
 +
                <p>These are our flowcharts for the two designs of our construct. The important thing to keep in mind when making a flocwchart is how complex or simple you want to make your model. Often, certain reaction can absorbed into a single one or could even be ignored, it all depends on what you need your model to do. An example of this would be combining transcription and translation into one reaction or keeping them separate if the complexity is necessary for your model.</p>
 +
                <p>Once the flowchart is ready, you must then write rate equations for each reaction, keeping in mind molar ratios. It’s important to remember that things like a promoter binding to a DNA sequence is actually two equations, one for the binding and one for the dissociation. After the equations are completed, the hard part is over and you can start coding.</p>
 +
                <p>First you must initialize the variables and vectors that you will store the populations of each molecule/complex. Assign your initial populations to each variable. Next you copy the rate equations you had done previously into the script. Following this, we must determine which equation is going to occur for the timestep. This is where the Monte Carlo step occurs in the Direct Method of the Gillespie Algorithm. Calculate the sum of all the rates calculated earlier and generate a random number between 0 and that sum. To determine which equation occurs, you find which interval the random number finds itself in. For example, if you have three equations that have rates: 1,2,3. So the cumulative rate is 6, and let’s say the random number you generate is 4.5. 4.5 lies in the interval [3,6] which is between the rates of reaction 2 and 3. This means the reaction that occurs in this time interval is reaction 3. The random number is also used to calculate the timestep for the reaction.</p>
 +
                <p>Once this is done, it’s just a matter of updating the populations of each molecule based on the reaction chosen in the previous step. Usually only a small subset of the molecules changes in population since only one reaction occurs. After this update, you repeat all the steps starting with the rate calculations.</p>
 +
                <h3>Stochastic Parameters</h3>
 +
                <table style="border-top: 1px solid rgb(100, 150, 20); border-bottom: 1px solid rgb(100, 150, 20); width:100%;">
 +
                    <tr style="font-weight: bold; border-bottom: 1px solid rgb(100, 150, 20);"><td>Parameter</td><td>Design 1</td><td>Design 2</td></tr>
 +
                    <tr>
 +
                        <td>Basal expression rate pGevTx (protein/min)</td>
 +
                        <td>a1 = 0</td>
 +
                        <td>ag1 = 0</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Maximal expression rate pGevTx (protein/min)</td>
 +
                        <td>b1 = 4.53E9</td>
 +
                        <td>bg1 = 4.53E9</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Basal expression rate pTreGx (protein/min)</td>
 +
                        <td>a2 = 0</td>
 +
                        <td>ar1 = 0</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Maximal expression rate pTreGx (protein/min)</td>
 +
                        <td>b2 = 6.84E6</td>
 +
                        <td>br1 = 6.84E6</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Basal expression rate pmrp7 (protein/min) (1)</td>
 +
                        <td>NA</td>
 +
                        <td>a2 = 1E6</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>GEV degradation (min-1) (2)</td>
 +
                        <td>k1 = 5.833E-3</td>
 +
                        <td>k1 = 5.833E-3</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>rTTA degradation (min-1) (2)</td>
 +
                        <td>k2 = 5.833E-3</td>
 +
                        <td>k2 = 5.833E-3</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Binding constant GEV-beta-estradiol (molecule-1) (3)</td>
 +
                        <td>c1 = 6E21</td>
 +
                        <td>c1 = 6E21</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Binding constant rTTA-aTc (molecule-1) (3)</td>
 +
                        <td>c1 = 6E21</td>
 +
                        <td>c1 = 6E21</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Dissociation constant GEV-pTreGx (molecule-1)</td>
 +
                        <td>K2GEV = 7.795E19</td>
 +
                        <td>K2GEV = 7.795E19</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Dissociation constant rTTA-pTreGx (molecule-1)</td>
 +
                        <td>K2ATC = 5.608E19</td>
 +
                        <td>K2ATC = 5.608E19</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Hill coefficient GEV-pGevTx</td>
 +
                        <td>n1GEV = 1.1326</td>
 +
                        <td>n1GEV = 1.1326</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Hill coefficient rTTA-pGevTx</td>
 +
                        <td>n1ATC = 1.0082</td>
 +
                        <td>n1ATC = 1.0082</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Hill coefficient GEV-pTreGx</td>
 +
                        <td>n2GEV = 0.2581</td>
 +
                        <td>n2GEV = 0.2581</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Hill coefficient rTTA-pTreGx</td>
 +
                        <td>n2ATC = 0.9887</td>
 +
                        <td>n2ATC = 0.9887</td>
 +
                    </tr>
 +
                </table>
 +
                <p>
 +
                    (1) = Values were approximated<br>
 +
                    (2) = GEV and rTTA degradation values were general protein degradation values<br>
 +
                    (3) = Value of binding constant GEV-beta-estradiol from [2]<br>
 +
                    (4) = Value of binding constant rTTA-aTc from [3]
 +
                </p>
 +
                <p>&nbsp;</p>
 +
                <table style="border-top: 1px solid rgb(100, 150, 20); border-bottom: 1px solid rgb(100, 150, 20); width:100%;">
 +
                    <tr style="font-weight: bold; border-bottom: 1px solid rgb(100, 150, 20);"><td>Parameter</td><td>Design 1</td><td>Design 2</td></tr>
 +
                    <tr>
 +
                        <td>Constitutive binding rate (molecule-1 * min-1)</td>
 +
                        <td>k1 = 1</td>
 +
                        <td>k1 = 1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Constitutuve dissociation rate(min-1)</td>
 +
                        <td>NA</td>
 +
                        <td>k1<sub>2</sub> = 0.1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Constitutuve transcription rate(min-1)</td>
 +
                        <td>NA</td>
 +
                        <td>k2 = 1.5</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Translation rate (min-1)</td>
 +
                        <td>k4 = 1</td>
 +
                        <td>k3 = 0.5</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Drug activation rate (molecule-1 * min-1)</td>
 +
                        <td>NA</td>
 +
                        <td>k4 = 1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Inhibitor binding rate (molecule-1 * min-1)</td>
 +
                        <td>k1 = 1</td>
 +
                        <td>k4 = 1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Inhibitor dissociation rate (min-1)</td>
 +
                        <td>NA</td>
 +
                        <td>k5<sub>2</sub> = 0.1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Inhibited transcription rate (min-1)</td>
 +
                        <td>k3 = 0.5</td>
 +
                        <td>k6 = 0.1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Activator binding rate (molecule-1 * min-1)</td>
 +
                        <td>k1 = 1</td>
 +
                        <td>k7 = 1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Activator dissociation rate (min-1)</td>
 +
                        <td>NA</td>
 +
                        <td>k7<sub>2</sub> = 0.1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Activated transcription rate (min-1)</td>
 +
                        <td>k2 = 1.5</td>
 +
                        <td>k8 = 1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>GFP/BFP transcription or translation rate (min-1)</td>
 +
                        <td>k6 = 0.5</td>
 +
                        <td>k9 = 1</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Degradation rate (min-1)</td>
 +
                        <td>k1<sub>2</sub> = 1</td>
 +
                        <td>k10 = 0.5</td>
 +
                    </tr>
 +
                    <tr>
 +
                        <td>Basal rate (min-1)</td>
 +
                        <td>b = 1</td>
 +
                        <td>b = 1</td>
 +
                    </tr>
 +
                </table>
 +
                <p>Parameters are relative to the basal rate of 1.</p>
             </div>
             </div>
 +
 +
             <div class="pane" id="pane-results" hidden>
             <div class="pane" id="pane-results" hidden>
                 <h1>Results</h1>
                 <h1>Results</h1>

Revision as of 04:39, 17 October 2014

Modelling

What do we do in computational biological modeling? Simply put, we translate biology into mathematics and back again. It may be to predict, to confirm or to study. Whatever the reason may be, as modelers, our goal is to turn the biology into mathematical terms, which are more easily manipulated, tested and analyzed, and deduce the biological meaning from the results. Above all, our main goal is to work with and support the members conducting the biological research in the laboratory.

The system we designed and built this year is known as a tristable switch (a more detailed description of the biology can be found in the project section). In essence, the system is a two-gene construct with mutual repression and self-activation that should result in three stable states. A diagram of the system is seen in Figure 1. The two genes code for transcriptional factors, GEV and rtTA, which act as self-activators and repressors in the presence of activator molecules (beta-estradiol and aTc, respectively). These small molecules, in effect, act as inducible switches which allow them to control which transcriptional factor is active. Our objectives for the model are to design mathematical models representative of the system in order to 1) predict the stable points of the systems and at what concentrations of beta-estradiol and aTc they occur and 2) to study the dynamics of inducing the switch between stable states. But what does it mean to have stable states?

Simplified visual diagram of genetic construct. Mutual inhibition and self activation are mediated by beta-estradiol and aTc when GEV and rtTa are involved, respectively.

In a biological context, stable states refer to states of stable gene expression levels. This means that expression levels tend to progress until it reaches a certain stable expression level, depending on the initial conditions. These states also are resistant to modifications of expression by changing regulatory proteins, loss of genetic product, etc. In a modeling context, it refers to the trajectory of the system (or group) of equations to converge to a steady or stable state. Mathemtically speaking, stable states occur at intersections of nullclines, but simply, they attract the trajectory of the system of equations. To analyze model stability, one can use phase plane and bifurcation analyses. Phase plane analyses are used to analyze the dynamics of the stability of the system of equations, at a given set of parameters, and bifurcation analyses are used to analyze the change in stability with regards to modifications of parameters.

Phase plane analysis of GEV and rTTA.

In a phase plane analysis, we investigate the stability of two components (molecules like GEV and rtTA) with respect to each other by plotting the amount of the first component (GEV) against the amount of the second (rtTa). For an example, take Figure 2. Each line represents a single simulation, with a unique set of initial conditions (starting amounts) where the blue progressing to red in the line represents the progress of the simulation from the beginning to the end. The phase plane, in essence, is a summary of multiple simulations of the system of equations with different initial conditions. This system of equations tend to progress to three stable states (the groupings of red ends). Stable states are also known as attractor sites or "sinks", because, like a sink, these sites pull in the trajectories of the components as seen by the phase plane.

Bifurcation analysis of GEV and rTTA with respect to parameter a1.

In bifurcation analyses, we investigate the change in stable states with regards to the parameters in order to test robustness (the range of each parameter where the model can still predict tristability) and sensitivity (which parameter can cause the most change in the stable states). The bifurcation diagram is very similar to phase planes; in essence, a phase plane is conducted at each parameter value. At each value, multiple simulations of the system equations are conducted but only the last several values of the simulation (red regions in phase plane) are plotted. One can observe the progress of the stable points as one modifies the parameter. Figure 3 best demonstrates the concept of bifurcation analysis. In this example, we can say that the stable state with high expression of GEV is greatly affected by the parameter.

We just went through why we are modeling and how we're going to use it. The question now is what we are going to use to model? For modeling biological systems, one of the first choices is whether to use a deterministic or stochastic model. In essence, a deterministic model assumes that all variables of the model can account for the majority of the biological behavior of the system, ignoring the inherent variability of the system. Stochastic models take this variability into account by introducing a random factor, but this often makes the system difficult to analyze. We decided to pursue the design of an ordinary differential equation (ODE) deterministic model and a Gillespie-based stochastic model.

Brick Builder the ultimate DNA assembly tool

The Brick Builder software is a web-based application that allows teams to virtually engineer their DNA constructs and design primers for the construction of their engineered parts - all in one place. Users can query and select parts from the Bio Brick database, and design a construct with their chosen parts. Brick Builder will automatically create the primers necessary to build the chosen construct using the user’s choice of compatible assembly method and melting temperature range, among other optional parameters.

Search

Searching could not be simpler. Using iGEM's provided API tools, users can search for parts directly from the parts registry with up-to-date information.

Search results

Sometimes a search can result in hundreds of parts being displayed and can take quite a bit of time to find the perfect one. With the new implementation of pagination, users can sift for wanted parts by sorting them by properties.

Brick bin

Users can save wanted parts into their very own unique Brick Bin. Here, users can review their saved parts and can remove any unwanted parts from their Brick Bin in preparation for construction.

Construction

The Construct Bin designates the parts needed for construction. Users are able to add, delete and reorder the parts from the beginning (top) to the end (bottom). When users are satisfied with the construct, a simple click will generate the primers needed for that specific construct.