<!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"><span class="math inline">\(27\)</span> different compounds, <span class="math inline">\(1\)</span> Nutrient (simulating the primary metabolism)</li> <li class="fragment"><span class="math inline">\(7\)</span> of <span class="math inline">\(27\)</span> compounds are toxic</li> <li class="fragment">at least <span class="math inline">\(3\)</span> compounds are needed for total immunity</li> <li class="fragment"><span class="math inline">\(4\)</span> predators set to <code class="sourceCode haskell"><span class="dt">AlwaysAttack</span></code></li> </ul></li> <li class="fragment">Duration of <span class="math inline">\(2000\)</span> generations</li> <li class="fragment"><span class="math inline">\(\text{static_enzyme_cost} = 0.02\)</span></li> <li class="fragment"><span class="math inline">\(\text{nutrient_impact} = 0.1\)</span></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="dv">10</span></code>, <code class="sourceCode haskell"><span class="dt">AttackInterval</span> <span class="dv">100</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>