Team:UC Davis/Modeling

From 2010.igem.org

(Difference between revisions)
 
(34 intermediate revisions not shown)
Line 2: Line 2:
<html>
<html>
-
<head>
 
-
</head>
 
-
<style type="text/css">
 
-
.projects
 
-
{
 
-
    border: 2px solid #99dd66;
 
-
    width: 690px;
 
-
}
 
-
.projects td
+
<style type="text/css">
-
{
+
-
    border: 2px solid #99dd66;
+
-
    text-align: center;
+
-
}
+
-
.projectBanner
+
table
{
{
-
    width: 690px;
+
border-collapse:collapse;
}
}
 +
</style>
-
.version{
+
<table border=0 margin="0" width="1000px" padding:0 margin:0>
-
    font-family: arial;
+
<tr>
-
    font-size: 13px;
+
<td>
-
    color: #65983E;
+
      <table border="0" margin="1" width="700px" padding="5px">
-
}
+
      <tr class="spacing2"><td></td></tr>
 +
      <tr>
 +
        <td>
 +
        <table class="pikachu" width="690px">
 +
            <tr><td class="kirby">
-
</style>
+
<a name="goals"></a><p class="header"><b>Goals</b></a></p>
-
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
+
<p>Early on, we decided to create a computational model of our pattern generation system. This would allow us to accomplish several important goals:
-
<script text="javascript">
+
 +
<ul>
 +
<li>Demonstrate that the circuit logic was sound</li>
 +
<li>Test the viability of our construct given realistic parameters</li>
 +
<li>Probe the effects that different parameters would have on the system</li>
 +
<li>Identify potential failure modes, and the events that might trigger them</li>
 +
<li>Evaluate alternative designs of the construct</li>
 +
