CompuCell3D: A Morphogenesis simulation package

Slides:



Advertisements
Similar presentations
3D Substitution Model for Limb Growth and Pattern Formation Ying Zhang 1, Stuart A. Newman 2, James A. Glazier 1 1.Biocomplexity Institute, Department.
Advertisements

Integration of MBSE and Virtual Engineering for Detailed Design
FPGA (Field Programmable Gate Array)
Seminar On “ OMNET++ Network Simulator” Presented By: Saurav K Bengani Guided By: Guided By: Dr. Andrew yang Dr. Andrew yang.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
* Finally, along the lines of predicting system behavior, researchers may want to know what conditions will lead to an optimal outcome of some property.
Requirements Specification
Three-Dimensional Simulation of Morphogenesis Jesus A. Izaguirre Department of Computer Science and Engineering University of Notre Dame.
1 The Potts model Mike Sinclair. 2 Overview Potts model –Extension of Ising model –Uses interacting spins on a lattice –N-dimensional (spin states > 2)
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
Current Visualization Software NCL, Amira, and OpenDX By Drew Brumm.
Nawaf M Albadia Introduction. Components. Behavior & Characteristics. Classes & Rules. Grid Dimensions. Evolving Cellular Automata using Genetic.
A Billiards Point of Sale Application Christopher Ulmer CS 470 Final Presentation.
Modeling morphogenesis at the cell level – tools and techniques Outline: 1.What is CompuCell3D? 2.Motivation 1.Why CompuCell3D and why now? 2.Collaboration.
Submitted by: Madeeha Khalid Sana Nisar Ambreen Tabassum.
Intro to CompuCell3D Chris Mueller September 20, 2004.
Introduction to CompuCell3D Outline: 1.What is CompuCell3D? 2.Why use CompuCell3D? 3.Demo simulations 4.Glazier-Graner-Hogeweg (GGH) model – an overview.
CompuCell Software Current capabilities and Research Plan Rajiv Chaturvedi Jesús A. Izaguirre With Patrick M. Virtue.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Introduction to MDA (Model Driven Architecture) CYT.
Building CompuCell3D Simulations Step-by-Step Tutorial Maciej Swat.
Grid Job and Information Management (JIM) for D0 and CDF Gabriele Garzoglio for the JIM Team.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
Biological and Biomedical Modeling Using CompuCell3D Tutorial Indiana University Bloomington, Indiana Maciej Swat, James Glazier.
Machine Vision Products that IMPACT your Bottom Line! Introducing KickStart!
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
CHAPTER TEN AUTHORING.
GPU-Accelerated Surface Denoising and Morphing with LBM Scheme Ye Zhao Kent State University, Ohio.
Selected Topics in Software Engineering - Distributed Software Development.
Introduction to Lattice Simulations. Cellular Automata What are Cellular Automata or CA? A cellular automata is a discrete model used to study a range.
Playing God: The Engineering of Functional Designs in the Game of Life Liban Mohamed Computer Systems Research Lab
An Introduction to Visual Basic.NET. What is.NET.Net is a new framework for developing windows-based and web-based applications within the Microsoft environment.
Visual Linker Prototype presentation.
Sketch Outline Ising, bio-LGCA and bio-Potts models Potts model general description computational description Examples of ‘energies’ (specifying interactions)
Modeling Morphogenesis in Multi-Cellular Systems (Complex Systems Project) Heather Koyuk Spring 2005 Other Team Members CS Student: Nick Armstrong Chemistry.
Ad Hoc Graphical Reports Ad Hoc Graphical Reports Copyright © Team #4 CSCI 6838 Spring CSCI Research Project and Seminar Team# 4 (
Copyright © 2010 – MICS 2010, Curt Hill Instructor Tools: Test Data Generation Curt Hill Valley City State University.
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
Developing CompuCell3D modules in C++ Outline 1. Why you might want to consider developing CompuCell3D modules in C++? 2. C++ CompCell3D programming essentials.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Introduction: Lattice Boltzmann Method for Non-fluid Applications Ye Zhao.
CompuCell3D Training Workshop Biocomplexity Institute Indiana University Bloomington, August Maciej Swat James Glazier Benjamin Zaitlen Randy.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
13. Extended Ensemble Methods. Slow Dynamics at First- Order Phase Transition At first-order phase transition, the longest time scale is controlled by.
Visualization in Problem Solving Environments Amit Goel Department of Computer Science Virginia Tech June 14, 1999.
Mantid Stakeholder Review Nick Draper 01/11/2007.
Javier Junquera Importance sampling Monte Carlo. Cambridge University Press, Cambridge, 2002 ISBN Bibliography.
Understand Windows Services Software Development Fundamentals LESSON 5.3.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Landau free energy density For large N we expect thermodynamic limit t=(T-T c )/T c (t=0 corresponds to the critical temperature Can think of this as averaging.
ECG Simulation NCRR Overview Technology for the ECG Simulation project CardioWave BioPSE project background Tools developed to date Tools for the next.
OSSIM Technology Overview Mark Lucas. “Awesome” Open Source Software Image Map (OSSIM)
SEAMCAT European Communications Office José Carrascosa - SEAMCAT Manager 5 April 2016.
“Port Monitor”: progress & open questions Torsten Wilde and James Kohl Oak Ridge National Laboratory CCA Forum Quarterly Meeting Santa Fe, NM ~ October.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
1 RIC 2009 Symbolic Nuclear Analysis Package - SNAP version 1.0: Features and Applications Chester Gingrich RES/DSA/CDB 3/12/09.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Self Healing and Dynamic Construction Framework:
GWE Core Grid Wizard Enterprise (
Pipeline Execution Environment
Module 1: Getting Started
IMAGE MOSAICING MALNAD COLLEGE OF ENGINEERING
Advisor: Dr. Bhushan Dharmadikhari2, Co-Advisor: Dr. Prabir Patra1, 3
FEniCS = Finite Element - ni - Computational Software
Presentation transcript:

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

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.

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.

Cellular Potts Model

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

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

Framework of CompuCell3D

Information flow chart for CompuCell3D CompuCellPlayer XML input User CompuCell3D Kernal

CompuCellPlayer Visualization tool Using QT Lib 3D Visualization 2D Cross-section Zooming, rotating, translating Picture Generation pause a simulation

CompuCell3D - XML input <Potts> Potts Model <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 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. 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 Program Flow 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.

Quickstart Guide of CompuCell3D

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-Foam simulation Mcs 0 Mcs 50 Mcs 100

Your first example 1 2 3 4 <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> <Steppable Type="PIFInitializer"> <PIFName>Foam_1.pif</PIFName> </Steppable> </CompuCell3D> 1 2 3 4

Setting for Potts Model <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 <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>

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 ./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 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 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 5 4 3 2 1 x <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 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 <Depth>1.1</Depth> Temperature 20 Temperature 5 <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>

Cell Sorting Initial

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 Name="CellType"> <CellType TypeName="Medium" TypeId="0"/> <CellType TypeName="Condensing" TypeId="1"/> <CellType TypeName="NonCondensing" TypeId="2"/> <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 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 <Plugin Name="Volume"> <TargetVolume>9</TargetVolume> <LambdaVolume>3.0</LambdaVolume> </Plugin> <Plugin Name="Surface"> <TargetSurface>16</TargetSurface> <LambdaSurface>0.5</LambdaSurface> <Plugin Name="CellType"> <CellType TypeName="Medium" TypeId="0"/> <CellType TypeName="Condensing" TypeId="1"/> <CellType TypeName="NonCondensing" TypeId="2"/> <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>

Initial structure setting <Steppable Type="BlobInitializer"> <Gap>0</Gap> <Width>2</Width> <CellSortInit>yes</CellSortInit> <Radius>20-</Radius> </Steppable>

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