414 lines
16 KiB
HTML
414 lines
16 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">⇒</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">⇒</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 plant consists of …</p>
|
|||
|
</section>
|
|||
|
<section id="metabolism-simulation" class="level2">
|
|||
|
<h2>Metabolism simulation</h2>
|
|||
|
<p>Compounds are created foo..</p>
|
|||
|
</section>
|
|||
|
<section id="fitness" class="level2">
|
|||
|
<h2>Fitness</h2>
|
|||
|
<ul>
|
|||
|
<li class="fragment">Static costs of enzymes</li>
|
|||
|
<li class="fragment">Cost of active enzymes</li>
|
|||
|
</ul>
|
|||
|
</section>
|
|||
|
<section id="attacker" class="level2">
|
|||
|
<h2>Attacker</h2>
|
|||
|
<ul>
|
|||
|
<li class="fragment">Rate of attack ~> Paper, Formulas</li>
|
|||
|
<li class="fragment">Defenses
|
|||
|
<ul>
|
|||
|
<li class="fragment">single plant</li>
|
|||
|
<li class="fragment">automimicry</li>
|
|||
|
</ul></li>
|
|||
|
</ul>
|
|||
|
</section>
|
|||
|
<section id="haploid-mating" class="level2">
|
|||
|
<h2>Haploid mating</h2>
|
|||
|
<ul>
|
|||
|
<li class="fragment">fixed population-size (100)</li>
|
|||
|
<li class="fragment"><span class="math inline">$p(\textrm{reproduction}) = \frac{\textrm{plant-fitness}}{\textrm{total fitness in population}}$</span></li>
|
|||
|
<li class="fragment">Gene
|
|||
|
<ul>
|
|||
|
<li class="fragment">mutation</li>
|
|||
|
<li class="fragment">duplication</li>
|
|||
|
<li class="fragment">deletion</li>
|
|||
|
<li class="fragment">addition</li>
|
|||
|
<li class="fragment">activation-noise</li>
|
|||
|
</ul></li>
|
|||
|
</ul>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
<section class="slide level1">
|
|||
|
|
|||
|
<section id="simulations" class="level2">
|
|||
|
<h2>Simulations</h2>
|
|||
|
<p>Parameters tested</p>
|
|||
|
<ul>
|
|||
|
<li class="fragment">x</li>
|
|||
|
<li class="fragment">y</li>
|
|||
|
<li class="fragment">z</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>
|
|||
|
|
|||
|
|
|||
|
</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>
|