Team:UC Davis/Modeling

From 2010.igem.org

(Difference between revisions)
 
(32 intermediate revisions not shown)
Line 2: Line 2:
<html>
<html>
 +
<style type="text/css">
<style type="text/css">
Line 9: Line 10:
border-collapse:collapse;
border-collapse:collapse;
}
}
-
 
-
 
</style>
</style>
-
<table border=0 margin="0" width="1000px">
+
 
 +
<table border=0 margin="0" width="1000px" padding:0 margin:0>
<tr>
<tr>
-
  <td>
+
<td>
-
<table border=0 margin="1" width="700px" padding:"5px">
+
      <table border="0" margin="1" width="700px" padding="5px">
-
        <tr class="spacing"><td></td></tr>
+
      <tr class="spacing2"><td></td></tr>
-
        <tr>
+
      <tr>
-
            <td><table class="pikachu" width="675px" margin:"5px"><tr><th><img class="marth" src="https://static.igem.org/mediawiki/2010/6/60/Welcomex2.jpg" width="675px"></th></tr>
+
        <td>
-
          <tr>
+
         <table class="pikachu" width="690px">
-
                <td class="kirby">
+
            <tr><td class="kirby">
-
<p class="indent"> Welcome to our page!  Our team is comprised of 8 dedicated individuals: 6 undergraduates and 2 advisors. This will be the second year that iGEM @ UC Davis participates in the competition.  We are hard at work and are looking forward towards the completion of our project. Stay tuned for the upcoming results!<p>
+
-
<p class="header"><b>Updates</b></a><p>8.25.10 We have successfully pieced numerous parts together.  After a couple more ligations and sequencing to confirm the parts, we will be entering testing phase!<p>7.19.10 The team has had a run-in with some major issues cutting parts out. We have traced the source of the problem and have been getting more positive results ever since.<p>7.8.10 We have our model and simulation completed!<p>6.30.10 We have developed a workplan for physically assembling and testing our devices. <p>6.28.10  We have finalized our project and have extracted our parts. </td></tr></table></td>
+
-
         </tr>
+
-
        <tr class="spacing"><td></td></tr>
+
-
<tr>
+
-
          <td><table class="pikachu" width="675px"><tr><th><img class="marth" src="/wiki/images/b/b8/Projabs.jpg" width="675px"></th></tr>
+
-
          <tr>
+
-
              <td class="kirby"><p class="indent">Throughout evolutionary history, spatial pattern formation has played a vital role in developmental biology. This is seen clearly in nature throughout the eukaryotic domain; examples include coat patterns (think zebras) and body segmentation (differentiated stem cells). We want to bring this sort of spatial pattern creation to the prokaryotic world. Previous iGEM projects have created patterns that require a projection of some sort of image before the cells react. We are engineering a strain that will create a pattern with no input from outside the system except an inducer.
+
-
      <p class="indent">This genetic circuit allows us to create biological systems with spatially varying genetic expression profiles. This has applications in a variety of fields such as nanofabrication, tissue engineering, environmental engineering, and of course, synthetic biology.
+
<a name="goals"></a><p class="header"><b>Goals</b></a></p>
-
      <p align="right">Read more...</a></td></tr></table></td>
+
-
        </tr>
+
-
        <tr class="spacing"><td></td></tr>
+
-
<tr>
+
-
  <td>
+
-
                <table class="pikachu" margin="1" width="675px" padding:"5px" margin:"5px">
+
-
                <tr><th><img class="marth" src="/wiki/images/7/73/Notebookb.jpg" width="675px"></th></tr>
+
-
          <tr>
+
-
              <td class="kirby"><p class="indent"> A good scientist always keeps a lab notebook at hand in order to keep track of what they do. This ensures that they have a written record of their data, allows others to retrace their steps, and most importantly of all, back up their research findings. Sift through our notebook pages to see how this project was built!</td></tr>
+
-
<tr><td>
+
-
                  <table><tr><td class="kirby" width="200px"><p class="header"><b>Overall Workplan</b></a><p> Get the big picture of what we are trying to build!</td> <td class="kirby" width="200px"><p class="header"><b>Assembly Workplan</b></a><p> Our parts didn't just come together magically.  Learn about how we assembled our parts piece by piece!  Also, stay tuned for possible protocols that may save you hours on your experiment.</td> <td class="kirby" width="200px"><p class="header"><b>Testing & Validation</b></a><p> Building our parts also include  testing our parts and ensuring that they work, since we cannot see what is actually going on with the naked eye. Learn how we identified problems, validated our experiments, and how we overcame various issues.</td></tr></table></td></tr>
