Team:MIT/Tools/

From 2011.igem.org

(Difference between revisions)
Line 61: Line 61:
* Analyze the runs of the models through histograms and clustering
* Analyze the runs of the models through histograms and clustering
-
''mcell'' is a thin layer on top of the combination of [BionetSolver], which model internal cell states as systems of ODEs, and [CompuCell3D], which models cell shape dynamics using the Glazier-Graner-Hogeweg methos. It was created largely in reaction to inconveniences experienced when using BionetSolver and CompuCell3D as detailed [here]. It is in continuous development.
+
''mcell'' is a thin layer on top of the combination of <a href="http://ryanroper.wordpress.com/2011/05/04/multiscale-simulation-with-compucell3d-and-bionetsolver/">BionetSolver</a>, which model internal cell states as systems of ODEs, and <a href="http://compucell3d.org">CompuCell3D</a>, which models cell shape dynamics using the Glazier-Graner-Hogeweg methos. It was created largely in reaction to inconveniences experienced when using BionetSolver and CompuCell3D as detailed <a href="http://ryanroper.wordpress.com/2011/05/04/multiscale-simulation-with-compucell3d-and-bionetsolver/">here</a>. It is in continuous development.
<h3> Quick Links</h3>
<h3> Quick Links</h3>
Line 76: Line 76:
<p>Then, we discovered <a href="http://ryanroper.wordpress.com/2011/05/04/multiscale-simulation-with-compucell3d-and-bionetsolver/">a way to couple CompuCell3D with ODE models of internal cell states.</a> We realized that, if we wanted to do any sort of reasonably flexible modeling, we needed to do something like this. So, we downloaded CompuCell3D, read the documentation, and started modeling various circuits.</p>
<p>Then, we discovered <a href="http://ryanroper.wordpress.com/2011/05/04/multiscale-simulation-with-compucell3d-and-bionetsolver/">a way to couple CompuCell3D with ODE models of internal cell states.</a> We realized that, if we wanted to do any sort of reasonably flexible modeling, we needed to do something like this. So, we downloaded CompuCell3D, read the documentation, and started modeling various circuits.</p>
<p>Now, CompuCell3D coupled with BionetSolver is a great system. However, we quickly discovered that this wasn't quite enough for our purposes. For instance, CompuCell3D allows one to dynamically change the "cell type", and this the cell color. However, as we were trying to engineer cells, we were interested in the dynamics of the protein expression levels -- in fundamentally continuous quantities -- rather than a discrete notion of "cell type"! CompuCell 3D would not let us visualize the values that we needed -- so we wrote a Python script to render the models the way we wanted to.</p>
<p>Now, CompuCell3D coupled with BionetSolver is a great system. However, we quickly discovered that this wasn't quite enough for our purposes. For instance, CompuCell3D allows one to dynamically change the "cell type", and this the cell color. However, as we were trying to engineer cells, we were interested in the dynamics of the protein expression levels -- in fundamentally continuous quantities -- rather than a discrete notion of "cell type"! CompuCell 3D would not let us visualize the values that we needed -- so we wrote a Python script to render the models the way we wanted to.</p>
-
<p>Other problems emerged. We wanted to be able to analyze the data in other ways -- in particular, we wanted to see histograms of the levels of expression of some protein. We wanted to be able to cluster cells by the dynamics of some protein. Both of these problems led to more Python scripts. In addition, we realized that </p>
+
<p>Other problems emerged. We wanted to be able to analyze the data in other ways -- in particular, we wanted to see histograms of the levels of expression of some protein. We wanted to be able to cluster cells by the dynamics of some protein. Both of these problems led to more Python scripts. In addition, we realized that trying to manage all our models was becoming quite inconvenient without a unified organization scheme.</p>
 +
<p>So, we had several hastily-written, badly organized Python scripts and many, many folders scattered around. We then decided that this problem needs fixing, and created a small set of classes to unify the object model do the file management, rendering, and analysis, for us -- using a convenient and extensible command-line interface. Thus, <em>mcell</em> was born.
<h2><a id="install" class="sec"> Installation </a></h2>
<h2><a id="install" class="sec"> Installation </a></h2>
 +
