compucell3d a morphogenesis simulation package l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CompuCell3D: A Morphogenesis simulation package PowerPoint Presentation
Download Presentation
CompuCell3D: A Morphogenesis simulation package

Loading in 2 Seconds...

play fullscreen
1 / 35

CompuCell3D: A Morphogenesis simulation package - PowerPoint PPT Presentation


  • 332 Views
  • Uploaded on

CompuCell3D: A Morphogenesis simulation package. Nan Chen and Mark Alber 2/20/2006. Topics. Introduction to CompuCell3D Cellular Potts Model Framework of CompuCell3D Usage of CompuCell3D Future Plans. Introduction to CompuCell3D. CompuCell3D overview.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CompuCell3D: A Morphogenesis simulation package' - albert


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
compucell3d a morphogenesis simulation package

CompuCell3D: A Morphogenesis simulation package

Nan Chen and Mark Alber

2/20/2006

topics
Topics
  • Introduction to CompuCell3D
  • Cellular Potts Model
  • Framework of CompuCell3D
  • Usage of CompuCell3D
  • Future Plans
compucell3d overview
CompuCell3D overview
  • Morphogenesis simulation package based on Cellular Potts Model (CPM)
  • Capable of modeling cell clustering as well as growth, division, death, intracellular adhesion, and volume and surface area constraints
  • Partial differential equation models for external chemical fields which can model reaction-diffusion
  • Cell type automata provides a method for categorizing cells by behavior into types and algorithms for changing cell type
  • Chemotaxis and haptotaxis
compucell3d overview5
CompuCell3D overview
  • Framework design allow scientists to focus on simulation development
    • Visualization tool (CompCell Player)
    • Standard input (XML) make the package easy to use
    • Minimize the amount of coding required
  • Flexible simulation framework
    • Software design Pattern and Plug in feature
    • Easy to extend and add new features
slide6

CompuCell3D Applications

  • Cell sorting
  • Limb bud growth
  • Amoeba migration
  • Dictyostelium discoideum
  • Somites formation
cell sorting

Simple set-up of the Cellular Potts Model (CPM) (a) Initial condition, (b-d) results for various bond-strength settings between dark cells, light cells and the surrounding medium.

Cell Sorting
limb bud growth

Left. Skeletal Pattern formation: Time-series of chick limb-bud development. Right. 3D cell condensation and patterning into skeletal elements- humerus, ulna+radius, and digits in a chicken limb.

Limb bud growth
cellular potts model10
Cellular Potts Model

Cell structure is discretized into a cell map, each number in the above cell map corresponds to one cell.

cellular potts model11
Cellular Potts Model
  • System Hamiltonian consists of adhesion energy, volume energy and chemical energy
  • Transition probability, W, is determined by the change of free energy due to orientation alteration. DG, according to above equation.
cellular potts model12
Cellular Potts Model
  • Energy minimization formalism
    • extended by Graner and Glazier, 1992
  • DAH: Contact energy depending on cell types (differentiated cells)
  • Extensions:
    • J_cell_cell is type dependent
    • Other terms: Cell volume, Chemotaxis/Haptotaxis
  • Metropolis algorithm: probability of configuration change
information flow chart for compucell3d
Information flow chart for CompuCell3D

CompuCellPlayer

XML input

User

CompuCell3D Kernal

compucellplayer
CompuCellPlayer
  • Visualization tool
  • Using QT Lib
  • 3D Visualization
  • 2D Cross-section
  • Zooming, rotating, translating
  • Picture Generation
  • pause a simulation
compucell3d xml input
CompuCell3D - XML input

<Potts>

<Dimensions x=“51" y=“51" z="21"/>

<Steps>10</Steps>

<Temperature>2</Temperature>

<Flip2DimRatio>1</Flip2DimRatio>

</Potts>

Potts Model

Defination

<Plugin Name="Volume">

<TargetVolume>64</TargetVolume>

<LambdaVolume>0.05</LambdaVolume>

</Plugin>

Volume

volume

volumeEnergy(cell)

<Plugin Name="Surface">

<TargetSurface>77</TargetSurface>

<LambdaSurface>0.05</LambdaSurface>

</Plugin>

Surface

area

surfaceEnergy(cell)

<Plugin Name="Contact">

<Energy Type1="Medium" Type2="Medium">0</Energy>

<Energy Type1="Light" Type2="Medium">0</Energy>

<Energy Type1="Dark" Type2="Medium">0.1</Energy>

<Energy Type1="Light" Type2="Light">0.5</Energy>

<Energy Type1="Dark" Type2="Dark">3.0</Energy>

<Energy Type1="Light" Type2="Dark">0.5</Energy>

</Plugin>

Contact

contactEnergy(

cell1, cell2)

compucell3d structure

CompuCell3D Program Flow

