20
Modeling morphogenesis at the cell level – tools and techniques Outline: 1. What is CompuCell3D? 2. Motivation 1. Why CompuCell3D and why now? 2. Collaboration 3. Extended Potts Model – an overview 4. Building CompuCell3D 5. Visualization package and scripting languages 6. Example simulations 7. CompuCell 3D – roadmap

Modeling morphogenesis at the cell level – tools and techniques Outline: 1.What is CompuCell3D? 2.Motivation 1.Why CompuCell3D and why now? 2.Collaboration

Embed Size (px)

Citation preview

Modeling morphogenesis at the cell level – tools and techniques

Outline:

1. What is CompuCell3D?

2. Motivation

1. Why CompuCell3D and why now?

2. Collaboration

3. Extended Potts Model – an overview

4. Building CompuCell3D

5. Visualization package and scripting languages

6. Example simulations

7. CompuCell 3D – roadmap

Frequently Asked Questions:

Q: What is CompuCell3D?

A: CompuCell3D is an open source software for modeling morphogenesis using extended Potts Model

Q: How do I use it?

A: You need to create XML configuration file which describes your simulation. We are working on graphical front-end to make this process as easy as possible

Q: How do I visualize the results of my simulation?

A: CompuCell3D will come with CompuCellPlayer – an intuitive visualization tool

Q: What do I do if a given feature needed in my simulation is not supported by CompuCell3D?

A: You can either implement this feature as a CompuCell3D plugin (will be documented in the developers manual), or implement it using scripting languages such as Python (under construction) or BIOLOGO. BTW, we welcome collaborators and contributors.

Q: Is there a parallel version of CompuCell3D?

A: Not yet, but we are working on it.

• First application written in Fortran

• Tom ports to C• Adds command line parameters, makefile

• Jenny ports to F90• Extends model

• Brad ports to C++• Models system using objects

• Maria implements simulation in Java for the Grid• Implements original model

F77

C

C++ C++

F90

Java

Why CompuCell3D and why now?Typical Evolution of Research Software

(in collaboration with Chris Mueller)

• Sounds familiar? Keep listening…

C1

C2

C3

F771

F772

F901

F902F903

F904

C++1

C++2

C++ Java

Version used for paper

• There were 6 major versions– 13 actual implementations– 5 Languages

• 2 major versions advanced the science• 4 major versions were simply software

projects• All versions re-implemented basic features• The implementations used for the papers

were not always used for the next major version

Versions that advanced science

A Closer Look

Problem: Research software applications are difficult to develop and are costing researchers time and money.

Solution: Separate Research and Development and use a development model derived from industrial software development.

• Software Quality is improved– Applications are not single-user prototypes– Features are available to all researchers and are peer-reviewed

• Research Process is improved– Researchers can focus on research– Development is not a bottleneck– Reproducibility and Traceability

• Reproduce old experiments, trace the data/process that led to a result– Easier to integrate new/visiting researchers

• High-end software becomes possible– Parallel and high-performance implementations– Well designed user interfaces, visualization, databases, web applications and

services

Benefits

CompuCell3D collaboration

University of Notre Dame , Indiana University

People:

Mark Alber, Ariel Balter, Rajiv Chaturvedi,Nan Chen, Trevor Cickovski, Jeff Coffland, Michael Crocker, Gabor Forgacs, James Glazier, Tilmann Glimm, George Hentschel, Chengbang Huang, Jesus Izaguirre, Chris Mueller, Stuart Newman, Nikodem Poplawski, Maciej Swat, Gilberto Thomas

Funding agencies and institutions:

NSF, ICSB Notre Dame, The Biocomplexity Institute Indiana University, NIH

Users – most important part of the collaboration.

Website:

http://sourceforge.net/projects/compucell/

Google keyword: CompuCell3D

The Potts Model

