Team:ETH Zurich/project/overview/summarysimple

From 2014.igem.org

(Difference between revisions)
(Created page with "700px You might be wondering where these patterns on snea snail shells come from. What if they would come from a simple rule, followed by all cells...")
(Mosaicoli : from simplicity to complexity with biologic gates)
 
(95 intermediate revisions not shown)
Line 1: Line 1:
-
[[File:ETH Zurich snails.jpg|700px]]
+
<center>
-
You might be wondering where these patterns on snea snail shells come from. What if they would come from a simple rule, followed by all cells on the shell ?
+
== Mosai''coli'' : from simplicity to complexity with bio''logic'' gates ==
-
[[File:ETH Zurich Rule 90.PNG|700px]]
+
</center>
-
    <html>
+
[[File:ETH Zurich snails.jpg|center|400px|thumb|'''Figure 1 A''' Textile Cone Snail ([http://en.wikipedia.org/wiki/Conus_textile ''Conus textile''])<br/>Location: Cod Hole, Great Barrier Reef, Australia<br/>[http://commons.wikimedia.org/wiki/File:Textile_cone.JPG Photographer: Richard Ling (CC-BY-SA 3.0)]]]
-
    <head>
+
-
    <title>Automaton Explorer</title>
+
-
    <script type="text/javascript" src="../../protovis-d3.2.js"></script>
+
-
    <script type="text/javascript" src="../jquery-1.4.2.min.js"></script>
+
-
    <script type="text/javascript" src="jquery-ui-1.8rc3.custom.min.js"></script>
+
-
    <script type="text/javascript" src="cell.js"></script>
+
-
    <link type="text/css" href="ui-lightness/jquery-ui-1.8rc3.custom.css" rel="stylesheet"/>
+
-
    <link type="text/css" href="../../tests/style.css" rel="stylesheet"/>
+
-
    <style type="text/css">
+
-
    .ui-slider {
+
-
    font-size: 10px;
+
-
    width: 300px;
+
-
    margin-top: 5px;
+
-
    }
+
-
    sup, sub {
+
-
    line-height: 0;
+
-
    }
+
-
    .ui-state-focus {
+
-
    outline: none;
+
-
    }
+
-
    #slider {
+
-
    width: 300px;
+
-
    display: inline-block;
+
-
    margin-left: 10px;
+
-
    margin-right: 10px;
+
-
    }
+
-
    </style>
+
-
    </head>
+
-
    <body>
+
-
    <h3>Automaton Explorer</h3>
+
-
    <div style="width:8in;">
+
-
    rule: <span id="slider"></span><span id="rule">30</span>
+
-
    <span style="float:right;">
+
-
    start: <input type="radio" checked id="point" name="start" value="point">
+
-
    <label for="point">point</label>
+
-
    <input type="radio" id="random" name="start" value="random">
+
-
    <label for="random">random</label>
+
-
    </span>
+
-
    </div><p>
+
-
    <script type="text/javascript+protovis">
+
-
    var h = 128,
+
-
    w = h << 1,
+
-
    start = "point",
+
-
    rule = 30;
+
-
    var vis = new pv.Panel()
+
-
    .width(w * 3)
+
-
    .height(h * 3)
+
-
    .top(40);
+
-
    vis.add(pv.Panel)
+
-
    .data(pv.range(8))
+
-
    .right(function(i) (i + .5) * w * 3 / 8)
+
-
    .top(-35)
+
-
    .event("mousedown", function(i) ($("#rule").html(rule ^= 1 << i), vis))
+
-
    .add(pv.Bar)
+
-
    .top(10)
+
-
    .right(-5)
+
-
    .width(10)
+
-
    .height(10)
+
-
    .title(function(j, i) "Toggle bit " + i + ".")
+
-
    .strokeStyle("#bbb")
+
-
    .fillStyle(function(i) rule >> i & 1 ? "#000" : "#fff")
+
-
    .add(pv.Bar)
+
-
    .data(pv.range(3))
+
-
    .top(0)
+
-
    .right(function(i) i * 10 - 15)
+
-
    .fillStyle(function(i, j) j >> i & 1 ? "#000" : "#fff");
+
-
    vis.add(pv.Image)
+
-
    .def("cell", cell)
+
-
    .imageWidth(w)
+
-
    .imageHeight(h)
+
-
    .image(pv.colors("#fff", "#000").by(function(x, y) this.cell()[y][x]));
+
-
    vis.render();
+
-
    $(slider).slider({
+
-
    min: 1, value: 30, max: 255, slide: function(e, ui) {
+
-
    $("#rule").html(rule = ui.value);
+
-
    vis.render();
+
-
    }
+
-
    });
+
-
    $([point, random]).change(function() {
+
-
    start = this.value;
+
-
    vis.render();
+
-
    });
+
-
    </script>
+
-
    <p>From <a href="http://mathworld.wolfram.com/CellularAutomaton.html">MathWorld</a>:
+
-
    "A cellular automaton is a collection of 'colored' cells on a grid of
+
-
    specified shape that evolves through a number of discrete time steps
+
-
    according to a set of rules based on the states of neighboring cells." This
+
-
    example explores binary, nearest-neighbor, one-dimensional automata, of
+
-
    which there are 256 (2<sup>8</sup>) possible rules. The eight possible
+
-
    outcomes for the current rule are shown across the top; click to toggle the
+
-
    selected bit.
+
-
    </body>
+
-
    </html>
+
-
Gitorious
+
What if these surprising patterns on sea snail shells would come from a simple rule, followed by all subsection on the shell?
-
    Activities
+
For example <html><a href="</html>#cont<html>" class="circled scrolly" style="text-decoration:none;">in the picture below</a></html>, you can see that a similar pattern can be produced by already a simple rule, in which every cell decides on its state (white or green) depending on the state of the 2 cells above it. This rule is called an XOR gate: If one of the two cells above is ON, the cell below them is ON, if both cells above are ON or if both cells above are OFF, the cell below is OFF.
-
    Projects
+
<br/>
-
    Teams
+
<br/>
-
    About
+
-
<script>
+
As a matter of fact, many of the complex patterns you can see in nature come from simple rules. It is the case for hurricanes, flocks of birds, neural networks etc. We call this phenomenon emergence. Emergent phenomena are not predictable from the initial conditions and this is why they surprise us. If you are interested in emergence of complexity in general, you can read more about the [[Team:ETH_Zurich/project/background|background]] of our project.  
-
    /** Depends on globals: rule, w, h, mode. */
+
<br/>
-
    function cell() {
+
<br/>
-
    var d = pv.range(h).map(function() {
+
 
-
    return pv.range(w).map(function() { return 0; });
+
As a team, we are driven by our fascination for the emergence of complexity and try to make these snail shells patterns, called Sierpinski triangles, emerge on our own grid of bacteria. To achieve this goal we encode the rule that leads to emergence of these patterns in the DNA of these bacteria. This approach, defined Synthetic Biology, is the application of engineering principles to the fundamental components of biology. Here we are using [[Team:ETH_Zurich/project/infopro|information processing principles]] in order to control the path of the information through all cells.
-
    }),
+
<br/>
-
    r = pv.range(8).map(function(i) {
+
<br/>
-
    return rule >> i & 1;
+
 
-
    });
+
This way, Mosaicoli not only endeavors to learn more about how a complex pattern can emerge from simple rules, but also develops new tools for controlling communication between cells and implementing reliable biological circuits. For a more detailed description of our goals, go to the [[Team:ETH_Zurich/project/goals| Goals]] section. For an outlook on the possible applications of our project, jump directly to [[Team:ETH_Zurich/project/applications|Applications and outlook]].
-
    if (start == "point") {
+
-
    d[0][w >> 1] = 1;
+
-
    } else {
+
-
    for (var x = 0; x < w; x++) {
+
-
    d[0][x] = cell.random(x);
+
-
    }
+
-
    }
+
-
    for (var y = 1; y < h; y++) {
+
-
    var p = d[y - 1], c = d[y];
+
-
    for (var x = 0; x < w; x++) {
+
-
    c[x] = r[p[x - 1] << 2 | p[x] << 1 | p[x + 1]];
+
-
    }
+
-
    }
+
-
    return d;
+
-
    }
+
-
    cell.$random = {};
+
-
    /** Caches random output to make exploration deterministic. */
+
-
    cell.random = function(i) {
+
-
    return i in cell.$random ? cell.$random[i]
+
-
    : (cell.$random[i] = Math.random() < .5 ? 0 : 1);
+
-
    };
+
-
</script>
+

Latest revision as of 00:51, 18 October 2014

Mosaicoli : from simplicity to complexity with biologic gates

Figure 1 A Textile Cone Snail (Conus textile)
Location: Cod Hole, Great Barrier Reef, Australia
Photographer: Richard Ling (CC-BY-SA 3.0)


What if these surprising patterns on sea snail shells would come from a simple rule, followed by all subsection on the shell?

For example in the picture below, you can see that a similar pattern can be produced by already a simple rule, in which every cell decides on its state (white or green) depending on the state of the 2 cells above it. This rule is called an XOR gate: If one of the two cells above is ON, the cell below them is ON, if both cells above are ON or if both cells above are OFF, the cell below is OFF.

As a matter of fact, many of the complex patterns you can see in nature come from simple rules. It is the case for hurricanes, flocks of birds, neural networks etc. We call this phenomenon emergence. Emergent phenomena are not predictable from the initial conditions and this is why they surprise us. If you are interested in emergence of complexity in general, you can read more about the background of our project.

As a team, we are driven by our fascination for the emergence of complexity and try to make these snail shells patterns, called Sierpinski triangles, emerge on our own grid of bacteria. To achieve this goal we encode the rule that leads to emergence of these patterns in the DNA of these bacteria. This approach, defined Synthetic Biology, is the application of engineering principles to the fundamental components of biology. Here we are using information processing principles in order to control the path of the information through all cells.

This way, Mosaicoli not only endeavors to learn more about how a complex pattern can emerge from simple rules, but also develops new tools for controlling communication between cells and implementing reliable biological circuits. For a more detailed description of our goals, go to the Goals section. For an outlook on the possible applications of our project, jump directly to Applications and outlook.