573 lines
29 KiB
HTML
573 lines
29 KiB
HTML
<!doctype html>
|
||
<html>
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||
|
||
<title>
|
||
Chemodiversity: A short overview of this project
|
||
</title>
|
||
|
||
<link rel="stylesheet" href="/reveal.js/css/reveal.css">
|
||
|
||
|
||
<!-- My solarized Theme (derived from reveal's solarized.css) -->
|
||
<link rel="stylesheet" href="/css/solarized_plus.css">
|
||
|
||
|
||
|
||
<!-- Printing and PDF exports -->
|
||
<script>
|
||
var link = document.createElement( 'link' );
|
||
link.rel = 'stylesheet';
|
||
link.type = 'text/css';
|
||
link.href = window.location.search.match( /print-pdf/gi ) ? '/reveal.js/css/print/pdf.css' : '/reveal.js/css/print/paper.css';
|
||
document.getElementsByTagName( 'head' )[0].appendChild( link );
|
||
|
||
</script>
|
||
|
||
|
||
<!-- MathJax config -->
|
||
<script type="text/x-mathjax-config">
|
||
MathJax.Hub.Config({
|
||
jax: ["input/TeX","output/HTML-CSS"],
|
||
TeX: {
|
||
Macros: {
|
||
R: "{\\mathrm{{I}\\kern-.15em{R}}}",
|
||
laplace: "{\\Delta}",
|
||
grad: "{\\nabla}",
|
||
T: "^{\\mathsf{T}}",
|
||
abs: ['\\left\\lvert #1 \\right\\rvert', 1],
|
||
norm: ['\\left\\Vert #1 \\right\\Vert', 1],
|
||
iprod: ['\\left\\langle #1 \\right\\rangle', 1],
|
||
vec: ['\\mathbf{#1}', 1],
|
||
mat: ['\\mathbf{#1}', 1],
|
||
set: ['\\mathcal{#1}', 1],
|
||
func: ['\\mathrm{#1}', 1],
|
||
trans: ['{#1}\\mkern-1mu^{\\mathsf{T}}', 1],
|
||
matrix: ['\\begin{bmatrix} #1 \\end{bmatrix}', 1],
|
||
vector: ['\\begin{pmatrix} #1 \\end{pmatrix}', 1],
|
||
of: ['\\mkern{-2mu}\\left( #1 \\right\)', 1]
|
||
}
|
||
},
|
||
"HTML-CSS": {
|
||
styles: {
|
||
".reveal section .MathJax_Display": { margin: "0.5em 0em" }
|
||
},
|
||
scale: 95
|
||
}
|
||
});
|
||
</script>
|
||
|
||
</head>
|
||
|
||
<body>
|
||
|
||
|
||
<!-- here come the slides -->
|
||
<div class="reveal">
|
||
<div class="slides">
|
||
|
||
|
||
<!-- Title slide -->
|
||
<section class="white-on-blue">
|
||
<div class="title"> Chemodiversity </div>
|
||
<div class="subtitle"> A short overview of this project </div>
|
||
<div class="author"> Stefan Dresselhaus </div>
|
||
<div class="affiliation"> Theoretic Biology Group<br> Bielefeld University </div>
|
||
</section>
|
||
|
||
|
||
<!-- Table of Contents -->
|
||
|
||
|
||
<!-- all the slides from markdown document: DO NOT INDENT THE body LINE!!! -->
|
||
<section class="slide level1">
|
||
|
||
<section id="what-is-chemodiversity" class="level2">
|
||
<h2>What is chemodiversity?</h2>
|
||
<ul>
|
||
<li class="fragment">It was observed, that many plants seem to produce many compounds with no obvious purpose</li>
|
||
<li class="fragment">Using resources to produce such compounds (instead of i.e. growing) should yield a fitness-disadvantage</li>
|
||
<li class="fragment">one expects evolution to eliminate such behavior</li>
|
||
</ul>
|
||
</section>
|
||
<section id="question-why-is-this-behavior-observed" class="level2">
|
||
<h2>Question: Why is this behavior observed?</h2>
|
||
<ul>
|
||
<li class="fragment">Are these compounds necessary for some unresearched reason?
|
||
<ul>
|
||
<li class="fragment">unknown environmental effects?</li>
|
||
<li class="fragment">unknown intermediate products for necessary defenses?</li>
|
||
<li class="fragment">speculative diversity because they could be useful after genetic mutations?</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="screening-hypothesis" class="level2">
|
||
<h2>Screening Hypothesis</h2>
|
||
<ul>
|
||
<li class="fragment">First suggested by Jones & Firn (<a href="https://doi.org/10.1098/rstb.1991.0077">1991</a>)</li>
|
||
<li class="fragment">new (random) compounds are rarely biologically active</li>
|
||
<li class="fragment">plants have a higher chance finding an active compound if they diversify</li>
|
||
<li class="fragment">many (inactive) compounds are sustained for a while because they may be precursors to biologically active substances</li>
|
||
</ul>
|
||
<div class="fragment">
|
||
<p>There are indications for and against this hypothesis by <a href="https://nph.onlinelibrary.wiley.com/doi/full/10.1111/nph.12526#nph12526-bib-0093">various groups</a>.</p>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="setting-up-a-simulation" class="slide level1">
|
||
<h1>Setting up a simulation</h1>
|
||
<blockquote>
|
||
<p>If you wish to make apple pie from scratch, you must first create the universe<br />
|
||
- Carl Sagan</p>
|
||
</blockquote>
|
||
</section>
|
||
<section class="slide level1">
|
||
|
||
<section id="defining-chemistry" class="level2">
|
||
<h2>Defining Chemistry</h2>
|
||
<ul>
|
||
<li class="fragment">First of all we define the chemistry of our environment, so we know all possible interactions and can manipulate them at will.</li>
|
||
<li class="fragment">We differentiate between <strong><code class="sourceCode haskell"><span class="dt">Substrate</span></code></strong> and <strong><code class="sourceCode haskell"><span class="dt">Products</span></code></strong>:
|
||
<ul>
|
||
<li class="fragment"><strong><code class="sourceCode haskell"><span class="dt">Substrate</span></code></strong> can just be used (i.e. real substrates if the whole metabolism should be simulated, <strong><code class="sourceCode haskell"><span class="dt">PPM</span></code></strong><sup>[1]</sup> in our simplified case)</li>
|
||
<li class="fragment"><strong><code class="sourceCode haskell"><span class="dt">Products</span></code></strong> are nodes in our chemistry environment.</li>
|
||
</ul></li>
|
||
<li class="fragment"><p>In Code:</p>
|
||
<pre class="sourceCode haskell" id="cb1"><code class="sourceCode haskell"><div class="sourceLine" id="cb1-1" data-line-number="1"><span class="kw">data</span> <span class="dt">Compound</span> <span class="fu">=</span> <span class="dt">Substrate</span> <span class="dt">Nutrient</span></div>
|
||
<div class="sourceLine" id="cb1-2" data-line-number="2"> <span class="fu">|</span> <span class="dt">Produced</span> <span class="dt">Component</span></div>
|
||
<div class="sourceLine" id="cb1-3" data-line-number="3"> <span class="fu">|</span> <span class="dt">GenericCompound</span> <span class="dt">Int</span></div></code></pre>
|
||
<div class="footer">
|
||
<p><sup>[1]</sup>: plants primary metabolism</p>
|
||
</div></li>
|
||
</ul>
|
||
</section>
|
||
<section id="usage-in-the-current-model" class="level2">
|
||
<h2>Usage in the current Model</h2>
|
||
<ul>
|
||
<li class="fragment">The Model used for evaluation just has one <code class="sourceCode haskell"><span class="dt">Substrate</span></code>:<br />
|
||
<code class="sourceCode haskell"><span class="dt">PPM</span></code> with a fixed Amount to account for effects of sucking primary-metabolism-products out of the primary metabolic cycle</li>
|
||
<li class="fragment">This is used to simulate i.e. worse growth, fertility and other things affecting the fitness of a plant.</li>
|
||
<li class="fragment">We are not using named Compounds, but restrict to generic <code class="sourceCode haskell"><span class="dt">Compound</span> <span class="dv">1</span></code>, <code class="sourceCode haskell"><span class="dt">Compound</span> <span class="dv">2</span></code> …</li>
|
||
<li class="fragment">Not done, but worth exploring:
|
||
<ul>
|
||
<li class="fragment">Take a “real-world” snapshot of Nutrients and Compounds and recreate them</li>
|
||
<li class="fragment">See if the simulation follows the real world</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="defining-a-metabolism" class="level2">
|
||
<h2>Defining a Metabolism</h2>
|
||
<ul>
|
||
<li class="fragment">We define <strong><code class="sourceCode haskell"><span class="dt">Enzyme</span></code>s</strong> as
|
||
<ul>
|
||
<li class="fragment">having a recipe for a chemical reaction</li>
|
||
<li class="fragment">are reversible</li>
|
||
<li class="fragment">may have dependencies on catalysts to be present</li>
|
||
<li class="fragment">may have higher dominance over other enzymes with the same reaction</li>
|
||
</ul></li>
|
||
<li class="fragment">Input can be <code class="sourceCode haskell"><span class="dt">Substrate</span></code> and/or <code class="sourceCode haskell"><span class="dt">Products</span></code></li>
|
||
<li class="fragment">Outputs can only be <code class="sourceCode haskell"><span class="dt">Products</span></code></li>
|
||
<li class="fragment"><span class="math inline">\(\Rightarrow\)</span> This makes them to Edges in a graph combining the chemical compounds</li>
|
||
</ul>
|
||
</section>
|
||
<section id="usage-in-the-current-model-1" class="level2">
|
||
<h2>Usage in the current Model</h2>
|
||
<ul>
|
||
<li class="fragment"><code class="sourceCode haskell"><span class="dt">Enzyme</span></code>s all
|
||
<ul>
|
||
<li class="fragment">only map <code class="sourceCode haskell"><span class="dv">1</span></code> input to <code class="sourceCode haskell"><span class="dv">1</span></code> Output with a production rate of <code class="sourceCode haskell"><span class="dv">1</span></code> per <code class="sourceCode haskell"><span class="dt">Enzyme</span></code><br />
|
||
(i.e. <code class="sourceCode haskell"><span class="fu">-</span><span class="dv">1</span> <span class="dt">Compound</span> <span class="dv">2</span> <span class="ot">-></span> <span class="fu">+</span><span class="dv">1</span> <span class="dt">Compound</span> <span class="dv">5</span></code>)</li>
|
||
<li class="fragment">are equally dominant</li>
|
||
<li class="fragment">need no catalysts</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="defining-predators" class="level2">
|
||
<h2>Defining Predators</h2>
|
||
<ul>
|
||
<li class="fragment"><strong><code class="sourceCode haskell"><span class="dt">Predator</span></code>s</strong> consist of
|
||
<ul>
|
||
<li class="fragment">a list of <code class="sourceCode haskell"><span class="dt">Compound</span></code>s that can kill them</li>
|
||
<li class="fragment">a fitness impact (<span class="math inline">\([0..1]\)</span>) as the probability of killing the plant</li>
|
||
<li class="fragment">an expected number of attacks per generation</li>
|
||
<li class="fragment">a probability (<span class="math inline">\([0..1]\)</span>) of appearing in a single generation</li>
|
||
</ul></li>
|
||
<li class="fragment"><code class="sourceCode haskell"><span class="dt">Predator</span></code> need not necessary be biologically motivated
|
||
<ul>
|
||
<li class="fragment">i.e. rare, nearly devastating attacks (floods, droughts, …) with realistic probabilities</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="example-environment" class="level2">
|
||
<h2>Example Environment</h2>
|
||
<div class="columns">
|
||
<div class="column" style="width:37%;">
|
||
<ul>
|
||
<li class="fragment">The complete environment now consists of
|
||
<ul>
|
||
<li class="fragment"><code class="sourceCode haskell"><span class="dt">Compound</span></code>s:<br />
|
||
<img data-src="img/compound_example.png" style="vertical-align:middle" /></li>
|
||
<li class="fragment"><code class="sourceCode haskell"><span class="dt">Enzyme</span></code>s:<br />
|
||
<img data-src="img/enzyme_example.png" style="vertical-align:middle" /></li>
|
||
<li class="fragment"><code class="sourceCode haskell"><span class="dt">Predator</span></code>s:<br />
|
||
<img data-src="img/predator_example.png" style="vertical-align:middle" /></li>
|
||
</ul></li>
|
||
</ul>
|
||
</div><div class="column fragment" style="width:63%;">
|
||
<figure>
|
||
<img data-src="img/environment.tree.png" alt="Our default test-environment" style="width:75.0%" /><figcaption>Our default test-environment</figcaption>
|
||
</figure>
|
||
<p>Additional rules:</p>
|
||
<ul>
|
||
<li class="fragment">Every “subtree” from the marked <code class="sourceCode haskell"><span class="dt">PPM</span></code> is treated as a separate species (fungi, animals, …)<br />
|
||
<span class="math inline">\(\Rightarrow\)</span> Every predator can only be affected by toxins in the same part of the tree</li>
|
||
<li class="fragment">Trees can be automatically generated in a decent manner to search for environmens where specific effects may arise</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<aside class="notes">
|
||
<p>CTRL+Click for zoom!</p>
|
||
<ul>
|
||
<li>All starts at PPM (Plant Primary Metabolism)</li>
|
||
<li>Red = Toxic</li>
|
||
<li>Blue = Predators</li>
|
||
</ul>
|
||
</aside>
|
||
</section>
|
||
</section>
|
||
<section class="slide level1">
|
||
|
||
<section id="plants" class="level2">
|
||
<h2>Plants</h2>
|
||
<p>A <strong><code class="sourceCode haskell"><span class="dt">Plant</span></code></strong> consists of</p>
|
||
<ul>
|
||
<li class="fragment">a <strong><code class="sourceCode haskell"><span class="dt">Genome</span></code></strong>, a simple list of genes
|
||
<ul>
|
||
<li class="fragment">Triple of <code class="sourceCode haskell">(<span class="dt">Enzyme</span>, <span class="dt">Quantity</span>, <span class="dt">Activation</span>)</code></li>
|
||
<li class="fragment">without order or locality (i.e. interference of neighboring genes)</li>
|
||
<li class="fragment"><code class="sourceCode haskell"><span class="dt">Quantity</span></code> is just an optimization (=Int) to group identical <code class="sourceCode haskell"><span class="dt">Activation</span></code>s</li>
|
||
<li class="fragment"><code class="sourceCode haskell"><span class="dt">Activation</span></code> is a float <span class="math inline">\(\in [0..1]\)</span> to regulate the activity of the <code class="sourceCode haskell"><span class="dt">Enzyme</span></code> genetically</li>
|
||
</ul></li>
|
||
<li class="fragment">an <code class="sourceCode haskell">absorbNutrients</code>-Function to simulate various effects when absorbing nutrients out of the environment, depending on the environment (i.e. <em>can</em> use informations about chemistry, predators, etc.)
|
||
<ul>
|
||
<li class="fragment">Not used in our simulation, as we only have <code class="sourceCode haskell"><span class="dt">PPM</span></code> as “nutrient” and we take everything given to us.</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="metabolism-simulation" class="level2">
|
||
<h2>Metabolism simulation</h2>
|
||
<p>Creation of compounds from the given resources is an iterative process:</p>
|
||
<ul>
|
||
<li class="fragment">First of all we create a conversion Matrix <span class="math inline">\(\Delta_c\)</span> with corresponding startvector <span class="math inline">\(s_0\)</span>.</li>
|
||
<li class="fragment"><p>We now iterate <span class="math inline">\(s_i = (\mathbb{1} + \Delta_c) \cdot s_{i-1}\)</span> for a fixed number of times (currently: <span class="math inline">\(100\)</span>) to simulate the metabolism<sup>[2]</sup>.</p>
|
||
<div class="footer">
|
||
<p><sup>[2]</sup>: Thats a ‘lie’, we calculate <span class="math inline">\((\mathbb{1} + \Delta_c)^{100}\)</span> efficiently via <code>lapack</code>-internals</p>
|
||
</div></li>
|
||
<li class="fragment">Entries in the matrix come from the <code class="sourceCode haskell"><span class="dt">Genome</span></code>: an <code class="sourceCode haskell"><span class="dt">Enzyme</span></code> which converts <span class="math inline">\(i\)</span> to <span class="math inline">\(j\)</span> with quantity <span class="math inline">\(q\)</span> and activity <span class="math inline">\(a\)</span> yield <span class="math display">\[\begin{eqnarray*}
|
||
\Delta_c[i,j] &\mathrel{+}=& q\cdot a,\\
|
||
\Delta_c[j,i] &\mathrel{+}=& q\cdot a, \\
|
||
\Delta_c[i,i] &\mathrel{-}=& q\cdot a, \\
|
||
\Delta_c[j,j] &\mathrel{-}=& q\cdot a
|
||
\end{eqnarray*}.\]</span>
|
||
<ul>
|
||
<li class="fragment">This makes the Enzyme-reaction invertible as both ways get treated equally.</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="metabolism-example" class="level2">
|
||
<h2>Metabolism-example</h2>
|
||
<ul>
|
||
<li class="fragment"><p>Given a simple Metabolism with <span class="math inline">\(1\)</span> nutrient (first row/column) and <span class="math inline">\(2\)</span> Enzymes in sequence, we have given <span class="math inline">\(\Delta_c\)</span> wtih corresponding startvector <span class="math inline">\(s_0\)</span>: <span class="math display">\[\Delta_c = 0.01 \cdot \begin{pmatrix}
|
||
-1 & 1 & 0 \\
|
||
1 & -2 & 1 \\
|
||
0 & 1 & -1 \\
|
||
\end{pmatrix}, s_0 = \begin{pmatrix}\text{PPM:} & 3 \\ \text{Compound1:} & 0 \\ \text{Compound2:} & 0\end{pmatrix}.\]</span></p></li>
|
||
<li class="fragment"><p>In the simulation this yields us <span class="math display">\[s_{100} \approx \begin{pmatrix}\text{PPM:} & 1 \\ \text{Compound1:} & 1 \\ \text{Compound2:} & 1\end{pmatrix},\]</span> which is the expected outcome for an equilibrium.</p></li>
|
||
</ul>
|
||
</section>
|
||
<section id="assumptions-for-metabolism-simulation" class="level2">
|
||
<h2>Assumptions for metabolism simulation</h2>
|
||
<ul>
|
||
<li class="fragment">All Enzymes are there from the beginning</li>
|
||
<li class="fragment">All Enzyme-reactions are reversible without loss</li>
|
||
<li class="fragment">static conversion-matrix for fast calculations (unsuited, if i.e. enzymes depend on catalysts)</li>
|
||
<li class="fragment">One genetic enzyme corresponds to (infinitely) many real (proportional weaker) enzymes in the plant, which get controlled via the “activation” parameter</li>
|
||
</ul>
|
||
</section>
|
||
<section id="fitness" class="level2">
|
||
<h2>Fitness</h2>
|
||
<ul>
|
||
<li class="fragment">We handle fitness as <span class="math inline">\(\text{survival-probability} \in [0..1]\)</span> and model each detrimental effect as probability which get multiplied together.</li>
|
||
<li class="fragment">To calculate the fitness of an individual we take three distinct effects into consideration:
|
||
<ul>
|
||
<li class="fragment">Static costs of enzymes
|
||
<ul>
|
||
<li class="fragment">Creating enzymes weakens the primary cycle and thus possibly beneficial traits (growth, attraction of beneficial organisms, …) <span class="math display">\[F_s := \text{static_cost_factor} \cdot \sum_i q_i \cdot a_i \quad | \quad (e_i,q_i, a_i) \in \text{Genome}\]</span></li>
|
||
<li class="fragment">limits the amount of dormant enzymes</li>
|
||
</ul></li>
|
||
<li class="fragment">Cost of active enzymes
|
||
<ul>
|
||
<li class="fragment">Cost of using up nutrients <span class="math display">\[F_e := \text{active_cost_factor} \cdot \frac{\text{Nutrients used}}{\text{Nutrients available}}\]</span></li>
|
||
</ul></li>
|
||
<li class="fragment">Deterrence of attackers <span class="math inline">\(F_d\)</span> (next slide)</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="attacker" class="level2">
|
||
<h2>Attacker</h2>
|
||
<ul>
|
||
<li class="fragment">Predators are modeled after <a href="http://doi.org/10.1098/rspb.2007.0456">Svennungsen et al. (2007)</a></li>
|
||
<li class="fragment">Each predator has an expected number of attacks <span class="math inline">\(P_a\)</span>, that are poisson-distributed with impact <span class="math inline">\(P_i\)</span>.</li>
|
||
<li class="fragment">Plants can defend themselves via
|
||
<ul>
|
||
<li class="fragment">toxins that the predator is affected by with impact-probability <span class="math inline">\(D_t(P_i)\)</span></li>
|
||
<li class="fragment">herd-immunity via effects like automimicry: <span class="math inline">\(D_{pop} = \mathbb{E}[D_t(P_i)]\)</span></li>
|
||
</ul></li>
|
||
<li class="fragment"><p>All this yields the formula:</p>
|
||
<p><span class="math display">\[F_d := 1 - e^{- (D_{pop} \cdot P_a) (1-D_t(P_i))}\]</span></p></li>
|
||
<li class="fragment">The attacker-model is only valid for many reasonable assumptions
|
||
<ul>
|
||
<li class="fragment">equilibrium population dynamics</li>
|
||
<li class="fragment">equal dense population</li>
|
||
<li class="fragment">which individual to attack is independently chosen</li>
|
||
<li class="fragment">etc. (Details in the paper linked above)</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="haploid-mating" class="level2">
|
||
<h2>Haploid mating</h2>
|
||
<ul>
|
||
<li class="fragment">We hold the population-size fixed at <span class="math inline">\(100\)</span></li>
|
||
<li class="fragment">Each plant has a reproduction-probability of <span class="math display">\[p(\textrm{reproduction}) = \frac{\textrm{plant-fitness}}{\textrm{total fitness in population}}\]</span> yielding a fitness-weighted distribution from that <span class="math inline">\(100\)</span> new offspring are drawn</li>
|
||
<li class="fragment"><p>in inheritance each gene of the parent goes through different steps (with given default-values)<sup>[3]</sup></p>
|
||
<div class="footer">
|
||
<p><sup>[3]</sup>: in case of quantity <span class="math inline">\(q > 1\)</span> the process is repeated <span class="math inline">\(q\)</span> times independently.</p>
|
||
</div>
|
||
<ul>
|
||
<li class="fragment"><strong>mutation</strong>: with <span class="math inline">\(p_{mut} = 0.01\)</span> another random enzyme is produced, but activation kept</li>
|
||
<li class="fragment"><strong>duplication</strong>: with <span class="math inline">\(p_{dup} = 0.05\)</span> the gene gets duplicated (quantity <span class="math inline">\(+1\)</span>)</li>
|
||
<li class="fragment"><strong>deletion</strong>: with <span class="math inline">\(p_{del} = p_{dup}\)</span> the gene get deleted (or quantity <span class="math inline">\(-1\)</span>)</li>
|
||
<li class="fragment"><strong>addition</strong>: with <span class="math inline">\(p_{add} = 0.005\)</span> an additional gene producing a random enzyme with activation <span class="math inline">\(0.5\)</span> gets added as mutation from genes we do not track (i.e. primary cycle)</li>
|
||
<li class="fragment"><strong>activation-noise</strong>: activation is changed by <span class="math inline">\(c_{noise} = \pm 0.01\)</span> drawn from a uniform distribution, clamped to <span class="math inline">\([0..1]\)</span></li>
|
||
</ul></li>
|
||
</ul>
|
||
<aside class="notes">
|
||
<ul>
|
||
<li>Default values <strong>not</strong> motivated in any way!</li>
|
||
<li>finding out how these values influence is core!</li>
|
||
</ul>
|
||
</aside>
|
||
</section>
|
||
</section>
|
||
<section class="slide level1">
|
||
|
||
<section id="simulations" class="level2">
|
||
<h2>Simulations</h2>
|
||
<ul>
|
||
<li class="fragment">Overall question: What parameters are necessary for chemodiversity?
|
||
<ul>
|
||
<li class="fragment">How can we see chemodiversity?</li>
|
||
<li class="fragment">We define an Enzyme <span class="math inline">\(E\)</span> as divers, if the average of this Enzyme in the population stays below <span class="math inline">\(0.5\)</span>, so <span class="math inline">\(E_i \in E_{div} \text{iff.} \mathbb{E}[E_i] < 0.5\)</span></li>
|
||
<li class="fragment">We can then count the number of diverse Enzymes per plant <span class="math inline">\(E_{d,p_i} = |\left\lbrace E_i | E_i \in E_{div}, E_{i,p_i} > 0.5, \right\rbrace|\)</span></li>
|
||
</ul></li>
|
||
<li class="fragment">To get an insight into how this behaves we observe several other parameters every generation:
|
||
<ul>
|
||
<li class="fragment">Fitness <span class="math inline">\(\in [0..1]\)</span></li>
|
||
<li class="fragment">Number of different compounds created</li>
|
||
<li class="fragment">Amount of compounds created</li>
|
||
<li class="fragment">Number of Plants theoretically resistant to predator <span class="math inline">\(i\)</span> (i.e. <strong>can</strong> produce a toxin to defend themselves, albeit not to <span class="math inline">\(100\%\)</span>.</li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
<section id="simulations-cont." class="level2">
|
||
<h2>Simulations (cont.)</h2>
|
||
<ul>
|
||
<li class="fragment">General setup of the simulation:
|
||
<ul>
|
||
<li class="fragment">All using the example-environment shown before
|
||
<ul>
|
||
<li class="fragment">27 different compounds, 1 Nutrient (simulating the primary metabolism)</li>
|
||
<li class="fragment">7 of 27 compounds are toxic</li>
|
||
<li class="fragment">at least 3 compounds are needed for total immunity</li>
|
||
<li class="fragment">4 predators</li>
|
||
</ul></li>
|
||
<li class="fragment">Duration of 2000 generations</li>
|
||
</ul></li>
|
||
<li class="fragment">Different setups tested:
|
||
<ul>
|
||
<li class="fragment">Behavior of predators (<code class="sourceCode haskell"><span class="dt">AlwaysAttack</span></code>, <code class="sourceCode haskell"><span class="dt">AttackRandom</span></code>, <code class="sourceCode haskell"><span class="dt">AttackInterval</span> <span class="dt">Int</span></code>)</li>
|
||
<li class="fragment">varying <span class="math inline">\(\text{static_enzyme_cost}\)</span> from <span class="math inline">\(0.0\)</span> to <span class="math inline">\(0.20\)</span> in steps of <span class="math inline">\(0.02\)</span>
|
||
<ul>
|
||
<li class="fragment">effectively limits the amount of maximal enzymes to <span class="math inline">\(\frac{1}{\text{static_enzyme_cost}}\)</span></li>
|
||
</ul></li>
|
||
<li class="fragment">varying <span class="math inline">\(\text{nutrient_impact}\)</span> from <span class="math inline">\(0.0\)</span> to <span class="math inline">\(1.0\)</span> in steps of <span class="math inline">\(0.1\)</span>
|
||
<ul>
|
||
<li class="fragment">makes toxins less/more costly to produce</li>
|
||
</ul></li>
|
||
</ul></li>
|
||
</ul>
|
||
</section>
|
||
</section>
|
||
<section id="results" class="slide level1">
|
||
<h1>Results</h1>
|
||
<blockquote>
|
||
<p>It doesn’t matter how beautiful your theory is, it doesn’t matter how smart you are. If it doesn’t agree with experiment, it’s wrong.<br />
|
||
- Richard P. Feynman</p>
|
||
</blockquote>
|
||
</section>
|
||
<section class="slide level1">
|
||
|
||
<section id="effect-of-predator-behavior-onto-chemodiversity" class="level2">
|
||
<h2>Effect of Predator-Behavior onto chemodiversity</h2>
|
||
<figure>
|
||
<img data-src="img/attackRate_E_d_mu_vs_C_mu.png" alt="Graph" /><figcaption>Graph</figcaption>
|
||
</figure>
|
||
</section>
|
||
<section id="effect-of-static-enzyme-cost" class="level2">
|
||
<h2>Effect of static enzyme cost</h2>
|
||
<figure>
|
||
<img data-src="img/staticCost_Fitness_vs_num_compounds.png" alt="Graph" /><figcaption>Graph</figcaption>
|
||
</figure>
|
||
</section>
|
||
<section id="effect-of-static-enzyme-cost-cont." class="level2">
|
||
<h2>Effect of static enzyme cost (cont.)</h2>
|
||
<figure>
|
||
<img data-src="img/staticCost_Fitness_vs_e_d_mu.png" alt="Graph" /><figcaption>Graph</figcaption>
|
||
</figure>
|
||
</section>
|
||
<section id="effect-of-static-enzyme-cost-cont.-1" class="level2">
|
||
<h2>Effect of static enzyme cost (cont.)</h2>
|
||
<figure>
|
||
<img data-src="img/staticCost_e_d_mu_vs_num_compounds.png" alt="Graph" /><figcaption>Graph</figcaption>
|
||
</figure>
|
||
</section>
|
||
<section id="effect-of-nutrient-impact" class="level2">
|
||
<h2>Effect of nutrient-impact</h2>
|
||
<figure>
|
||
<img data-src="img/nutrientCost_Fitness_vs_num_compounds.png" alt="Graph" /><figcaption>Graph</figcaption>
|
||
</figure>
|
||
</section>
|
||
<section id="effect-of-nutrient-impact-cont." class="level2">
|
||
<h2>Effect of nutrient-impact (cont.)</h2>
|
||
<figure>
|
||
<img data-src="img/nutrientCost_Fitness_vs_e_d_mu.png" alt="Graph" /><figcaption>Graph</figcaption>
|
||
</figure>
|
||
</section>
|
||
<section id="effect-of-nutrient-impact-cont.-1" class="level2">
|
||
<h2>Effect of nutrient-impact (cont.)</h2>
|
||
<figure>
|
||
<img data-src="img/nutrientCost_e_d_mu_vs_num_compounds.png" alt="Graph" /><figcaption>Graph</figcaption>
|
||
</figure>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<script src="/reveal.js/lib/js/head.min.js"></script>
|
||
<script src="/reveal.js/js/reveal.js"></script>
|
||
|
||
|
||
<script>
|
||
|
||
// More info https://github.com/hakimel/reveal.js#configuration
|
||
Reveal.initialize({
|
||
|
||
|
||
// reveal settings
|
||
controls: false,
|
||
progress: false,
|
||
slideNumber: true,
|
||
history: true,
|
||
center: false,
|
||
transition: 'none',
|
||
viewDistance: 2, // otherwise videos start early
|
||
width: 1280,
|
||
height: 1024,
|
||
minScale: 0.2,
|
||
maxScale: 5, // if this threshold is reached, the chalkboard drawing will be wrongly positioned. hence large threshold!
|
||
pdfMaxPagesPerSlide: 1, // slides are cropped on one page for PDF export
|
||
|
||
|
||
// use local mathjax installation
|
||
math: { mathjax: '/MathJax/MathJax.js', config: 'TeX-AMS_HTML-full' },
|
||
|
||
|
||
|
||
// setup reveal-menu
|
||
menu: {
|
||
side: 'right',
|
||
numbers: false,
|
||
titleSelector: 'h1, h2',
|
||
hideMissingTitles: false,
|
||
markers: false,
|
||
custom: false,
|
||
themes: false,
|
||
transitions: false,
|
||
openButton: false,
|
||
openSlideNumber: true,
|
||
keyboard: true
|
||
},
|
||
|
||
|
||
// setup charts
|
||
chart: {
|
||
defaults: {
|
||
global: {
|
||
"defaultFontFamily": "Lato",
|
||
"defaultFontColor": "black",
|
||
"defaultFontSize": 20,
|
||
title: {
|
||
"fontFamily": "Lato",
|
||
"fontSize": 30,
|
||
},
|
||
legend: {
|
||
"position": "bottom"
|
||
}
|
||
},
|
||
},
|
||
line: {
|
||
backgroundColor: [ "rgba(42,157,223,.1)", "rgba(245,159,0,.1)", "rgba(182,200,40,.1)" ],
|
||
borderColor: [ "rgba(42,157,223,1)", "rgba(245,159,0,1)", "rgba(182,200,40,1)" ],
|
||
},
|
||
bar: {
|
||
backgroundColor: [ "rgba(42,157,223,.8)", "rgba(245,159,0,.8)", "rgba(182,200,40,.8)" ],
|
||
borderColor: [ "rgba(42,157,223,1)", "rgba(245,159,0,1)", "rgba(182,200,40,1)" ]
|
||
},
|
||
pie: {
|
||
backgroundColor: [ ["rgba(0,0,0,.8)" , "rgba(220,20,20,.8)", "rgba(20,220,20,.8)", "rgba(220,220,20,.8)", "rgba(20,20,220,.8)"] ]},
|
||
radar: {
|
||
borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ]
|
||
}
|
||
},
|
||
|
||
|
||
// keyboard shortcuts
|
||
keyboard: {
|
||
40: function() { Reveal.next(); }, // up: next slide
|
||
38: function() { Reveal.prev(); }, // down: prev slide
|
||
},
|
||
|
||
|
||
// load plugins
|
||
dependencies: [
|
||
{ src: '/reveal.js/plugin/math/math.js' },
|
||
{ src: '/reveal.js/plugin/notes/notes.js', async: true },
|
||
{ src: '/reveal.js-menu/menu.js' },
|
||
{ src: '/reveal.js-plugins/chart/Chart.min.js' },
|
||
{ src: '/reveal.js-plugins/chart/csv2chart.js' },
|
||
{ src: '/js/zoom.js', async: true },
|
||
]
|
||
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
|
||
</html>
|