Initialization()

Steppables.Start()

For each Monte Carlo step:

For flip attempt:

if(flip):

CellChangeWatcher(cell)

Automatons.Update(cell)

Steppers.step()

Steppabless.step()

Steppables.finish()

CompuCell3D Structure

Steppables are executed once per Monte Carlo step and once before and after the main loop. They are the main hooks for initialization and rendering.

Plugins are loaded at runtime. They are the main way of adding new features to CompuCell. They can be Steppables, Steppers, CellChangeWatchers, or Automatons.

CellChangeWatchers are executed once per each successful spin flip. They are useful for adjusting values that depend on the number of lattice points in a cell.

Automatons enable cell state to change their state as the simulation evolves.

Steppers are executed once per spin flip attempt. They are the main hooks for energy functions.

installation
Installation
  • For testing purpose, you could directly install binary package
    • Easy to install
  • For development purpose, you could download source code and compile it
    • Your computer needs to have automake, autoconfigure, autohead, libtool package
  • You could find this package from simtk.org
your first example
Your first example

<CompuCell3D>

<Potts>

<Dimensions x="101" y="101" z="1"/>

<Anneal>0</Anneal>

<Steps>100</Steps>

<Temperature>5</Temperature>

<Flip2DimRatio>1</Flip2DimRatio>

<Boundary_y>Periodic</Boundary_y>

<Boundary_x>Periodic</Boundary_x>

<FlipNeighborMaxDistance>1.75</FlipNeighborMaxDistance>

</Potts>

<Plugin Name="CellType">

<CellType TypeName="Medium" TypeId="0"/>

<CellType TypeName="Foam" TypeId="1"/>

</Plugin>

<Plugin Name="Contact">

<Energy Type1="Foam" Type2="Foam">20</Energy>

<Energy Type1="Medium" Type2="Medium">100</Energy>

<Energy Type1="Medium" Type2="Foam">100</Energy>

<Depth>1.5</Depth>

</Plugin>

<Steppable Type="PIFInitializer">

<PIFName>Foam_1.pif</PIFName>

</Steppable>

</CompuCell3D>

1

2

3

4

setting for potts model
Setting for Potts Model

<Potts>

<Dimensions x="101" y="101" z="1"/>

<Anneal>0</Anneal>

<Steps>100</Steps>

<Temperature>5</Temperature>

<Flip2DimRatio>1</Flip2DimRatio>

<Boundary_y>Periodic</Boundary_y>

<Boundary_x>Periodic</Boundary_x>

<FlipNeighborMaxDistance>1.75</FlipNeighborMaxDistance>

</Potts>

setting for cell type and contact energy
Setting for Cell type and Contact energy

<Plugin Name="CellType">

<CellType TypeName="Medium" TypeId="0"/>

<CellType TypeName="Foam" TypeId="1"/>

</Plugin>

<Plugin Name="Contact">

<Energy Type1="Foam" Type2="Foam">20</Energy>

<Energy Type1="Medium" Type2="Medium">100</Energy>

<Energy Type1="Medium" Type2="Foam">100</Energy>

<Depth>1.5</Depth>

</Plugin>

pif file
PIF File

<Steppable Type="PIFInitializer">

<PIFName>Foam_1.pif</PIFName>

</Steppable>

1 Foam 1 5 1 5 0 0

2 Foam 1 5 6 10 0 0

3 Foam 1 5 11 15 0 0

4 Foam 1 5 16 20 0 0

5 Foam 1 5 21 25 0 0

6 Foam 1 5 26 30 0 0

7 Foam 1 5 31 35 0 0

8 Foam 1 5 36 40 0 0

9 Foam 1 5 41 45 0 0

pif generator
PIF Generator

./FoamInit.pl -r5 -i60 -ofoaminit1.pif -z2 -m10

Lattice dimension: x_max=301 y_max=301 z_max=1

<Dimensions x="301" y="301" z="1"/>

change temperature
Change temperature

5

500

<Potts>

<Dimensions x="101" y="101" z="1"/>

<Anneal>0</Anneal>

<Steps>1000</Steps>

<Temperature>500</Temperature>

<Flip2DimRatio>1</Flip2DimRatio>

<Boundary_y>Periodic</Boundary_y>

change contact energy
Change Contact energy

Mcs 100

Mcs 0

Mcs 50

<Plugin Name="Contact">

<Energy Type1="Foam" Type2="Foam">200</Energy>

<Energy Type1="Medium" Type2="Medium">1</Energy>

<Energy Type1="Medium" Type2="Foam">1</Energy>

<Depth>1.5</Depth>

</Plugin>

order of neighbor
Order of Neighbor

<Potts>

<Dimensions x="101" y="101" z="1"/>

<Anneal>0</Anneal>

<Steps>100</Steps>

<Temperature>5</Temperature>

