ETH Zurich 2006

From 2006.igem.org

(Difference between revisions)
Jump to: navigation, search
m (parameter estimation & sensitivity analysis)
(added link to FTD article)
 
(67 intermediate revisions not shown)
Line 2: Line 2:
<BR/><b>standing (L-R):</b> Marco, Alexandra, Arthur, Olga, Dimo, Marko, Robert; <b>in front (L-R):</b>
<BR/><b>standing (L-R):</b> Marco, Alexandra, Arthur, Olga, Dimo, Marko, Robert; <b>in front (L-R):</b>
Franz, Michael</center>
Franz, Michael</center>
 +
<br><br>
 +
 +
<center>
 +
'''>>>>>>>>>>>> [http://www.zfranz.ch.vu/iGEM/ETH-iGEM-%202006-%20presentation.pdf Download ETH iGEM presentation 2006 as PDF] <<<<<<<<<<<<'''
 +
</center>
 +
 +
<center>
 +
'''>>>>>>>>>>>>> [http://www.fotofranz.ch.vu/igem See pictures of the iGEM Jamboree in Boston] <<<<<<<<<<<<<'''
 +
</center>
 +
 +
<center>
 +
'''>>>>>>>>>>>>> [http://ftd.de/forschung/154366.html Read article in Financial Times Deutschland: &quot;Eins plus eins gleich Gr&uuml;n&quot; (german only)] <<<<<<<<<<<<<'''
 +
</center>
<br><br>
<br><br>
Line 11: Line 24:
What the addition of numbers has to do with pattern recognition, how our model and the mathematical analysis look like, and how the experiments are realized will be explained on these wiki pages. We wish you a pleasant time with our pages. Enjoy it!  
What the addition of numbers has to do with pattern recognition, how our model and the mathematical analysis look like, and how the experiments are realized will be explained on these wiki pages. We wish you a pleasant time with our pages. Enjoy it!  
</blockquote>
</blockquote>
 +
<br><br>
<br><br>
Line 19: Line 33:
==== Modeling ====
==== Modeling ====
-
*'''Parts''' Model the whole System with Sensing, Pops duplexer and Half adder (Marco and Franz) -- probably not  
+
*'''Parts''' Model the whole System with Sensing, PoPS duplexer and Half adder (Marco and Franz) -- probably not  
*Model whether a different strength of input is necessary for the AND and XOR Gates (Marco)
*Model whether a different strength of input is necessary for the AND and XOR Gates (Marco)
*Finish modeling the second AND Gate and find a biological way to implement it and write the DNA and order it (Marco and Robert) -- probably not
*Finish modeling the second AND Gate and find a biological way to implement it and write the DNA and order it (Marco and Robert) -- probably not
Line 30: Line 44:
*Read the literature on the XOR and AND Gates, check carefully for strains needed and compatibility of the parts (Who?)
*Read the literature on the XOR and AND Gates, check carefully for strains needed and compatibility of the parts (Who?)
*Prepare a protocol for parts assembly (Olga)
*Prepare a protocol for parts assembly (Olga)
-
*Assembly of the light sensing device from the parts we received from UCSF Voigt's lab (Arthur) DONE
 
-
*Test the light sensing device (Arthur?)
 
-
*Assembly of the chemical sensing device (Franz, Dimo, Robert, Marco, Marko, Olga) DONE
 
-
*Test chemical sensing device DONE?
 