</ul>
-
function tabFunction(tab)
+
With these goals in mind, we set about formalizing the system.</p>
-
{
+
-
var crosstalkContent = "<br/><p class='header'>THE PROBLEM</p>In synthetic biology, the issue of crosstalk acts as a substantial barrier against developing fully-controlled biological systems.  Much like in the development of electrical systems where crosstalk causes harmful interference and unpredictable behavior, crosstalk prevents us from completely understanding how our biological constructs function, and quite often can affect the efficacy of these systems.  As such, it is clear that a method to computationally predict crosstalk in a given biological system would be a valuable scientific resource, and would effectively help minimize the negative effects of crosstalk.  This is where our computational tool, CPOTATo, comes in.<br/><br/><div style='text-align: center;'><img src='https://static.igem.org/mediawiki/2010/c/c3/CPPaperScreen1.jpg'></div><br/>Crosstalk can be attributed to several aspects of biological systems, one of which is the interaction between proteins from the synthetic circuit and proteins from the host organism.  CPOTATo (Crosstalk Predictive Organism-Targeted Analysis Tool) takes advantage of this fact in an attempt to predict protein combinations that may cause crosstalk in various biological systems.<br/><br/>The primary reason for the crosstalk between proteins is usually the homology between them.  Consider the following abstract example:  In the chassis' system, Protein A naturally interacts with Protein B; however, Protein C, a protein produced by the synthetic circuit we wish to implant, is very homologous to Protein A.  Since Protein A and Protein C are very similar, there is a certain degree of probability that Protein C will interact with Protein B.  Therefore, unless Protein C's original purpose was to interact with Protein B, this is an undesirable interaction that may lead to unpredictable crosstalk.<br/><br/><p class='header'>APPROACH</p>CPOTATo executes several consecutive database queries to different existing databases of genomic information in order to infer any instances of crosstalk based on protein-protein relationships.  The tool relies on two inputs: the amino acid sequence of the target protein, and the target organism or chassis.  We query 3 individual databases in order to obtain the information we need: Interpro, UniprotKB and String.<br/><br/>From the Interpro database, we obtain one or more Interpro entries, each of which consists of a group of proteins homologous to our target protein.  We then use these Interpro entries as the query parameter to the UniprotKB database in order to filter out all proteins that are not produced within the chassis.  And finally, we query the String database with each of the remaining proteins to obtain the final list of interactions involving each of these homologous proteins and the target protein.<br/><br/><div style='text-align:center'><img src='https://static.igem.org/mediawiki/2010/c/c6/CPPaperScreen2.jpg'></div><p class='header'>SCORES</p>The finalization of the numerical score analysis is still pending.  See the Changelog.<br/><br/><p class='header'>Changelog</p><div class='version'>v0.1.0:</div> Queries completed.  Some documented cases of crosstalk have been run through the tool, and the results are consistent with what's in the literature.  Score system is still in development.";
+
 +
<a name="maths"></a><p class="header"><b>Equations</b></a></p>
 +
<p>
 +
To start, we generate equations for all of the transcription reactions: </p>
-
var pHContent = "<br/><p class='header'>THE PROBLEM</p>Cellular machines are not isolated systems. They have an intimate relationship with their surroundings and must change with varying environmental conditions. To do this, they rely on sensory machinery to trigger internal responses based on external stimuli such as light, chemical concentrations, etc. Sensors have been engineered for the E. coli chassis but one stimulus has been neglected: pH.<br/><br/> Cells thrive in a limited pH range; the optimal range for E. coli being 6-7.  If the pH is much different than this, the cell must take action to survive.  This needs to be taken into account when designing cellular machines which are reactive to pH changes.  A pH sensitive system from another organism would help keep the engineered response independent.  This would allow the desired response to be separate from a native stress response. <br/><br/><div style='text-align:center'><img src='https://static.igem.org/mediawiki/2010/a/ac/Mes_photo.jpg'></div><br/><br/><p class='header'>APPROACH</p>In the native host, Agrobacterium tumefaciens, the pH sensing machinery is a two component system consisting of the ChvG and ChvI genes.  ChvG is the membrane bound histidine kinase and ChvI is the chromosomal response regulatory gene. The pH sensing machinery is flawlessly intertwined in the vast number of other simultaneously occurring processes.  Ideally, it could be transplanted into E. coli without affecting any other pathway, although the possibility of this happening is next to none.  We do not know how the construct will behave in it's new environment, but we do expect some unwanted crosstalk caused by differing pH and phosphate levels within the new host.<br/><br/>Four promoters are likely to be activated by the ChvG/ChvI in A. tumefaciens: KatA, ImpA, ChvG, and AopB.  We took these sequences and placed them upstream of RFP to measure the extent to which they are activated in E. coli.  Another promoter, PhoA from the PhoB/PhoR two component system was also chosen to be tested with the ChvG/ChvI construct since both two-component systems are similar. We expect some activation of the PhoA promoter at high phosphate levels when the PhoB/PhoR system is deactivated.";
+
<img src="https://static.igem.org/mediawiki/2010/1/10/UCD2010Transcription_rxns.png" /><br/>
 +
<p>From there, we came up with the equations for each binding/unbinding reaction:</p><br/>
 +
<img src="https://static.igem.org/mediawiki/2010/b/ba/UCD2010Bind-Unbind-1.png" />
 +
<img src="https://static.igem.org/mediawiki/2010/a/a4/UCD2010Bind-Unbind-2.png" /><br/>
 +
<p>We can now see some interesting behaviors of our gene circuit. For instance, the transcription of lambda cI mRNA is dependent on the concentration of promoter I12006 that is bound with lambda cI. However, we can also see from the second set of equations that this promoter may be complexed with 434 cI, which acts as a repressor, <i>removing</i> some of the I12006 which would otherwise be available for transcription. It is important to note that the binding of the repressor "overrides" the activity of the activator; this has important effects on the system, and this behavior reflects the reality of the part.</p><br/>
 +
<p>Not shown here are various simple translation and degradation reactions for the protein species; these equations are straightforward and don't merit much mention here. For our purposes, it is assumed that the translation rate is the same for all proteins.</p><br>
 +
There is an added level of complexity for our construct. Because the device is intended to exhibit behavior at a multicellular level, and some of the species produced (specifically, quorum sensing molecules produced by las and lux pathways) must will be diffusing throughout the plate, we need a way to model diffusion of species. In general, molecular diffusion can be modelled by Fick's 2nd Law:<br /> <br />
 +
<img src="https://static.igem.org/mediawiki/2010/6/60/Fick_second_law.png">
-
var spatialContent = "<br/><p class='header'>MOTIVATION</p>Patterns are everywhere in biology.  Some, like zebra stripes, are easy to see, while other patterns like those that appear during animal development may be more subtle.  Underneath the expression of these patterns are complex genetic networks that interpret specific cues from the environment and use this data to direct cells, or even populations of cells, to self organize and act.<br/><p class='header'>THE PROJECT</p>Given the importance of pattern generation in biology, we wanted to see if we could construct a synthetic circuit that would allow us to generate patterns in a community of inter-communicating cells in response to a simple stimuli; in our case, this stimuli would be light.<br/><br/>In order to mimic the process by which groups of cells can communicate to ultimately form a pattern, we will be using a lawn of E. Coli cells as our multicellular model system.  These cells would be designed to communicate with each other through quorum sensing, and based on the small signaling molecules that each cell \"patch\" produces, the subsequent cell patch will know whether to activate or remain inactive.<br/><br/>In our system, the activated cells would produce colored pigment in order to indicate that they have been activated, and the cells that remain inactive will produce no color.  In this way, the lawn of E. Coli cells would produce an oscillatory pattern of active and inactive \"bands\" of color and no color.  ";
+
<br/>
 +
<br/>
 +
<a name="impl"></a><p class="header">Implementation</p>
 +
After we had derived the necessary equations, we began evaluating various packages that would allow us to compute the solutions to these equations over a large array of cells. Unfortunately, this quickly led to problems; we had decided early on that the best way to incorporate the diffusion component into our model was to discretize Fick's 2nd Law as a 2D Gaussian convolution:<br/><br/>
 +
<img src="https://static.igem.org/mediawiki/2010/d/d7/UCD2010GaussianConvolution.png">
 +
<br/><br/>
 +
We could then compute the diffusion step as a second pass during each time step, after the ODEs had been evaluated - thus skirting around the issue of having to solve thousands of simultaneous PDEs, while still producing realistic results. This would require a computational package that was flexible enough to allow us to hook into the ODE solver, performing our own calculations at each increment. An initial assessment showed that this was going to be more difficult than expected, so we decided to roll our own solution in C++.<br/><br/>
 +
Because computational speed was not expected to be an issue, we opted to integrate the ODEs using the Euler method at each increment, followed by a convolution of the quorum sensing molecules according to the above kernel. This method should be reasonably accurate given a small enough timestep.<br/><br/>
-
    switch(tab)
+
<img src="https://static.igem.org/mediawiki/2010/3/34/UCD2010Euler.gif"> <br/>
-
    {
+
The program then outputs a bitmap at each iteration with the Fluorescent Protein, Lux signal molecule, and Las signal molecule mapped to the Red, Green, and Blue channels, respectively; as well as a plain-text file with these numbers in a format that can be read by a plotting package (such as the free gnuplot, which we used to generate the graphs on this page). <br/><br/>
-
          case 1:
+
We also wrote a simple GUI, which would allow us visualize the simulation output as it was running.
-
              $("#projectContent").fadeOut("slow", function() { document.getElementById("projectContent").innerHTML =spatialContent;}).fadeIn("slow");
+
-
              $("#projectBanner").fadeOut("slow", function() { document.getElementById("projectBanner").innerHTML = "<img src='https://static.igem.org/mediawiki/2010/9/9d/SObanner2.jpg' width='689px' height='100px'>";}).fadeIn("slow");
+
-
             
+
-
              break;
+
-
          case 2:
+
-
              $("#projectContent").fadeOut("slow", function() { document.getElementById("projectContent").innerHTML = pHContent;}).fadeIn("slow");
+
-
              $("#projectBanner").fadeOut("slow", function() { document.getElementById("projectBanner").innerHTML = "<img src='https://static.igem.org/mediawiki/2010/a/a8/PhBanner.jpg' width='689px'' height='100px'>";}).fadeIn("slow");
+
-
              break;
+
-
          case 3:
+
-
              $("#projectContent").fadeOut("slow", function() { document.getElementById("projectContent").innerHTML = crosstalkContent;}).fadeIn("slow");
+
-
              $("#projectBanner").fadeOut("slow", function() { document.getElementById("projectBanner").innerHTML = "<img src='https://static.igem.org/mediawiki/2010/b/b1/CrosstalkBanner.jpg' width='689px' height='100px'>";}).fadeIn("slow");
+
-
              break;
+
-
          default:
+
-
              document.getElementById("projectContent").innerHTML = spatialContent;
+
-
              break;
+
-
    }
+
-
}
+
-
</script>
+
<br/>
 +