...

)()(

)1(

22

',))'(()),(())'(()),((

haptchem

vs

xxxxxx

EE

VvSs

JE

•Energy minimization formalism- extended by Graner and Glazier, 1992

•DAH: Contact energy depending on cell types (differentiated cells)

•Metropolis algorithm: probability of configuration change

x 20

CompuCell3D architecture

KernelRuns Metropolis Algorithm

PluginsCalculate change

in energy

PDE Solvers

InterpreterCode Generator

Visualization, Steering,User Interface

Lattice monitoring

Object oriented implementation in C++ and Python

XML Basics

XML stands for eXtensible markup language. It is not a programming language. Its main purpose is to standarize information exchange between different applications.

XML Example:

<Sentence>

<Text>It is too early to be in class</Text>

<FontType>TimesNewRoman</FontType>

<FontSize>12</FontSize>

<DisplayHint hint=“AddFrameAround”/>

</Sentence>

Describing the simulationAll simulation parameters are controlled by the config file. The config file allows you to only add

those features needed for your current simulation, enabling better use of system resources.

<Potts> <Dimensions x="71" y="36" z="211"/> <Steps>10</Steps> <Temperature>2</Temperature> <Flip2DimRatio>2</Flip2DimRatio> </Potts>

Cell

<Plugin Name="Chemical"> <Threshold>0.8</Threshold> <Lambda>10</Lambda> <ConcentrationFile> field.dat </ConcentrationFile> </Plugin>

Lattice and Chemical Fields

The main Potts lattice holds the cells and controls the Monte Carlo loop. Plugins can be used to overlay additional fields, such as chemical concentrations on the lattice.

VolumevolumevolumeEnergy(cell)

<Plugin Name="Volume"> <TargetVolume>64</TargetVolume> <LambdaVolume>0.05</LambdaVolume> </Plugin>

SurfaceareasurfaceEnergy(cell)

<Plugin Name="Surface"> <TargetSurface>77</TargetSurface> <LambdaSurface>0.05</LambdaSurface> </Plugin>

ContactcontactEnergy( cell1, cell2)

<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>

Cell Parameter and Hamiltonian Plugins

Plugins can define new cell parameters and their associated energy functions.

<Potts> <Dimensions x="71" y="36" z="211"/> <Steps>10</Steps> <Temperature>2</Temperature> <Flip2DimRatio>

2</Flip2DimRatio> </Potts>

<Plugin Name="Chemical"> <Threshold>0.8</Threshold> <Lambda>10</Lambda> <ConcentrationFile> field.dat </ConcentrationFile> </Plugin>

...

<Potts> <Dimensions x="71" y="36" z="211"/> <Steps>10</Steps> <Temperature>2</Temperature> <Flip2DimRatio>2</Flip2DimRatio> </Potts>

<Plugin Name="Chemical"> <Threshold>0.8</Threshold> <Lambda>10</Lambda> <ConcentrationFile> field.dat </ConcentrationFile> </Plugin>

...

CompuCell related example

Running the simulationSteering bar allows users to start or pause the simulation, zoom in , zoom out, to switch between 2D and 3D visualization, change view modes (cell field, pressure field , chemical concentration field, velocity field etc..)

Player can output multiple views during single simulation run – Add Screenshot function

Information bar

Scripting languages – extending capabilities of CompuCell3D

BIOLOGO - high level, XML based language for describing parts of the simulation. BIOLOGO is translated to C++ and compiled as a CompuCell3D plugin to deliver optimal performance. It is straightforward to use

Python:

We will embed Python in CompuCell3D to give users similar level of flexibility as Matlab or Mathematica. Most of the low level functions will be implemented in C++ but callable from Python level.

Example: Creating a PDE solver is reduced to writing several statements in BIOLOGO.

<DiffEq fieldname="C"><Term exp="Kronecker(x,y,z)*alpha - epsilon*C*(1-Kronecker(x,y,z)) + DiffConst*Laplacian(C)"condition="true" />

</DiffEq>

Kernel Plugin C++ BIOLOGO

Example simulations using CompuCell3D

Dictyostelium discoideum

The model is based on oscilatory Fitzhugh-Nagumo type of equations (Savill Hogeweg, 1997):

))((

)(2

rbkcct

r

rcfcDt

c

c – denotes cAMP concentration - activator

r-refractoriness - inhibitor

f(c) – piecewise linear function

b=0 for excitable cells , b != 0 for autocycling cells

This system of equations will produce waves of cAMP passing through the lattice. Cells respond to cAMP gradient by biasing their movement towards higher level of cAMP. We assume that cells chemotact “periodically” and only when cAMP concentration is high enough

Autocycling amoebae initiate waves of cAMP

cAMP wave passes through amoebae and a substrate

Amoebae move up the cAMP concentration gradient - chemotaxis

Mound is formed with autocycling cells at the top

cAMP wave propagates down the mound

Dictyostelium Discoideum – early stages of aggregation

Cell sorting

Cell sorting is a rearrangement of cells driven by local physical properties of cells (cell-cell adhesion). Different parameters lead to different final patterns:

Initial configuration of condensing (red) and non-condensing (green) cells immersed in medium (blue)

Checkerboard pattern arises when adhesion between red and green cells is stronger than adhesion between cells of the same type

Complete sorting – adhesion between red cells is stronger then between green cells and between red and green

Partial sorting – very similar to complete sorting except that the adhesion between red and green cells is higher than adhesion between green cells

Gastrulation

Ariel Balter

All higher animals undergo a process called gastrulation at the earliest stages of development. During gastrulation the embryo takes the first steps from a more-or-less uniform ball of cells towards a differentiated organism with individual organs. One of the key process that begins gastrulation is the onset of large-scale motion of cells which first deform the symmetric blastoderm (the stage preceding gastrulation). It has been hypothesized that cell motion in response to chemical attractors and repellors plays an important role in this process.

Here we test a highly simplistic model of chemo-attraction/repulsion in the chick embryo. This model does capture certain features of overall cell redistribution as well as the resulting remodeling of the embryo as a whole. However it does not reproduce vortex motion observed in work done under James Glazier.

Area Opaca

Chemo-attractant sourceChemo-repellant source Characteristic bulging due to

pressure from aggregating cells

Area Pellucida

Fibronectin driven condensation as a function of cell density

Nikodem Poplawski

We are able to study how fibronectin-cell interaction and initial cell density affects cell condensation patterns. Fibronectin limits the size of forming clusters.

High cell density results in stripes of cell condensate

Medium cell density produces a mixture of condensate stripes and spots

Low cell density leads to condensate spots

Roadmap

CompuCell3D needs further development in order to become a universal framework for modeling morphogenesis:

1st quarter 2006

-Full support for scripting languages

-Isolate users from XML - graphical configuration tools

-Provide full diagnostics of the simulation in CompuCell Player – for example right-click should provide information about given cell

2nd-3rd quarter 2006

-Movies, scientific plots and all lattice information will be available through the Player

-Parallel version

2006/2007

-Steering and parameters sweeps

-Serializing simulation – users will be able to stop the simulaiton and resume it later

-Project management