==== Documentation ====
==== Documentation ====
Line 40: Line 50:
* enter lab experience report to registry
* enter lab experience report to registry
-
* Make a drawing of the DNA to have an overview of which parts will be consecutively on the same DNA piece (Alexandra) (this is part of the [[#system deployment]] section --[[User:Ajk|Ajk]])
+
* Make a drawing of the DNA to have an overview of which parts will be consecutively on the same DNA piece (Alexandra) (this is part of the [[#System deployment]] section --[[User:Ajk|Ajk]])
* Revise images &amp; graphics (Marco):
* Revise images &amp; graphics (Marco):
** correct errors
** correct errors
Line 51: Line 61:
* design and write the final presentation (with LaTex beamer class) IN PROCESS
* design and write the final presentation (with LaTex beamer class) IN PROCESS
-
* draw a team logo and find a team name (Franz and Dimo)
 
-
* design and order T-Shirts (Dimo)
 
-
* setup poster, collect info/distribute tasks
 
Structure:
Structure:
-
1. Introduction of the team and ETH Zurich and of the half-adder idea -  about 4 min
+
1. Introduction of the team and ETH Zurich and of the half-adder idea -  about 3 min
-
2. Engineering Part  -  about 8 min
+
2. Engineering Part  -  about 9 min
3. Biological part  -  about 8 min
3. Biological part  -  about 8 min
Line 69: Line 76:
Available as Google Calendar: [http://www.google.com/calendar/render?cid=pqi8ni6gnfj5r3o0np0h4smrr4@group.calendar.google.com iGEM 2006 ETH Zurich]
Available as Google Calendar: [http://www.google.com/calendar/render?cid=pqi8ni6gnfj5r3o0np0h4smrr4@group.calendar.google.com iGEM 2006 ETH Zurich]
-
; ''Thu 20.7., 1700:'' ''kickoff meeting in CNB E 121''
+
;past:see [[ETH Schedule Archive|here]]
-
; 27.7.-3.8. 1st group phase: Define project in more detail within two groups<br>'''Thu 27.7., 1700:''' meeting of entire group to share ideas<br>'''Thu 3.8., 1700:''' decision on final project
+
;16.11.: Jamboree wrap up (with T-Shirts!), 5pm at CNB seminar room
-
;15.8. 1700: Tutorial "Modelling of AND gate"
+
-
;Until 20.8.: Finalize DNA design, order it
+
-
;September,October: Implement design (registry bio-bricks, ordered DNA)
+
-
;27.9.: Fix the flight dates and send the proposed flights to J&ouml;rg
+
-
;23.10.: Latest point to start getting our presentation going and to finish the iGEM wiki documentation
+
-
;30.10.: Project documentation on the Wiki has to be complete
+
-
;4./5.11.:Jamboree in Boston
+
-
=== Participants and availability ===
+
=== Team members ===
 +
{| cellspacing="0px" cellpadding="5px" style="border-style:solid;border-width:thin;border-color:#dddddd;" rules="all"
 +
|-
 +
| [[User:Paolo Pinkel|Michael Friedmann]] || [[User:Dimo|Dimo Brockhoff]] || [[Franz|Franz Zürcher]]
 +
|-
 +
| [[Olga Nikolayeva]] || [[User:Choutkoa|Alexandra Choutko]] || [[User:Ajk|Arthur Korn]]
 +
|-
 +
| [[User:Rschuetz|Robert Schütz]] || [[User:Terzerm|Marco Terzer]] || [[Marko Jovanovic]]
 +
|}
-
* [[User:Paolo Pinkel|Michael Friedmann]]:
+
== Finding a Project ==
-
* [[User:Dimo|Dimo Brockhoff]]:
+
-
* [[Franz|Franz Zürcher]]:
+
-
* [[Olga Nikolayeva]]:
+
-
* [[User:Choutkoa|Alexandra Choutko]]:
+
-
* [[User:Ajk|Arthur Korn]]:
+
-
* [[User:Rschuetz|Robert Schütz]]:
+
-
* [[User:Terzerm|Marco Terzer]]:
+
-
* [[Marko Jovanovic]]:
+
 +
Finding a project to work on is not easy. Not because it is hard to find interesting projects but because there are too many of them. In the first weeks we did a lot of brainstorming including thoughts about the projects' feasibility. You can find a list of ideas [[ETH 2006 Ideas|here]].
-
== finding a project ==
+
During the weeks, we decided to split up the whole team into two groups. Each group proposed a project after these two weeks of separated work:
-
 
+
-
=== [[ETH 2006 Ideas|Initial project ideas]] ===
+
-
 
+
-
[[ETH 2006 Ideas|The fruits of some brainstorming and research]]
+
-
 
+
-
=== proposed projects ===
+
-
 
+
-
We split up the whole team into two groups, each proposed a project after these two weeks.
+
* [[ETH 2006 Meat Monitor|Meat monitor project]] (Michael, Dimo, Olga, Arthur, Marko)
* [[ETH 2006 Meat Monitor|Meat monitor project]] (Michael, Dimo, Olga, Arthur, Marko)
* [[ETH 2006 Half adder|Half adder/pattern recognition project]] (Franz, Alexandra, Robert, Marco)
* [[ETH 2006 Half adder|Half adder/pattern recognition project]] (Franz, Alexandra, Robert, Marco)
-
It was decided to further pursue the Half adder project idea.
+
After the proposals, we decided to further pursue the half adder project idea.
-
== design process ==
+
== Design process ==
-
''This could be documented as a hierarchy of global specification -> structural specification steps (ie after-the-book engineering process). Even if nobody had that in mind probably we can mold wathever actually happened into this pattern.''
+
=== System behavorial specification ===
-
 
+
-
=== system level ===
+
-
 
+
-
==== system behavorial specification ====
+
# Write something with a chemical on a petri plate (like '''ETH''' for example)
# Write something with a chemical on a petri plate (like '''ETH''' for example)
Line 133: Line 122:
  C: no fluorescence
  C: no fluorescence
-
Considering the green and the red output as being separate, the logic mapping the input states to the output states is AND for the GFP and XOR for the RFP. Together they amount to a half adder logic.
 
-
The whole system is only considered at it's steady state, dynamic processes are only of minor interest.
+
An experiment in the lab could for instance look like this:
-
==== system structure ====
 
-
The whole process can be brought into a common input, logic, output form:
+
[[image:ETH_Pattern_Experiment.png|center|400px|pattern experiment]]
-
[light sensing]----->[      ]-->[reporter A]
 
-
                      [ logic ]
 
-
[chemical sensing]-->[      ]-->[reporter B]
 
-
==== system modeling ====
+
or like this:
-
according to the system structure, we first decompose our overall system into devices:
 
-
* xor gate
 
-
* and gate
 
-
* iptg sensing
 
-
* light sensing
 
-
* pops duplexer
 
-
for every device, we define the set of ode's (ordinary differential equations) to model the dynamic behavior. our interest is mainly the resulting steady state i.e. when the system reaches equilibra for the concerned species. this means that production and concumption rates are balanced for encymes, metabolites, mRNA etc.
 
-
===== modular simulation =====
+
[[image:ETH_Eth_Experiment.png|center|300px|eth experiment]]
-
modular modeling allows simulation at different detail levels, e.g.
+
-
* single devices, different variants of same device type, as a basis of decisionmaking
+
-
* reusable complexes reoccurring in different devices, like
+
-
** transcription
+
-
** translation
+
-
** encymatic reactions
+
-
* 2 or several connected devices &rarr; for instance to see which duplexer variant fits better with which AND/XOR gate variant
+
-
* overall system &rarr; to see if everything together still works
+
-
we have developed such a modular system in matlab:
+
Considering the green and the red output as being separate, the logic mapping the input states to the output states is AND for the GFP and XOR for the RFP. Together they amount to a half adder logic.
-
* the current implementation defines modules at device level (reusable complexes is a pending issue)
+
-
* modules mainly are characterized by number/kind of input and output and can be simulated with an appropriate simulation function
+
-
* input/output kind: we destiguish between ''concentration'' and ''rate (PoPS)''
+
-
* the modules have 1-2 inputs/ouptus, for instance 2 inputs/1 ouptut for AND/XOR gate
+
-
===== parameter estimation &amp; sensitivity analysis =====
+
The whole system is only considered at it's steady state, dynamic processes are only of minor interest.
-
it is known, and we have made the same (sometimes painful) experience that parameter estimation is the most difficult and laborious part. most parameters are simply not known, and finding an at least roughly appropriate value sometimes approaches playing dice.
+
-
one way to address this problem is sensitivity analysis: if we change some parameter, what effect has it on the behavior of the model? we therefore perturbed all parameters and observed the change of the module output. the sensitivity matrix S can be computed with the jacobian matrices of the ode's with respect to the states (concentrations) and parameters. to be able to compare the results, parameter values are normalized, that is, parameter changes are relative to the assumed parameter value.
+
=== System structure ===
-
sensitivity analysis enables to determine:
+
The whole process can be brought into a common input, logic, output form:
-
* if our model resembles the desired behavior
+
-
* unnecessary parameters (can be eliminated)
+
-
* contribution of parameters to output behavior (which are the most sensitive parameters)
+
-
* validation of ''expected'' sensitivity, e.g.
+
-
** changing the second input of the AND gate if the first is low should have little influence (and thus low sensitivity)
+
-
** correlations: if sensitivity on input is low, parameters correlating with (acting on) the input should be low, too
+
-
===== the role of modeling =====
+
  [light sensing]----->[       ]-->[reporter A]
-
 
+
                      [ logic ]
-
==== system deployment ====
+
[chemical sensing]-->[       ]-->[reporter B]
-
 
+
-
''distribution on the plasmids, strains''
+
-
 
+
-
==== system assembly procedure ====
+
-
 
+
-
==== system test procedure ====
+
-
 
+
-
==== system test results ====
+
-
 
+
-
=== device level ===
+
-
 
+
-
==== chemical sensing device ====
+
-
 
+
-
The chemical sensing device's PoPs output activity should be a monotonic function of the concentration of a certain substance in the cell's environment.
+
-
 
+
-
===== implementation alternatives =====
+
-
 
+
-
# Lactate lacI represses, IPTG induces ([http://partsregistry.org/Part:BBa_R0011 BBa_R0011] or [http://partsregistry.org/Part:BBa_R0010 BBa_R0010] )
+
-
# Tetracycline, TetR inhibitor, Tet inducer by inhibiting TetR (or aTc, it's analog)  ([http://partsregistry.org/Part:BBa_R0040 BBa_R0040])
+
-
# combination thereof ([http://partsregistry.org/Part:BBa_I13614 BBa_I13614] / [http://partsregistry.org/Part:BBa_I13617 BBa_13617] / [http://partsregistry.org/Part:BBa_I13623 BBa_I13623] / [http://partsregistry.org/Part:BBa_I13624 BBa_I13624] / [http://partsregistry.org/Part:BBa_I13627 BBa_I13627] / [http://partsregistry.org/Part:BBa_I13637 BBa_I13637] / [http://partsregistry.org/Part:BBa_I13653 BBa_I13653])
+
-
# simple sugar Arabinose ([http://partsregistry.org/Part:BBa_R0080 BBa_R0080])
+
-
 
+
-
I see the main difficulty in the spatial separation as the cells are growing in the petri dishes. since the inducers are water-soluble we would have to fix the chemicals onto the petri dish.
+
-
 
+
-
[[Image:ETH_IPTG_sensing_parts.png|center|600px|complete system based on alternative 1]]
+
-
 
+
-
===== assembly procedure =====
+
-
 
+
-
where we got it and link to theyer documentation
+
-
 
+
-
Progress:
+
-
 
+
-
;2006/10/03: Made LB-Agar plates with antibiotics
+
-
;2006/10/04: Transformed cells, plated them
+
-
;2006/10/05: Found plates empty after 18h on the table, put into incubator at 37°C
+
-
;2006/10/06: picked cultures onto fresh plates
+
-
 
+
-
===== test procedure =====
+
-
 
+
-
===== test results =====
+
-
 
+
-
==== light sensing device ====
+
-
 
+
-
The light sensing device's PoPs output activity should be a monotonic function of the light intensity the cell is subjected to.
+
-
 
+
-
===== implementation alternatives =====
+
-
 
+
-
show how the existing light sensing device fullfills our specifications.
+
-
 
+
-
[[Image:ETH light sensing parts.png|600px|center]]
+
-
 
+
-
====== remarks ======
+
-
*the light sensing device is ''low active'', that is: <br/>no light results in high PoPS output, exposure to light in low PoPS
+
-
* light sensing device taken from coliroid project, see
+
-
** [http://partsregistry.org/Featured_Parts:Light_Sensor light sensor device]
+
-
** [http://www.nature.com/nature/journal/v438/n7067/abs/nature04405.html Synthetic biology: Engineering Escherichia coli to see light] (Nature 2005)
+
-
 
+
-
===== assembly procedure =====
+
-
 
+
-
Olga got the strain '''RU1012(KmR)''' and the plasmids '''pCPH8(CmR)''' and '''pPL-PCB(AmpR)''' from Christopher Voigt &lt;cavoigt at picasso.ucsf.edu&gt [Engineering Escherichia Coli to see light; Nature vol. 438.].
+
-
 
+
-
A autonomous light sensing system can be obtained by cloning those two plasmids into the strain.
+
-
 
+
-
# plate RU1012 on LB+Km
+
-
# pick RU1012 cultures -> 5ml liquid culture (LB+Km)
+
-
#
+
-
## inoculate 200ml liquid culture
+
-
## grow for 3h
+
-
## wash twice (that means centrifuge, pipet off the liquid, dissolve in fresh LB?)
+
-
## make them competent
+
-
## make samples
+
-
## transform with both pCPH8 and pPL-PCB
+
-
## plate on
+
-
### LB+Cm
+
-
### LB+Ap
+
-
### LB+Ap+Cm
+
-
#
+
-
## if cultures survive on the Ap+Cm plate inoculate liquid culture 5ml LB+Km
+
-
## run tests
+
-
 
+
-
===== test procedure =====
+
-
 
+
-
# plate saturated liquid culture out on LB+envZ(15mg/50ml) plates.
+
-
# wrap one plate in something opaque, expose both plates to light at 37°C.
+
-
# the colonies on the wrapped plate should remain colorless, the ones exposed to light should become dark.
+
-
 
+
-
In the auxiliaries to the nature publication they state regarding theyer light source: ".1331 W/cm^2 from 620-680nm (active state of the phytochrome) and .0132 W/cm^2 from 715-755nm (inactive state of the phytochrome)". 715-755nm is near infrared, 620-680nm is red. The best matching commonly available light sources I can find would be [[http://en.wikipedia.org/wiki/Image:Red-YellowGreen-Blue_LED_spectra.gif| red LED]] [[http://en.wikipedia.org/wiki/Image:Spectra-Philips_32T8_natural_sunshine_fluorescent_light.jpg| white fluorescent light]] and [[http://en.wikipedia.org/wiki/Image:Spectrum_of_blue_sky.gif| indirect skylight]]. A simple battery driven LED light source should be trivial to assemble, appropriate to put in the incubator, but not very powerful. A compact fluorescent light would be more appropriate but harder to get.
+
-
 
+
-
===== assembly progress =====
+
-
 
+
-
;2006-10-16:
+
-
# poured LB+Km plates --[[User:Ajk|Ajk]]
+
-
# inoculated RU1012 on a LB+Km plate --[[User:Ajk|Ajk]]
+
-
;2006-10-17:
+
-
# picked a RU1012 colony and inoculated a 5ml liquid culture (LB+Km), plate in fridge --[[User:Ajk|Ajk]]
+
-
;2006-10-18:
+
-
# diluted the RU1012 liquid culture to 200ml and incubated it again --[[User:Ajk|Ajk]]
+
-
# it turned out that my interpretation of the lab procedure notes I got was too minimalistic, had to set up a new 3ml liquid LB culture from another colony on the plate made th 16th. --[[User:Ajk|Ajk]]
+
-
;2006-10-19:
+
-
# diluted yesterdays liquid culture to 2x50ml and grew it up to OD600=~.4 --[[User:Ajk|Ajk]]
+
-
# poured plates 2x Amp and 4x Cm+Amp --[[User:Ajk|Ajk]]
+
-
# washed the cultures twice with water, once with 10% glycerol --[[User:Ajk|Ajk]]
+
-
# one shot of electroporesis with both pPCB and pCPH8 and one control without plasmids, leftover RU1012 in -80°C --[[User:Ajk|Ajk]]
+
-
# plated on 4x Cm+Amp, 2x Cm, 2x Amp, control: 1x Cm, 1x Km leftover transformed cells in fridge --[[User:Ajk|Ajk]]
+
-
;2006-10-20:
+
-
# found colonies on all plates except the Cm control which is perfect!! picked one of the colonies from a Cm+Amp plate into a 5ml liquid LB+Km culture for testing. --[[User:Ajk|Ajk]]
+
-
# poured 2x LB+Km+envZ plates --[[User:Ajk|Ajk]]
+
-
;2006-10-21;
+
-
# plated 100ul liquid culture onto each of the LB+Km+envZ plates, wrapped one of them in tin foil and incubated both --[[User:Ajk|Ajk]]
+
-
;2006-10-23:
+
-
# mounted the plates with bacteria-side towards the light source to a white fluorescent lamp for approx 6h --[[User:Ajk|Ajk]]
+
-
 
+
-
===== test results =====
+
-
 
+
-
The unwrapped plate stayed clear throughout the tests. The wrapped plate was deeply blue when it was inspected at the end. Apperently there was enough light in the occasionally opened incubator (opaque door!) to inhibit lacZ expression. --[[User:Ajk|Ajk]] 11:29, 23 October 2006 (EDT)
+
-
==== logic (half adder) device ====
+
As it turns out, a [http://en.wikipedia.org/wiki/Full_adder half-adder] can be used as logic part. To understand what a half-adder is, let us first have a brief look at how we add numbers by hand.
-
Registry: [http://partsregistry.org/Part:BBa_J34000 BBa_J34000]
+
If we add two (large) numbers, we usually start with the least significant digits and add these two digits:
-
As stated in the [[#system behavorial specification]] the logic is made up of one AND and one XOR gate, which are each another device, plus two copy devices to replicate the inputs:
+
  1234
 +
+ 9684
 +
------
 +
  ....8
-
        [          ]------>[    ]
+
In the example, the digit's sum is smaller than 10. Thus, we do not need to keep the carry-over in mind (it is zero in this case). For the second digit, the sum is 11 and we have to memorize the carry 1 and so forth:
-
A >----[ 1:2 copy ]      [ AND ]----> X
+
-
        [          ]--, ,->[    ]
+
-
                      X
+
-
        [          ]--' '->[    ]
+
-
B >----[ 1:2 copy ]      [ XOR ]----> Y
+
-
        [          ]------>[    ]
+
-
==== reporters ====
+
  1234      1234      1234      1234
 +
+ 9684    + 9684    + 9684    + 9684
 +
    1                  1
 +
------    ------    ------    ------
 +
  ...18      ..918      .0918    10918
-
[[Image:ETH reporter.png|300px|center]]
+
In general, each addition step produces the sum, consisting of the current digit of the sum and the carry digit. The only difference between the first and the other steps are the ''inputs'': When the addition starts, there is no carry bit. The inputs are the two least significant digits of our two numbers. All further steps consider the two current digits of our numbers plus the carry-over from the previous step.
-
==== XOR gate ====
+
If you add two numbers with your pocket calculator or your computer, the underlying principle is the same. The only difference is that electronical devices normally work with binary numbers instead of decimal ones. The digits are then only 0 and 1 instead of 0,1,2,...,8, and 9. A half-adder device does the first addition step in an electronical adder;
 +
it can add two binary input values, the least significant bits of the two numbers. It has also two binary outputs, the sum value S and a carry out C. Two half-adders can be combined to a full-adder, which can be used for the computation of the other (higher valued) bits.
-
The XOR gate's PoPs output activity should be correlated to the PoPs input activity as shown in the picture:
+
A half adder can be constructed from two simplier well-known electronical devices: an XOR gate (the sum value S) and an AND gate (the carry out):
-
  input A ^
+
    A               A
-
          | H  D  L
+
    ^              ^
-
          | D  D  D
+
  1| 1 0        1 | 0 1
-
          | L  D  H
+
  0| 0 1        0 | 0 0
-
          +--------->
+
    +-----> B      +----> B
-
            input B
+
      0 1            0 1
   
   
-
  output: High, Low, Dont care
+
  S = A XOR B    C = A AND B
-
===== implementation alternatives =====
+
The sum output S and the carry out C are exactly the values needed for our system. The resulting system architecture is:
-
Part to be used in the prototype system: [http://partsregistry.org/Part:BBa_J34200 BBa_J34200]
+
[[image:ETH_System_Architecture.png|center| |system architecture]]
-
[[Image:ETH xor.png|600px|center]]
+
=== System modeling ===
-
===== modeling =====
+
According to the system structure, we first decompose our overall system into devices:
 +
* [[ETH2006_xor| XOR Gate]]
 +
* [[ETH2006_and| AND Gate]]
 +
* [[ETH2006_iptg| IPTG (Chemical) Sensing]]
 +
* [[ETH2006_light| Light Sensing]]
 +
* [[ETH2006_copy| PoPS Duplexer]]
 +
The dynamic behavior of each device was modeled by a set of ODEs (ordinary differential equations). The steady-state we are interested in was determined by simulating the system until all the states (concentrations and rates) settled down to rather constant values. This method is not mathematically sound as systems might settle to different steady-states depending on the initial conditions, or the system might regain momentum after almost, but no completely, settling down. The first concern can be adressed by running simulations starting from varying initial conditions and verifying that there is only a single steady-state, the second issue is rather theoretical as this kind of behaviour is rarely found in real systems.
-
===== assembly procedure =====
+
==== Modular simulation ====
 +
Modular modeling allows simulation at different detail levels, e.g.
-
===== test procedure =====
+
* reusable complexes reoccurring in different devices, like
 +
** transcription
 +
** translation
 +
** encymatic reactions
 +
* single devices, different variants of same device type, as a basis of decisionmaking
 +
* 2 or several connected devices &rarr; for instance to see which duplexer variant fits better with which AND/XOR gate variant
 +
* overall system &rarr; to see if everything together still works
-
===== test results =====
+
We have developed such a modular system in MATLAB:
-
 
+
* the current implementation defines modules at device level (reusable complexes is a pending issue)
-
==== AND gate ====
+
* modules mainly are characterized by number/kind of input and output and can be simulated with an appropriate simulation function
-
 
+
* input/output kind: we destiguish between ''concentration'' and ''rate (PoPS)''
-
The AND gate's PoPs output activity should be correlated to the PoPs input activity as shown in the picture:
+
* the modules have 1-2 inputs/ouptus, for instance 2 inputs/1 ouptut for AND/XOR gate
-
 
+
-
  input A ^
+
-
          | L  D  H
+
-
          | D  D  D
+
-
          | L  D  L
+
-
          +--------->
+
-
            input B
+
-
+
-
  output: High, Low, Dont care
+
-
 
+
-
===== implementation alternatives =====
+
-
 
+
-
Part to be used in the prototype system: [http://partsregistry.org/Part:BBa_J34100 BBa_J34100]
+
-
 
+
-
[[Image:ETH and trna parts.png|600px|center]]
+
-
 
+
-
===== modeling =====
+
-
 
+
-
===== assembly procedure =====
+
-
 
+
-
===== test procedure =====
+
-
 
+
-
===== test results =====
+
-
 
+
-
==== PoPs duplexer device ====
+
-
 
+
-
This device has two PoPs outputs which should in terms of activity be copies of the input.
+
-
 
+
-
===== implementation alternatives =====
+
-
 
+
-
<table align="center" border="1"><tr><td>
+
-
[[Image:ETH duplexer a1.png|center|600px]]
+
-
</td></tr></table>
+
-
 
+
-
<table align="center" border="1"><tr><td>
+
-
[[Image:ETH duplexer a2.png|center|400px]]
+
-
</td></tr></table>
+
-
 
+
-
<table align="center" border="1"><tr><td>
+
-
[[Image:ETH duplexer a3.png|center|400px]]
+
-
</td></tr></table>
+
-
 
+
-
===== modeling =====
+
-
 
+
-
===== assembly procedure =====
+
-
 
+
-
===== test procedure =====
+
-
 
+
-
===== test results =====
+
-
=== parts level ===
+
==== Parameter estimation &amp; sensitivity analysis ====
 +
It is known, and we have made the same (sometimes painful) experience that parameter estimation is the most difficult and laborious part of modeling. Most parameters are simply not known, and estimating them sometimes approaches playing dice.
-
for every part we use:
+
One way to address this problem is sensitivity analysis: if we change some parameter, what effect has it on the behavior of the model? The sensitivity matrix S at steady state can be computed with the jacobian matrices of the ODEs with respect to the states (concentrations) and parameters. To be able to compare the results, parameter and state values are normalized, that is, the changes are expressed relative to the unperturbed value.
-
* DNA sequence
+
-
* where we got it from
+
-
(links to the registry)
+
Sensitivity analysis gives clues about
 +
* whether our models behaviour resembles the desired behavior
 +
* which parameters have hardly any effect on the relevant states (they don't have to be considered further and can be fixed to some arbitary value)
 +
* which parameters influence the relevant states significantly and thus deserve further attention
-
''
+
==== The role of modeling ====
-
Maybe this could mostly be a hierarchy of links to the registry because it's preferable to have as much documentation in the registry as possible anyway. This is nice because it emphases our incredibly systematic engineering approach and documents the processes too which could also serve for coordination of the work in progress.
+
-
''
+
 +
With all the uncertainties and difficulties (such as parameter estimation) the question might raise whether modeling is worthwile at all. Our answer is yes, but one has to think of modeling as an integrated process. It should not be seen as a precursor phase of experiment and synthesis, it is part of the design cycle.
 +
After brainstorming and selecting a project, we started with abstract models of the necessary devices on a very schematic level. For instance, we came up with different theoretical models for the XOR and AND gates - without considering biology too much at this early stage. Then we looked for biological systems which resembled one of our models - the literature research was to some extent model driven. We refined the remaining models and simulated the devices for the first time - here, the ODEs and MATLAB joined in. These models helped a lot in deciding which gate variants should be prefered. As we gained knowledge about possible biological implementations, the models where constantly adapted.
 +
Important is also the interaction of modeling and experiments. Modeling and sensitivity analysis can suggest where observed difficulties arise and thus guide the experiments that pin down the problem, eventually leading to a solution.
 +
=== System deployment ===
-
=== modeling ===
+
We will assemble the AND gate plus the XOR gate on two seperate plasmids (pACYC177 and pACYC184 from NEB). In order for our system to be tested we need a special strain expressing lacI and tetR. In our case we plan to use strain DH5αZ1.
-
''The contents of this section should be placed at the appropriate places in the design process section above and the rest moved to an external page.
+
=== System test procedure ===
-
''
+
-
====Matlab scripts for ODE simulation====
+
-
===== modular scripts=====
+
-
* contains a <code>createXXX()</code> script for each module. the created module contains
+
-
** function handles for reaction rates: '''r'''
+
-
** stoichiometric matrix: '''N'''
+
-
** constants (inside of the function handles)
+
-
** state (concentration) changes (the ode dy values) can be computed by: '''N''' &middot; '''r'''
+
-
* modules can be ''connected'' using the <code>createInOutConnector()</code> script. the result is again a module, consisting of the connected basic modules.
+
-
* <code>sim_1_1</code> and <code>sim_1_2</code> can be used to simulate modules with 1 input/1 output and 1 input/2 outputs respectively.
+
-
* both ''basic modules'' and ''compound (connected) modules'' can be simulated
+
-
* <code>simulations</code> contains the first samples, simulating
+
-
** ''XOR'' &rarr; [[ETH_Sim_Mod_Xor|simulation results]] / [[ETH_Sens_Xor|sensitivity analysis]]
+
-
** ''AND-tRNA'' &rarr; [[ETH_Sim_Mod_AND_tRNA|simulation results]] / [[ETH_Sens_And|sensitivity analysis]]
+
-
** ''IPTG Sensing'' &rarr;[[ETH_Sim_Mod_IPTG|simulation results]]
+
-
** ''PoPS Duplexer'' &rarr;[[ETH_Sim_Mod_Dupl|simulation results]]
+
-
** ''Compound module'': IPTG Sensing &rarr; PoPS Duplexer &rarr;[[ETH_Sim_Mod_IPTG_Dupl|simulation results]]
+
-
* scripts: [http://csb.inf.ethz.ch/igem-2006/matlab_modules.zip matlab_modules.zip] (&lt;0.1M)
+
-
===== old scripts =====
+
In order to test the functionality of the gates experimentally, we decided to mimic the signal inputs via two well controllable inducible promoters. This will help us to test the gates under different input conditions and help in determining the limits of our system. As inducible promoters we chose the lactose-inducible promoter (Plac) and the tetracycline-inducible promoter (Ptet). Both promoters are well described in literature and also tested extensively. However, in order to test our system with those two promoters, we will need to use a special e. coli strain, designed our whose genome encodes for the tetR and lacI gene (e.g. DH5αZ1 strain). The two promoters are flanked by unique restriction sites, so that once the gates are tested, these promoters can be easily exchanged by any promoter of interest. Consequently, our gates could be coupled to a number of other promoters that respond to a desired input signal.
-
unzip the file, each zip file contains 2 files: <code>sim_xxx.m</code> and <code>ode_xxx.m</code>.
+
-
: <code>ode_xxx.m</code> : contains the differential equations, i.e. the model
+
-
: <code>sim_xxx.m</code> : sets the parameters, calls the simulator and plots the result (this is the one to run, but the other is also needed).
+
-
* [http://csb.inf.ethz.ch/igem-2006/matlab_sim_and1.zip matlab_sim_and1.zip] (&lt;0.1M) &rarr;[[ETH_Sim_And1|simulation results]] &rarr; ''abandoned''
+
-
* [http://csb.inf.ethz.ch/igem-2006/matlab_sim_and2.zip matlab_sim_and2.zip] (&lt;0.1M) &rarr;[[ETH_Sim_And2|simulation results]] &rarr; the pursued version '''A'''
+
-
* [http://csb.inf.ethz.ch/igem-2006/matlab_sim_and3.zip matlab_sim_and3.zip] (&lt;0.1M) &rarr;[[ETH_Sim_And3|simulation results]] &rarr; the pursued version '''B'''
+
-
* [http://csb.inf.ethz.ch/igem-2006/matlab_sim_and4.zip matlab_sim_and4.zip] (&lt;0.1M) &rarr;[[ETH_Sim_And4|simulation results]] &rarr; ''abandoned''
+
-
As a result of the meeting on August 17, we will from now on concentrate on the AND versions 2 and 3.
+
-
* [http://csb.inf.ethz.ch/igem-2006/matlab_sim_xor1.zip matlab_sim_xor1.zip] (&lt;0.1M) &rarr;[[ETH_Sim_Xor1|simulation results]] &rarr; the only pursued version
+
-
* [http://www.tik.ee.ethz.ch/~brockho/igem2006/matlab_sim_xor2.zip matlab_sim_xor2.zip] (&lt;0.1M) &rarr;[[ETH_Sim_Xor2|simulation results]] &rarr; ''abandoned''
+
-
* [http://www.tik.ee.ethz.ch/~brockho/igem2006/matlab_sim_xor3.zip matlab_sim_xor3.zip] (&lt;0.1M) &rarr;[[ETH_Sim_Xor3|simulation results]] &rarr; ''abandoned''
+
-
Sensoring
+
-
* [http://csb.inf.ethz.ch/igem-2006/matlab_sim_iptg.zip matlab_sim_iptg.zip] (&lt;0.2M) &rarr;[[IPTG_1|simulation results]]
+
== [[ETH_2006_Docs_And_Links|Useful Documents & Links]] ==
== [[ETH_2006_Docs_And_Links|Useful Documents & Links]] ==
[[ETH_2006_Docs_And_Links|see here]]
[[ETH_2006_Docs_And_Links|see here]]

Latest revision as of 10:15, 19 February 2007

ETH Team 2006


standing (L-R): Marco, Alexandra, Arthur, Olga, Dimo, Marko, Robert; in front (L-R):

Franz, Michael



>>>>>>>>>>>> [http://www.zfranz.ch.vu/iGEM/ETH-iGEM-%202006-%20presentation.pdf Download ETH iGEM presentation 2006 as PDF] <<<<<<<<<<<<

>>>>>>>>>>>>> [http://www.fotofranz.ch.vu/igem See pictures of the iGEM Jamboree in Boston] <<<<<<<<<<<<<

>>>>>>>>>>>>> [http://ftd.de/forschung/154366.html Read article in Financial Times Deutschland: "Eins plus eins gleich Grün" (german only)] <<<<<<<<<<<<<



Adding numbers is easy, isn't it? 1234 plus 5678, for example, is 6912. But how do engineers add binary numbers instead of decimal ones? And how, in the end, can this be done by a living cell? We, the members of the ETH Zurich 2006 iGEM team, are currently working on these questions, whereas the last one seems to be not trivial.

What the addition of numbers has to do with pattern recognition, how our model and the mathematical analysis look like, and how the experiments are realized will be explained on these wiki pages. We wish you a pleasant time with our pages. Enjoy it!



Contents

Coordination

TODOs

Modeling

  • Parts Model the whole System with Sensing, PoPS duplexer and Half adder (Marco and Franz) -- probably not
  • Model whether a different strength of input is necessary for the AND and XOR Gates (Marco)
  • Finish modeling the second AND Gate and find a biological way to implement it and write the DNA and order it (Marco and Robert) -- probably not
  • Bring model parameter up to date & update simulation results/senisitivity analysis (Marco)

Lab

Responsible: Robert for the preparatory experiments, Olga for the assembly and testing of the gates.

  • Read the literature on the XOR and AND Gates, check carefully for strains needed and compatibility of the parts (Who?)
  • Prepare a protocol for parts assembly (Olga)

Documentation

Responsible: Alexandra for the registry, Arthur for the Wiki.

  • enter lab experience report to registry
  • Make a drawing of the DNA to have an overview of which parts will be consecutively on the same DNA piece (Alexandra) (this is part of the #System deployment section --Ajk)
  • Revise images & graphics (Marco):
    • correct errors
    • unify symbols
    • extract missing ones from slides, see here

Presentation/Poster and PR

Responsible: Franz for the presentation, Dimo for PR/Poster

  • design and write the final presentation (with LaTex beamer class) IN PROCESS

Structure:

1. Introduction of the team and ETH Zurich and of the half-adder idea - about 3 min

2. Engineering Part - about 9 min

3. Biological part - about 8 min

(4.) Questions from the audience - 10min (I think, Marco (modelling) and Marko (biology) should also be ready to answer questions)

Schedule

Available as Google Calendar: [http://www.google.com/calendar/render?cid=pqi8ni6gnfj5r3o0np0h4smrr4@group.calendar.google.com iGEM 2006 ETH Zurich]

past
see here
16.11.
Jamboree wrap up (with T-Shirts!), 5pm at CNB seminar room

Team members

Michael Friedmann Dimo Brockhoff Franz Zürcher
Olga Nikolayeva Alexandra Choutko Arthur Korn
Robert Schütz Marco Terzer Marko Jovanovic

Finding a Project

Finding a project to work on is not easy. Not because it is hard to find interesting projects but because there are too many of them. In the first weeks we did a lot of brainstorming including thoughts about the projects' feasibility. You can find a list of ideas here.

During the weeks, we decided to split up the whole team into two groups. Each group proposed a project after these two weeks of separated work:

After the proposals, we decided to further pursue the half adder project idea.

Design process

System behavorial specification

  1. Write something with a chemical on a petri plate (like ETH for example)
  2. Let Bacteria grow uniformly on the plate
  3. Expose the plate to a picture (black and white) of the same pattern
  4. Result:
    • Bacteria gets green when pattern on the plate and picture match (light and chemical)
    • Bacteria does not express fluorescent protein when pattern on the plate and picture match (no light and no chemical)
    • Bacteria gets red when pattern on the plate and picture do not match
           light   no light
chemical     A         B
no chemical  B         C

The outputs can be reported by fluorescent proteins, the mapping of states to outputs is arbitary, our choice is:

A: green
B: red
C: no fluorescence


An experiment in the lab could for instance look like this:


pattern experiment


or like this:


eth experiment

Considering the green and the red output as being separate, the logic mapping the input states to the output states is AND for the GFP and XOR for the RFP. Together they amount to a half adder logic.

The whole system is only considered at it's steady state, dynamic processes are only of minor interest.

System structure

The whole process can be brought into a common input, logic, output form:

[light sensing]----->[       ]-->[reporter A]
                     [ logic ]
[chemical sensing]-->[       ]-->[reporter B]

As it turns out, a [http://en.wikipedia.org/wiki/Full_adder half-adder] can be used as logic part. To understand what a half-adder is, let us first have a brief look at how we add numbers by hand.

If we add two (large) numbers, we usually start with the least significant digits and add these two digits:

  1234
+ 9684
------
 ....8

In the example, the digit's sum is smaller than 10. Thus, we do not need to keep the carry-over in mind (it is zero in this case). For the second digit, the sum is 11 and we have to memorize the carry 1 and so forth:

  1234       1234       1234      1234
+ 9684     + 9684     + 9684    + 9684
   1                   1
------     ------     ------    ------
 ...18      ..918      .0918     10918

In general, each addition step produces the sum, consisting of the current digit of the sum and the carry digit. The only difference between the first and the other steps are the inputs: When the addition starts, there is no carry bit. The inputs are the two least significant digits of our two numbers. All further steps consider the two current digits of our numbers plus the carry-over from the previous step.

If you add two numbers with your pocket calculator or your computer, the underlying principle is the same. The only difference is that electronical devices normally work with binary numbers instead of decimal ones. The digits are then only 0 and 1 instead of 0,1,2,...,8, and 9. A half-adder device does the first addition step in an electronical adder; it can add two binary input values, the least significant bits of the two numbers. It has also two binary outputs, the sum value S and a carry out C. Two half-adders can be combined to a full-adder, which can be used for the computation of the other (higher valued) bits.

A half adder can be constructed from two simplier well-known electronical devices: an XOR gate (the sum value S) and an AND gate (the carry out):

   A               A
   ^               ^
  1| 1 0         1 | 0 1
  0| 0 1         0 | 0 0
   +-----> B       +----> B
     0 1             0 1

  S = A XOR B    C = A AND B

The sum output S and the carry out C are exactly the values needed for our system. The resulting system architecture is:

system architecture

System modeling

According to the system structure, we first decompose our overall system into devices:

The dynamic behavior of each device was modeled by a set of ODEs (ordinary differential equations). The steady-state we are interested in was determined by simulating the system until all the states (concentrations and rates) settled down to rather constant values. This method is not mathematically sound as systems might settle to different steady-states depending on the initial conditions, or the system might regain momentum after almost, but no completely, settling down. The first concern can be adressed by running simulations starting from varying initial conditions and verifying that there is only a single steady-state, the second issue is rather theoretical as this kind of behaviour is rarely found in real systems.

Modular simulation

Modular modeling allows simulation at different detail levels, e.g.

  • reusable complexes reoccurring in different devices, like
    • transcription
    • translation
    • encymatic reactions
  • single devices, different variants of same device type, as a basis of decisionmaking
  • 2 or several connected devices → for instance to see which duplexer variant fits better with which AND/XOR gate variant
  • overall system → to see if everything together still works

We have developed such a modular system in MATLAB:

  • the current implementation defines modules at device level (reusable complexes is a pending issue)
  • modules mainly are characterized by number/kind of input and output and can be simulated with an appropriate simulation function
  • input/output kind: we destiguish between concentration and rate (PoPS)
  • the modules have 1-2 inputs/ouptus, for instance 2 inputs/1 ouptut for AND/XOR gate

Parameter estimation & sensitivity analysis

It is known, and we have made the same (sometimes painful) experience that parameter estimation is the most difficult and laborious part of modeling. Most parameters are simply not known, and estimating them sometimes approaches playing dice.

One way to address this problem is sensitivity analysis: if we change some parameter, what effect has it on the behavior of the model? The sensitivity matrix S at steady state can be computed with the jacobian matrices of the ODEs with respect to the states (concentrations) and parameters. To be able to compare the results, parameter and state values are normalized, that is, the changes are expressed relative to the unperturbed value.

Sensitivity analysis gives clues about

  • whether our models behaviour resembles the desired behavior
  • which parameters have hardly any effect on the relevant states (they don't have to be considered further and can be fixed to some arbitary value)
  • which parameters influence the relevant states significantly and thus deserve further attention

The role of modeling

With all the uncertainties and difficulties (such as parameter estimation) the question might raise whether modeling is worthwile at all. Our answer is yes, but one has to think of modeling as an integrated process. It should not be seen as a precursor phase of experiment and synthesis, it is part of the design cycle.

After brainstorming and selecting a project, we started with abstract models of the necessary devices on a very schematic level. For instance, we came up with different theoretical models for the XOR and AND gates - without considering biology too much at this early stage. Then we looked for biological systems which resembled one of our models - the literature research was to some extent model driven. We refined the remaining models and simulated the devices for the first time - here, the ODEs and MATLAB joined in. These models helped a lot in deciding which gate variants should be prefered. As we gained knowledge about possible biological implementations, the models where constantly adapted.

Important is also the interaction of modeling and experiments. Modeling and sensitivity analysis can suggest where observed difficulties arise and thus guide the experiments that pin down the problem, eventually leading to a solution.

System deployment

We will assemble the AND gate plus the XOR gate on two seperate plasmids (pACYC177 and pACYC184 from NEB). In order for our system to be tested we need a special strain expressing lacI and tetR. In our case we plan to use strain DH5αZ1.

System test procedure

In order to test the functionality of the gates experimentally, we decided to mimic the signal inputs via two well controllable inducible promoters. This will help us to test the gates under different input conditions and help in determining the limits of our system. As inducible promoters we chose the lactose-inducible promoter (Plac) and the tetracycline-inducible promoter (Ptet). Both promoters are well described in literature and also tested extensively. However, in order to test our system with those two promoters, we will need to use a special e. coli strain, designed our whose genome encodes for the tetR and lacI gene (e.g. DH5αZ1 strain). The two promoters are flanked by unique restriction sites, so that once the gates are tested, these promoters can be easily exchanged by any promoter of interest. Consequently, our gates could be coupled to a number of other promoters that respond to a desired input signal.

Useful Documents & Links

see here

Personal tools
Past/present/future years