Finally, the program used an input bitmap to determine the amount of "light" shining on the system, which for our purposes was mapped directly to intercellular OmpR concentration. This allowed us to perform multiple experiments with various patterns, to test the behavior of our system under different conditions.
-
<body onload="tabFunction()">
+
<a name = "res"><p class="header">Results</p></a>
-
<table class="pikachu">
+
Pictured here is the output of one of our completed simulation runs.  In this particular run, we initialized the system with a vertical stimulus down the center of the plate, resulting in linear oscillation outwards towards the edges.
-
    <tr>
+
<br/><img src="https://static.igem.org/mediawiki/2010/1/19/UCD_SimuOP.png" width="680px" height="450px"><br/>This result demonstrates the theoretical feasability of our construct under the conditions present in the simulation.   
-
    <td width="685px">
+
<br/>
-
    <table class="projects">
+
<br/>To further test the simulation, we decided to try another type of initial stimulus and observe the results.  The stimulus we chose was seeding the oscillation at the four corners of the "plate".  The following is the result of this run, which again reflects the intended behavior of our system.
-
          <tr>
+
<br/><img src="https://static.igem.org/mediawiki/2010/9/98/UCD_SimuOPCircles.png" width="680px" height="450px">     <br/><br/>
-
          <td width='33%'><a onclick="tabFunction(1)" style="cursor:pointer">Spatial Oscillation</a></td>
