Commit c6daeaab authored by Randy Heiland's avatar Randy Heiland
Browse files

rm thanos html

parent fb613dff
<h2><strong>GUI Overview</strong></h2>
<li><b>Config Basics</b> tab: input parameters common to all models (e.g., domain grid, simulation time, choice/frequency of outputs)</li>
<li><b>Microenvironment</b> tab:&nbsp;&nbsp; microenvironment parameters that are model-specific</li>
<li><b>User Params</b> tab:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user parameters that are model-specific</li>
<li><b>Out: Plots</b> tab:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output display of cells and substrates</li>
Clicking the 'Run' button will use the specified parameters and start a simulation. When clicked, it creates an "Output" widget
that can be clicked/expanded to reveal the progress (text) of the simulation. When the simulation generates output files,
they can be visualized in the "Out: Plots" tab. The "# cell frames" will be dynamically updated
as those output files are generated by the running simulation. When the "Run" button is clicked, it toggles to a "Cancel" button
that will terminate (not pause) the simulation.
<h2><strong>Introduction: Battle for the Infinity Stones</strong></h2>
<p>This app demonstrates chemotactic migration, cell-cell contact interactions, and iterating across cells to apply a random event. It also explores the impact of varying the number and strength of different cells in a complex, stochastic adversarial system.</p>
<h3>(Fictional) modeling scenario</h3>
<p>In this scenario, <a href="">Thanos</a> (<strong><span style="color: purple;">purple</span></strong>) seeks the <a href="">6 infinity stones</a>, which will allow him to instantly wipe out 50% of all sentient life (<strong><span style="color: limegreen;">green civilians</span></strong> and <strong><span style="color: red;">red Avengers</span></strong>) with the &quot;<a href="">snap</a>.&quot;</p>
<p>The Avengers (<b><span style="color: red">red</span></b>) have hidden the 6 stones amongst themselves (ones with <b><span style="color: goldenrod;">gold centers</span></b>). Thanos seeks and attacks Avengers, while Avengers seek and attack thanos. Thanos will also attack any civilians in his way.</p>
<p>Whenever Thanos kills an Avenger with an infinity stone, he acquires it. His center will glow with brighter shades of gold. Once he has acquired all 6 infinity stones, he will immediately initiate the &quot;Thanos snap&quot; that kills each living non-Thanos cell with 50% probability.</p>
<h3>Model approach</h3>
<p>We use agent-based models to simulate the individual players, who detect one another both by contact (in near proximity) and through diffusible factors (over larger distances). Thanos secretes a <em>Thanos </em>signal (<em>&theta;</em>) that diffuses outward with a fast enough decay rate to reasonably &quot;track&quot; with Thanos. Likewise, each Avenger secretes an <em>Avenger</em> signal (<em>a</em>) that diffuses outward with a fast enough decay rate to reasonably track with them. </p>
<p>Thanos tests for contact with other cells, and if so, engages them in battle by a custom function (more below). He attacks anything. Avengers test for contact and only attack Thanos. All cells have health (<i>h</i>) that is reduced during battles. In battles, both attackers and defenders create damage according to their health and strength. The damage is distributed to each according to their relative strength and used to reduce health. Cell agents die according to the regular background apoptosis and necrosis rates and deterministically when they are too damaged. </p>
<p>The Thanos &quot;snap&quot; is modeled by iterating through all cells and triggering death with 50% probability. </p>
<p>This demo model shows (1) chemical diffusion, (2) coordination by chemotaxis, (3) testing for contact, (4) more advanced cell-cell contact interactions (in &quot;battle&quot;), (5) iterating through all cells, (6) use of custom data, (7) manually triggering death, and (8) custom coloring functions. </p>
<p>Note that these techniques could be easily used in immunology models, and triggering death as done in this project is a good way to model radiation therapy (where the probability of death could for example be computed by a linear-quadratic model). </p>
<h3>About the software</h3>
<p>This model and cloud-hosted demo are part of a course on computational multicellular systems biology created and taught by Dr. Paul Macklin in the Department of Intelligent Systems Engineering at Indiana University. It is also part of the education and outreach for the IU Engineered nanoBIO Node and the NCI-funded cancer systems biology grant U01CA232137. The models are built using <a href="">PhysiCell</a>: a C++ framework for multicellular systems biology [1].</p>
<h2><strong>Chemical components:</strong></h2>
<p>All chemical signals move by chemical diffusion in the simulated environment, using <a href="">BioFVM</a> [2] to solve the reaction-diffusion equations. A key property is the <em>diffusion length scale</em>. Diffusion (with a diffusion coefficient <em>D</em>) helps spread a signal over large distances, while decay (and uptake) (with coefficient <em>&lambda;</em>) eliminates the signal to slow its spread. These effects compete to determine the characteristic distance <i>L</i>that a chemical signal travels.</p>
<p>That length scale <em>L</em> is given by <em>L</em> = sqrt( <em>D</em>/&lambda; ).</p>
<p>Choosing <em>D</em> and <em>&lambda;</em> can help to tune the chemical communication distance in these models.</p>
<h3>Thanos factor (<i>&theta;</i>):</h3>
<p>This is released by the Thanos agent as a chemoattractant for Avenger cells. We use a Neumann (zero flux) boundary condition. We use a diffusion coefficient and decay rate to give a 100 &mu;m length scale and a decay time scale on the order of 1 min.</p>
<h3>Avenger factor (<em>a</em>):</h3>
<p>This is released by all Avenger cells to act as a chemoattractant for Thanos. We use a Neumann (zero flux) boundary condition. We use a diffusion coefficient and decay rate to give a 100 &mu;m length scale and a decay time scale on the order of 1 min.</p>
<h2><b>Cell agents:</b></h2>
<p>We use agent-based models to explore multicellular systems like this one. Each cell is modeled as a software agent with an independent state, and its own rules to change its behavior based on local environmental conditions and communication. We use PhysiCell as our modeling platform [1].</p>
<h3>Key features in the agent-based models:</h3>
<h4>Birth and death:</h4>
<p>Cells can proliferate (divide into two daughter cells of half size), with division rates regulated by cell rules. In our model, cells continuously work to grow towards a &quot;target&quot; mature volume.</p>
<p>Note that birth and death are stochastic events for each cell agent: if such a process occurs at rate <em>r</em>, then between now (<em>t</em>) and soon (<em>t</em> + &Delta;<em>t</em>), the probability of the event occurring for that agent is <em>r</em>&Delta;<em>t</em>.</p>
<h4>Secretion and uptake:</h4>
<p>Cells can secrete chemical factors, or they can remove them (i.e., consume or uptake). This can contribute to gradients in chemical factors, and it&#39;s a key method of communication between cells. Moreover, cells can &quot;sample&quot; the chemical state of their surrounding environment. Secreting is sending a signal. Uptaking and sampling is receiving a signal.</p>
<h4>Biased migration:</h4>
<p>Motile cells perform <em>biased migration</em>. After traveling for <em>T</em><sub>persistence</sub> time (the mean persistence time), they choose a new migration direction <span style="font-weight: bold;">d</span><sub>migrate</sub>. Based on the environmental conditions, the cell chooses a directional bias (intended direction) <span style="font-weight: bold;">d</span><sub>bias</sub> and a random unit vector <span style="font-weight: bold;">r</span>. The motile direction <span style="font-weight: bold;">d</span><sub>migrate</sub> is then determined by according to:</p>
<p style="text-align: center;"><span style="font-weight: bold;">d</span><sub>migrate</sub> = <em>b</em> <span style="font-weight: bold;">d</span><sub>bias</sub> + (1-<em>b</em>) <span style="font-weight: bold;">r</span>.</p>
<p>Here, <em>b</em> is a <em>bias</em> parameter (between 0 and 1) that determines how strongly biased migration is towards <span style="font-weight: bold;">d</span><sub>bias</sub>. If <em>b</em> =1, then migration is deterministic towards <span style="font-weight: bold;">d</span><sub>bias</sub>. If <em>b</em> = 0, then migration is completely random (Brownian).</p>
<p>Once the migration direction is chosen, it is normalized, and multiplied by the cell&#39;s migration speed.</p>
<p>Cell agents can stick to one another within a prescribed interaction distance (some multiple of their radius), and they can exert a pushing force on neighbors. PhysiCell [1] uses potential functions to implement these simple mechanics. Notably, PhysiCell is an off-lattice model, meaning that cells can have variable sizes, and can move freely without grid artifacts.</p>
<p>They aren&#39;t required to move some prescribed number of spatial steps. They also can divide without checking for an open neighbor &quot;site&quot;. Instead, they can divide and push their neighbors out of the way. </p>
<h4>Cell-cell interactions (battles):</h4>
<p>Each cell has a strength <i>s</i>, health <em>h</em>, and attack rate <em>r</em>. If cell <em>i</em> attacks cell <em>j</em>, then the rate of attack is determined by <em>i</em>, the total damage dealt is based upon the health and strength of each cell (attack and counter-attack), and the distribution of the damage is also based upon their relative strengths and healths</p>
<p style="text-align: center;"><em>d<sub>i</sub></em> = <em>s<sub>i</sub> h<sub>i</sub></em></p>
<p style="text-align: center;"><em>d<sub>j</sub></em> = <em>s<sub>j</sub> h<sub>j</sub></em></p>
<p style="text-align: center;"><em>d<sub>ij</sub></em>= <i>d<sub>i</sub> + d<sub>j</sub></i></p>
<p>Then, each cell is damage proportionately according to the strength of its opponent:</p>
<p style="text-align: center;"><sup>d</sup>&frasl;<sub>d<em>t</em></sub><em>h<sub>i</sub></em>&nbsp;=&nbsp; -<em>r<sub>i</sub></em><sup><em>d<sub>j</sub></em></sup>/<sub><em>d<sub>ij</sub></em></sub><em>h<sub>i</sub></em></p>
<p style="text-align: center;"><sup>d</sup>&frasl;<sub>d<em>t</em></sub><em>h<sub>j</sub></em>&nbsp;=&nbsp; -<em>r<sub>i</sub></em><sup><em>d<sub>i</sub></em></sup>/<sub><em>d<sub>ij</sub></em></sub><em>h<sub>j</sub></em></p>
<p>In this simplified model, a cell dies (deterministically) if its health drops below a threshold <i>h<sub>T</sub></i>.</p>
<h3 id="focal_adhesions">Civilian cells (<span style="color: limegreen;">green</span>)</h3>
<p>Civilian cells are born and die at constant rates in this version of the model, and they migrate randomly (Brownian motion). If they are attacked by Thanos, their health decreases as described above.</p>
<h3>Avenger cells (<span style="color: red;">red</span>)</h3>
<p>Avenger cells do not divide or die in this simplified model, but they can be damaged or die in battle as described above. They choose their migration bias for chemotaxis according to</p>
<p style="text-align: center;"><span style="font-weight: bold;">d</span><sub>bias</sub> = &nabla;<em>&theta;</em>.</p>
<p>Migrating Avenger cells continuously test for collision (contact) with other cells. If that cell is Thanos, they attack according to the battle model above.</p>
<p>At the start, 6 Avenger cells hold an infinity stone--these are denoted with <b><style="color: goldenrod">gold nuclei</style></b>. They are allowed different motility parameters than regular Avengers.</p>
<h3>Thanos cell (<span style="color: purple;">purple</span>)</h3>
<p>Thanos does not divide or die in this simplified model, but he can be damaged or die in battle as described above. He chooses his migration bias for chemotaxis according to</p>
<p style="text-align: center;"><span style="font-weight: bold;">d</span><sub>bias</sub> = &nabla;<em>a.</em></p>
<p>Migrating Thanos continuously tests for collision (contact) with other cells and attacks according to the battle model above. Whenever Thanos defeats an Avenger carrying an infinity stone, that stone is transferred to Thanos, and his nucleus glows a brighter shade of <b><style="color: goldenrod">gold</style></b>. Once he has six stones, he immediately initiates
the Thanos snap. (Look in the console to watch him brag that he is inevitable.)</p>
<h2><a id="instructions" name="instructions">Basic instructions</a></h2>
<p>Modify parameters in the &quot;Config Basics&quot;, &quot;Microenvironment&quot;, or &quot;User Params&quot; tabs. Click the &quot;Run&quot; button once you are ready.</p>
<p>To view the output results, click the &quot;Out: Plots&quot; tab, and move the slider bar to advance through simulation frames.
Note that as the simulation runs, the &quot;# cell frames&quot; field will increase, so you can view more simulation frames.</p>
<p>If there are multiple substrates defined in the Microenvironment, you can select a different one from the drop-down widget in the Plots tab. You can also fix the colormap range of values.</p>
<p>Note that you can download full simulation data for further exploration in your tools of choice.</p>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment