chemodiversity/vortrag/chemodiversity.html

414 lines
16 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 &amp; 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">-&gt;</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 ~&gt; 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 doesnt matter how beautiful your theory is, it doesnt matter how smart you are. If it doesnt agree with experiment, its 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>