+
         
-
          <td width='33%'><a onclick="tabFunction(2)" style="cursor:pointer">pH Sensor</a></td>
+
        </td>
-
          <td width='33%'><a onclick="tabFunction(3)" style="cursor:pointer">Crosstalk Predictor</a></td>
+
      </tr></table></td></tr>
-
          </tr>
+
      </tr>
-
    </table>
+
      </table>
-
    <table width="690px">
+
</td>
-
          <tr><th><div id="projectBanner"><img src="https://static.igem.org/mediawiki/2010/9/9d/SObanner2.jpg" width="689px"></div></th>
+
<td>
-
          </tr>
+
      <table border="0" margin="1" width="300px" padding="5px">
-
          <tr>
+
      <tr class="spacing2"><td></td></tr>
-
          <td>
+
      <tr>
-
          <div id="projectContent">
+
        <td>
-
          Spatial Oscillation
+
          <table class="pikachu" width="280px">
-
          </div>
+
              <tr><th><img class="marth" src="/wiki/images/a/a3/Content.jpg" width="280px"></th></tr>
-
          </td>
+
              <tr>
-
          </tr>
+
                <td class="kirby">
-
          </table>
+
<ul>
-
    <td>
+
<li><a href="#goals" class="help">Goals</a></li>
-
              <table class="pikachu" width="280px"><tr><th><img class="marth" src="/wiki/images/0/00/Sponsors.jpg" width="280px"></th></tr>
+
<li><a href="#maths" class="help">Equations</a></li>
 +
<li><a href="#impl" class="help">Implementation</a></li>
 +
<li><a href="#res" class="help">Results</a></li>
 +
</ul> </td>
 +
              </tr>
 +
          </table>
 +
        </td>
 +
      </tr>
 +
<tr class="spacing2"><td></td></tr>
 +
      <tr>
 +
        <td>
 +
<table class="pikachu" width="280px"><tr><th><img class="marth" src="/wiki/images/0/00/Sponsors.jpg" width="280px"></th></tr>
                   <tr>
                   <tr>
                     <td class="kirby" align="center"></html>{{Team:UC_Davis/sponsors}}<html>
                     <td class="kirby" align="center"></html>{{Team:UC_Davis/sponsors}}<html>
</td></tr></table>
</td></tr></table>
-
          </td>
+
        </td>
-
    </tr>