<Flip2DimRatio>1</Flip2DimRatio>

<Boundary_y>Periodic</Boundary_y>

<Boundary_x>Periodic</Boundary_x>

<FlipNeighborMaxDistance>1.75</FlipNeighborMaxDistance>

</Potts>

<Plugin Name="Contact">

<Energy Type1="Foam" Type2="Foam">20</Energy>

<Energy Type1="Medium" Type2="Medium">100</Energy>

<Energy Type1="Medium" Type2="Foam">100</Energy>

<Depth>1.5</Depth>

</Plugin>

order of neighbor29
Order of Neighbor

1.5

2.7

1.1

<Plugin Name="Contact">

<Energy Type1="Foam" Type2="Foam">20</Energy>

<Energy Type1="Medium" Type2="Medium">200</Energy>

<Energy Type1="Medium" Type2="Foam">200</Energy>

<Depth>1.1</Depth>

</Plugin>

temperature effect on low order of neighbor
Temperature effect on Low Order of Neighbor

<Depth>1.1</Depth>

Temperature 5

Temperature 20

<Potts>

<Dimensions x="101" y="101" z="1"/>

<Anneal>0</Anneal>

<Steps>100</Steps>

<Temperature>5</Temperature>

<Flip2DimRatio>1</Flip2DimRatio>

<Boundary_y>Periodic</Boundary_y>

<Boundary_x>Periodic</Boundary_x>

<FlipNeighborMaxDistance>1.1</FlipNeighborMaxDistance>

</Potts>

xml file for cell sorting
XML file for Cell Sorting

<CompuCell3D>

<Potts>

<Dimensions x="70" y="70" z="1"/>

<Anneal>10</Anneal>

<Steps>10000</Steps>

<Temperature>5</Temperature>

<Flip2DimRatio>1</Flip2DimRatio>

<FlipNeighborMaxDistance>1.75</FlipNeighborMaxDistance>

</Potts>

<Plugin Name="Volume">

<TargetVolume>9</TargetVolume>

<LambdaVolume>3.0</LambdaVolume>

</Plugin>

<Plugin Name="Surface">

<TargetSurface>16</TargetSurface>

<LambdaSurface>0.5</LambdaSurface>

</Plugin>

<Plugin Name="CellType">

<CellType TypeName="Medium" TypeId="0"/>

<CellType TypeName="Condensing" TypeId="1"/>

<CellType TypeName="NonCondensing" TypeId="2"/>

</Plugin>

<Plugin Name="Contact">

<Energy Type1="Medium" Type2="Medium">0</Energy>

<Energy Type1="NonCondensing" Type2="NonCondensing">14</Energy>

<Energy Type1="Condensing" Type2="Condensing">2</Energy>

<Energy Type1="NonCondensing" Type2="Condensing">11</Energy>

<Energy Type1="NonCondensing" Type2="Medium">16</Energy>

<Energy Type1="Condensing" Type2="Medium">16</Energy>

<Depth>1.75</Depth>

</Plugin>

<Plugin Name="CenterOfMass"/>

<Steppable Type="OutputData"/>

<Steppable Type="BlobInitializer">

<Gap>0</Gap>

<Width>2</Width>

<CellSortInit>yes</CellSortInit>

<Radius>20-</Radius>

</Steppable>

</CompuCell3D>

1

2

3

4

energy setting
Energy setting

<Plugin Name="Volume">

<TargetVolume>9</TargetVolume>

<LambdaVolume>3.0</LambdaVolume>

</Plugin>

<Plugin Name="Surface">

<TargetSurface>16</TargetSurface>

<LambdaSurface>0.5</LambdaSurface>

</Plugin>

<Plugin Name="CellType">

<CellType TypeName="Medium" TypeId="0"/>

<CellType TypeName="Condensing" TypeId="1"/>

<CellType TypeName="NonCondensing" TypeId="2"/>

</Plugin>

<Plugin Name="Contact">

<Energy Type1="Medium" Type2="Medium">0</Energy>

<Energy Type1="NonCondensing" Type2="NonCondensing">14</Energy>

<Energy Type1="Condensing" Type2="Condensing">2</Energy>

<Energy Type1="NonCondensing" Type2="Condensing">11</Energy>

<Energy Type1="NonCondensing" Type2="Medium">16</Energy>

<Energy Type1="Condensing" Type2="Medium">16</Energy>

<Depth>1.75</Depth>

</Plugin>

initial structure setting
Initial structure setting

<Steppable Type="BlobInitializer">

<Gap>0</Gap>

<Width>2</Width>

<CellSortInit>yes</CellSortInit>

<Radius>20-</Radius>

</Steppable>

future plans
Future Plans
  • We want to hear from you
  • Shell language interface
    • As matlab, FemLab
  • Parallelizing