+
-
                </table>
+
-
          </td>
+
-
        </tr>
+
-
        <tr class="spacing"><td></td></tr>
+
-
<tr>
+
-
          <td>
+
-
            <table class="pikachu" width="675px">
+
-
<tr><th><img class="marth" src="/wiki/images/5/56/Modelingb.jpg" width="675px"></th></tr>
+
-
<tr><td class="kirby">
+
-
<table border=0 padding:0 margin:0>
+
<p>Early on, we decided to create a computational model of our pattern generation system. This would allow us to accomplish several important goals:
-
<tr>
+
-
  <td><img src="https://static.igem.org/mediawiki/2010/1/1d/Stripestimulation.jpg" width="300px" height="173px">
+
-
  </td>
+
-
  <td>
+
-
    <p class="indent">Using mathematical modeling, we were able create a computer simulation of how our lawn of E. Coli will look like.  The red plane in the center is the original stimulus that triggered the striping. <p align="right">Read more...</a> </td>
+
-
</tr>
+
-
</table>
+
-
</td></tr></table>
+
<ul>
-
          </td>
+
<li>Demonstrate that the circuit logic was sound</li>
-
        </tr>  
+
<li>Test the viability of our construct given realistic parameters</li>
-
        </table>
+
<li>Probe the effects that different parameters would have on the system</li>
-
  </td>
+
<li>Identify potential failure modes, and the events that might trigger them</li>
 +
<li>Evaluate alternative designs of the construct</li>
 +
</ul>
 +
With these goals in mind, we set about formalizing the system.</p>
-
  <td>
+
<a name="maths"></a><p class="header"><b>Equations</b></a></p>
-
         <table border=0 width=300px padding:0 margin:0>
+
<p>
-
        <tr class="spacing2"><td></td></tr>
+
To start, we generate equations for all of the transcription reactions: </p>
-
<tr>
+
 
-
          <td>
+
<img src="https://static.igem.org/mediawiki/2010/1/10/UCD2010Transcription_rxns.png" /><br/>
-
               <table class="pikachu" width="280px"><tr><th><img class="marth" src="/wiki/images/0/00/Sponsors.jpg" width="280px"></th></tr>
+
<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">
 +
 
 +
<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/>
 +
 
 +
<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/>
 +
We also wrote a simple GUI, which would allow us visualize the simulation output as it was running.
 +
 
 +
<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.
 +
 
 +
<a name = "res"><p class="header">Results</p></a>
 +
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.
 +
<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.   
 +
<br/>
 +
<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.
 +
<br/><img src="https://static.igem.org/mediawiki/2010/9/98/UCD_SimuOPCircles.png" width="680px" height="450px">    <br/><br/>
 +
         
 +
         </td>
 +
      </tr></table></td></tr>
 +
      </tr>
 +
      </table>
 +
</td>
 +
<td>
 +
      <table border="0" margin="1" width="300px" padding="5px">
 +
      <tr class="spacing2"><td></td></tr>
 +
      <tr>
 +
        <td>
 +
          <table class="pikachu" width="280px">
 +
               <tr><th><img class="marth" src="/wiki/images/a/a3/Content.jpg" width="280px"></th></tr>
 +
              <tr>
 +
                <td class="kirby">
 +
<ul>
 +
<li><a href="#goals" class="help">Goals</a></li>
 +
<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>
-
        <tr class="spacing2"><td></td></tr>
+
      </table>
-
<tr>
+
  </td>
-
          <td>
+
-
              <table class="pikachu" width="280px"><tr><th><img class="marth" src="/wiki/images/6/6e/Safetyb.jpg" width="280px"></th></tr></td></tr>
+
-
                  <tr><td class="kirby"><p class="indent">No synthetic biology team should go without considering the potential dangers that their project(s) may cause! Because science can be prone to error, we ensured that our project is safe on many different levels.<p>
+
-
<p align="right"><a href="https://2010.igem.org/Team:UC_Davis/safety.html">Read more...</a></a></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/c/c9/Criteria.jpg" width="280px"></th></tr></td></tr>
+
-
                  <tr><td class="kirby">Criteria</td></tr></table>
+
-
          </td>
+
-
        </tr>
+
-
  </td>
+
-
        </table>
+
</tr>
</tr>
-
 
</table>
</table>
 +
</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! :)