<p><b>Dependencies:</b> <a href="http://www.python.org/getit/releases/2.5.6/">Python 2.5.6</a>, <a href="http://www.compucell3d.org/SrcBin">CompuCell3D 3.5.0</a>, <a href="http://ryanroper.wordpress.com/2011/07/26/running-the-right-version-of-bionetsolver-with-cc3d/"BionetSolver 1.0.0 for Python 2.5</a>, <a href="http://matplotlib.sourceforge.net/">matplotlib</a>, <a href="http://www.pythonware.com/products/pil/">PIL</a>, and <a href="http://code.google.com/p/scipy-cluster/">hcluster</a>.</p>
 +
<p><b>Also very useful:</b> <a href="http://sbw.kgi.edu/sbwWiki/doku.php?id=sysbio:downloads">Synthetic Biology Workbench</a> (for defining circuits)</p>
 +
<p>Download mcell from <a href="igem.mit.edu/mcell.zip">here</a>. Unzip the files somewhere into your PATH. Open mcell.py, and edit the variables between
 +
<code>#START CONFIG</code> and <code>#END CONFIG</code>. (They have self-explanatory names, and their functions are explained in the file.) </p>
<h2><a id="howitworks" class="sec"> How it works </a></h2>
<h2><a id="howitworks" class="sec"> How it works </a></h2>
Line 84: Line 89:
<h3> BionetSolver </h3>
<h3> BionetSolver </h3>
-
BionetSolver reads one or several [SBML] files, each of which define a ''circuit'' as a system of chemical reactions in several containers with given rate laws. SBML models are simply XML files, and can be written with a text editor; however, it is much easier to define them using a graphical designer, like [JDesigner], or using a simple scripting language, like [Jarnac]. (Both of those editors can be obtained by installing the [Synthetic Biology Workbench].
+
<p>BionetSolver reads one or several <a href="http://sbml.org">SBML</a> files, each of which define a <em>circuit</em> as a system of chemical reactions in several containers with given rate laws. SBML models are simply XML files, and can be written with a text editor; however, it is much easier to define them using a graphical designer, like <a href="http://sbw.kgi.edu/software/jdesigner.htm">JDesigner</a>, or using a simple scripting language, like [Jarnac]. (Both of those editors can be obtained by installing the <a href="http://sbw.kgi.edu/sbwWiki/doku.php?id=sysbio:downloads">Synthetic Biology Workbench</a>.</p>
-
After loading the circuits, BionetSolver is in posession of a system of ODEs that define the internal state of each modeled cell. To simulate each cell, BionetSolver simply Euler-steps its ODE system forward with a fixed time step. Some of the variables in the ODE model (like, say, the concentration of a protein on the neighboring cells) are actually parameters that are continually updated from the CompuCell3D thread.  
+
<p>After loading the circuits, BionetSolver is in posession of a system of ODEs that define the internal state of each modeled cell. To simulate each cell, BionetSolver simply Euler-steps its ODE system forward with a fixed time step. Some of the variables in the ODE model (like, say, the concentration of a protein on the neighboring cells) are actually parameters that are continually updated from the CompuCell3D thread.</p>
-
<h3> CompuCell3D </h3>
+
<p>More documentation on BionetSolver can be found by downloading it from the link <a href="#install">above</a>.</p>
 +
<h3> CompuCell3D </h3>
 +
CompuCell3D uses the Glazier-Graner-Hogeweg model to simulate cell shape dynamics. A matrix is

Revision as of 04:28, 28 September 2011

Navigation

  • G-Level Assembly
  • Geneious
  • mcell Modeling Platform
assembly stuf
geneious stuff

''mcell'' - A Multicellular Modeling Framework

''mcell'' is a small set of Python classes that allows the enterprising modeler to: * Easily create very flexible models of of multicellular dynamics * Manage the models already created through a simple command-line interface * Easily change defined parameters in models * Render the runs of the models in a convenient, simple way * Analyze the runs of the models through histograms and clustering ''mcell'' is a thin layer on top of the combination of BionetSolver, which model internal cell states as systems of ODEs, and CompuCell3D, which models cell shape dynamics using the Glazier-Graner-Hogeweg methos. It was created largely in reaction to inconveniences experienced when using BionetSolver and CompuCell3D as detailed here. It is in continuous development.

Quick Links

Why?

Over the course of the summer, we tried several ways of modeling multicellular dynamics. The first thing we tried was everyone's trusted favorite, MATLAB. We generated a system of several thousand ODEs, in which groups of 5 ODEs represented the state of a single cell, and were coupled to ODEs describing adjacent cells. Unfortunately, this was very, very slow, and did not allow for the modeling of cell shape dynamics.

Then, we discovered a way to couple CompuCell3D with ODE models of internal cell states. We realized that, if we wanted to do any sort of reasonably flexible modeling, we needed to do something like this. So, we downloaded CompuCell3D, read the documentation, and started modeling various circuits.

Now, CompuCell3D coupled with BionetSolver is a great system. However, we quickly discovered that this wasn't quite enough for our purposes. For instance, CompuCell3D allows one to dynamically change the "cell type", and this the cell color. However, as we were trying to engineer cells, we were interested in the dynamics of the protein expression levels -- in fundamentally continuous quantities -- rather than a discrete notion of "cell type"! CompuCell 3D would not let us visualize the values that we needed -- so we wrote a Python script to render the models the way we wanted to.

Other problems emerged. We wanted to be able to analyze the data in other ways -- in particular, we wanted to see histograms of the levels of expression of some protein. We wanted to be able to cluster cells by the dynamics of some protein. Both of these problems led to more Python scripts. In addition, we realized that trying to manage all our models was becoming quite inconvenient without a unified organization scheme.

So, we had several hastily-written, badly organized Python scripts and many, many folders scattered around. We then decided that this problem needs fixing, and created a small set of classes to unify the object model do the file management, rendering, and analysis, for us -- using a convenient and extensible command-line interface. Thus, mcell was born.

Installation

Dependencies: Python 2.5.6, CompuCell3D 3.5.0, , matplotlib, PIL, and hcluster.

Also very useful: Synthetic Biology Workbench (for defining circuits)

Download mcell from here. Unzip the files somewhere into your PATH. Open mcell.py, and edit the variables between #START CONFIG and #END CONFIG. (They have self-explanatory names, and their functions are explained in the file.)

How it works

In mcell models, BionetSolver models the internal cell states, and CompuCell3D models the cell dynamics.

BionetSolver

BionetSolver reads one or several SBML files, each of which define a circuit as a system of chemical reactions in several containers with given rate laws. SBML models are simply XML files, and can be written with a text editor; however, it is much easier to define them using a graphical designer, like JDesigner, or using a simple scripting language, like [Jarnac]. (Both of those editors can be obtained by installing the Synthetic Biology Workbench.

After loading the circuits, BionetSolver is in posession of a system of ODEs that define the internal state of each modeled cell. To simulate each cell, BionetSolver simply Euler-steps its ODE system forward with a fixed time step. Some of the variables in the ODE model (like, say, the concentration of a protein on the neighboring cells) are actually parameters that are continually updated from the CompuCell3D thread.

More documentation on BionetSolver can be found by downloading it from the link above.

CompuCell3D

CompuCell3D uses the Glazier-Graner-Hogeweg model to simulate cell shape dynamics. A matrix is

Model Management

In hac habitasse platea dictumst. Proin molestie nisi non tortor laoreet suscipit. Quisque vehicula dolor a nunc eleifend at aliquet orci gravida. Vivamus leo felis, fermentum non iaculis et, auctor eget odio. Aliquam dictum euismod gravida. Vivamus suscipit, leo at scelerisque convallis, tortor elit facilisis diam, ut pulvinar sapien felis a ante. Nunc ac mauris nulla. Vestibulum aliquam, turpis sed aliquet ullamcorper, mauris lacus molestie diam, a convallis elit nisi in nibh. Donec ipsum sapien, suscipit sit amet porta sed, iaculis ac risus. Cras cursus porta pellentesque. Aliquam diam ante, pulvinar quis cursus sed, mattis in odio. Phasellus et volutpat neque. Integer non sapien purus. Curabitur non porta neque. Aliquam ac pulvinar ligula. Maecenas id eros vel magna pretium sagittis. In ultricies mauris vel metus dapibus commodo. Maecenas ac dignissim velit. Phasellus nunc orci, vulputate eget feugiat ac, venenatis sit amet nisl. Suspendisse enim enim, gravida non tristique eget, faucibus id orci. Cras lobortis urna sed nulla convallis sit amet hendrerit orci consectetur. Suspendisse sapien nibh, rutrum quis auctor mattis, mattis nec felis. Suspendisse et massa ante, vitae dapibus tellus. Curabitur tempor sagittis egestas. Pellentesque sit amet ligula ac lorem feugiat laoreet. Nullam non magna imperdiet lectus fringilla viverra. Mauris placerat nibh id nisl euismod ultricies. Donec sit amet urna velit. Mauris nibh ipsum, elementum vitae facilisis at, lacinia vel urna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec nec augue sapien, non hendrerit dolor. Fusce luctus rutrum ante vel malesuada. Duis nec elit in dolor vestibulum interdum. Nullam sed magna et purus euismod molestie at id metus. Pellentesque fermentum consectetur leo, sit amet malesuada ante suscipit et. Nunc arcu nunc, hendrerit nec ultricies eget, blandit a felis.

Rendering and Analysis

Nulla felis turpis, molestie sed tristique et, scelerisque in orci. Nunc congue sagittis enim, sit amet tempor arcu interdum at. Morbi gravida nulla ac mi placerat vitae consequat nulla interdum. Morbi varius aliquet lorem, in gravida diam interdum ultrices. Vestibulum congue ligula id enim convallis dapibus. Phasellus et molestie arcu. Ut ut turpis nec eros semper imperdiet. Ut id orci vel dui accumsan scelerisque. Pellentesque porttitor euismod mi, eu iaculis quam lacinia ut. Cras at lacus ac nisi porttitor volutpat euismod et neque. Fusce in purus mauris, vitae scelerisque nunc. Donec in consectetur justo. Sed sodales pellentesque laoreet. Proin molestie urna nec enim dapibus accumsan. Vivamus ultricies viverra massa eget dapibus. Phasellus tristique, augue eu ultricies mollis, orci justo fermentum orci, a adipiscing nulla risus at justo. Nullam vitae interdum nisi. Donec vel mauris non ante rutrum malesuada vitae sed erat. Praesent tortor nunc, faucibus nec faucibus ut, tincidunt vitae magna. Fusce at tellus ac nulla convallis laoreet non suscipit justo. Etiam hendrerit augue sed nisl pretium non accumsan nisl mollis. Mauris eleifend, odio vel rhoncus volutpat, augue lacus convallis massa, vel dictum orci dolor et ante. Sed libero dui, auctor vitae varius eget, convallis ac dui. Suspendisse ac lorem dui. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras libero massa, ullamcorper vel iaculis non, porttitor auctor odio. Curabitur hendrerit diam a arcu tristique rhoncus. Sed venenatis pretium magna, sit amet congue lectus laoreet at. Vivamus sit amet eros a lacus lacinia adipiscing. Suspendisse nibh velit, rutrum nec eleifend eget, eleifend sit amet sem. Sed nisi eros, eleifend a euismod a, adipiscing eget arcu. Praesent tristique imperdiet ante sed auctor. Duis vel justo a arcu scelerisque posuere blandit nec nisl. Etiam nec nulla augue. Integer ac elit tellus, sit amet tempus felis. Nullam massa neque, tempus sed vestibulum ut, lacinia vel odio. Etiam mauris diam, rutrum sit amet faucibus et, mollis nec mi. Maecenas commodo rhoncus eros in pretium. Nulla accumsan lorem ut ligula placerat elementum. Cras nec ipsum id magna porta laoreet. Cras quis lacus augue. In nec justo lorem, ut scelerisque lorem. Vestibulum accumsan enim vel lectus euismod a feugiat massa cursus.