+
      </tr>
 +
      </table>
 +
</td>
 +
</tr>
</table>
</table>
-
 
-
</body>
 
</html>
</html>

Latest revision as of 02:13, 28 October 2010

Goals

Early on, we decided to create a computational model of our pattern generation system. This would allow us to accomplish several important goals:

  • Demonstrate that the circuit logic was sound
  • Test the viability of our construct given realistic parameters
  • Probe the effects that different parameters would have on the system
  • Identify potential failure modes, and the events that might trigger them
  • Evaluate alternative designs of the construct
With these goals in mind, we set about formalizing the system.

Equations

To start, we generate equations for all of the transcription reactions:


From there, we came up with the equations for each binding/unbinding reaction:



We can now see some interesting behaviors of our gene circuit. For instance, the transcription of lambda cI mRNA is dependent on the concentration of promoter I12006 that is bound with lambda cI. However, we can also see from the second set of equations that this promoter may be complexed with 434 cI, which acts as a repressor, removing some of the I12006 which would otherwise be available for transcription. It is important to note that the binding of the repressor "overrides" the activity of the activator; this has important effects on the system, and this behavior reflects the reality of the part.


Not shown here are various simple translation and degradation reactions for the protein species; these equations are straightforward and don't merit much mention here. For our purposes, it is assumed that the translation rate is the same for all proteins.


There is an added level of complexity for our construct. Because the device is intended to exhibit behavior at a multicellular level, and some of the species produced (specifically, quorum sensing molecules produced by las and lux pathways) must will be diffusing throughout the plate, we need a way to model diffusion of species. In general, molecular diffusion can be modelled by Fick's 2nd Law:



Implementation

After we had derived the necessary equations, we began evaluating various packages that would allow us to compute the solutions to these equations over a large array of cells. Unfortunately, this quickly led to problems; we had decided early on that the best way to incorporate the diffusion component into our model was to discretize Fick's 2nd Law as a 2D Gaussian convolution:



We could then compute the diffusion step as a second pass during each time step, after the ODEs had been evaluated - thus skirting around the issue of having to solve thousands of simultaneous PDEs, while still producing realistic results. This would require a computational package that was flexible enough to allow us to hook into the ODE solver, performing our own calculations at each increment. An initial assessment showed that this was going to be more difficult than expected, so we decided to roll our own solution in C++.

Because computational speed was not expected to be an issue, we opted to integrate the ODEs using the Euler method at each increment, followed by a convolution of the quorum sensing molecules according to the above kernel. This method should be reasonably accurate given a small enough timestep.


The program then outputs a bitmap at each iteration with the Fluorescent Protein, Lux signal molecule, and Las signal molecule mapped to the Red, Green, and Blue channels, respectively; as well as a plain-text file with these numbers in a format that can be read by a plotting package (such as the free gnuplot, which we used to generate the graphs on this page).

We also wrote a simple GUI, which would allow us visualize the simulation output as it was running.
Finally, the program used an input bitmap to determine the amount of "light" shining on the system, which for our purposes was mapped directly to intercellular OmpR concentration. This allowed us to perform multiple experiments with various patterns, to test the behavior of our system under different conditions.

Results

Pictured here is the output of one of our completed simulation runs. In this particular run, we initialized the system with a vertical stimulus down the center of the plate, resulting in linear oscillation outwards towards the edges.

This result demonstrates the theoretical feasability of our construct under the conditions present in the simulation.

To further test the simulation, we decided to try another type of initial stimulus and observe the results. The stimulus we chose was seeding the oscillation at the four corners of the "plate". The following is the result of this run, which again reflects the intended behavior of our system.


We would like to take a moment to thank all of our sponsors for their very generous donations, as we could not have done this without your help!

We would also like to thank and acknowledge:
Our Advisors
Marc Facciotti
Ilias Tagkopoulos
Technical Guidance
David Larsen
Andrew Yao
Visiting iGEMer
Jia Li of Zhejiang University (TEAM ZJU-China)
cI Promoter Screen
Drew Endy - Stanford
Thomas Schneider - NIH
Want to sponsor us? Send an email to mtfacciotti@ucdavis.edu to discuss various ways you can help! :)