90 likes | 190 Views
Intro to CompuCell3D. Chris Mueller September 20, 2004. Goals. Allow scientists to focus on simulation development Standardize the Potts Model simulation environment Minimize the amount of codin g required Flexible simulation framework It must be easy to extend and add new features.
E N D
Intro to CompuCell3D Chris Mueller September 20, 2004
Goals • Allow scientists to focus on simulation development • Standardize the Potts Model simulation environment • Minimize the amount of coding required • Flexible simulation framework • It must be easy to extend and add new features
Lattice and Chemical Fields Initialization and Rendering Plugins Cell Parameter and Hamiltonian Plugins 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. Plugins have access to the entire lattice and can be used to initialize the cells in the lattice and save the state of the lattice at each MC step. Plugins can define new cell parameters and their accociated enery functions. Volume volume volumeEnergy(cell) Cell <Plugin Name="Volume"> <TargetVolume>64</TargetVolume> <LambdaVolume>0.05</LambdaVolume> </Plugin> UniformInitializer <Steppable Type="UniformInitializer"> <Gap>4</Gap> <Width>2</Width> </Steppable> Surface area surfaceEnergy(cell) <Plugin Name="Surface"> <TargetSurface>77</TargetSurface> <LambdaSurface>0.05</LambdaSurface> </Plugin> OgleDumper <Steppable Type="OgleDumper" Frequency="1"> <Renderer>Additive</Renderer> <FilePrefix>chickenlimb</FilePrefix> </Steppable> Contact contactEnergy( cell1, cell2) <Potts> <Dimensions x="71" y="36" z="211"/> <Steps>10</Steps> <Temperature>2</Temperature> <Flip2DimRatio>2</Flip2DimRatio> </Potts> <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> <Plugin Name="Chemical"> <Threshold>0.8</Threshold> <Lambda>10</Lambda> <ConcentrationFile> field.dat </ConcentrationFile> </Plugin> CompuCell3D Overview All 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 resrouces.
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() Renderers.renderStep() Steppables.finish() Customizing CompuCell3D CompuCell3D defines a set of classes that can be extended to add features to a simulation. 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. Some simulation features, such as Renders are so common that they are built into the system. 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.
Running CompuCell3D CompuCell3D currently supports two modes of execution: CompuCellGUI CompuCell3D (command line/batch processing) % ./CompuCell3D ../../examples/cellsort.xml Found the following plugins: CellSortType: Adds cell type variable and updates cell types. CenterOfMass (Volume): Tracks the center of mass for each cell. Chemical: Adds the chemical energy function. ChickGrowthType: Adds cell type variable and updates cell types. ChickType: Adds cell type variable and updates cell types. Contact: Adds the interaction energy function. DictyType: Adds cell type variable and updates cell types. Growth: Adds the growth energy function. Mitosis (Volume): Splits cells when the reach they doubling volume. Polarity (CenterOfMass): Keep a direction vector for each cell and adds the polarity energy function. Surface: Tracks cell surfaces and adds surface energy function. Volume: Tracks cell volumes and adds volume energy function. Plugins: CellSortType, CenterOfMass, Contact, Surface, Volume Memory Per Cell: 17 bytes Dimensions (100,100,1) Temperature 5 Step 0 Energy 0 Cells 305 Step 1 Flips 342/10000 Energy -846 Cells 305 Step 2 Flips 227/10000 Energy -1314 Cells 305 Step 3 Flips 225/10000 Energy -1780 Cells 305 Step 4 Flips 220/10000 Energy -1967 Cells 305 Step 5 Flips 201/10000 Energy -2266 Cells 305 CompuCellGUI features real-time 2D rendering and advanced scripting capabilities for rapid simulation development. The command line version of CompuCell3D is useful for running simulations in batch mode or distributing simulations to clusters. It does not currently support scripting extensions. 1
Rough Edges CompuCell3D is still under heavy development but is ready for use. If will quickly evolve over the next few months to contain all the features necessary for serious simulation development. Input and guidance from users will be very important to make sure it meets everyone’s needs! • Type specific parameters • It is currently difficult to have different volume and surface constraints for different types of cells • Boundary conditions are currently just walls, periodic and other types of boundary conditions will be available soon. • Chemical fields are currently static and must be updated periodically from files. • 3D visualization is very limited.
Future Plans • Features you need! • Let’s get a few simulations running soon • BIOLOGO • Domain specific language for generating energy functions and automata for CompuCell3D • Improved usability (we need your feedback!) • Automated parameter sweeps • Cluster integration (e.g. AVIDD)
When can I use it? • Now • However, you are responsible for installing CompuCell3D and the required support libraries • CompuCell3D is located at: • http://sourceforge.net/compucell • To use the GUI and scripting exentsions, you also need Python 2.3 (2.2 may work) and wxPython (www.wxPython.org) • In about 2 weeks • We are working to standardize the Biocomplexity network and will have a common version of CompuCell3D and the GUI available very soon. • This will be the version that will be supported and contain all extensions for Biocomplexity simulations.
Credits • Dr. Jesus Izaguirre and Trevor Cickovski from the University of Notre Dame are the main authors of CompuCell3D and have agreed to work closely with us to ensure the success of CompuCell3D. • Randy Heiland and Charlie Moad from the STL at IUPUI are developing the 3D visualization system for generating still pictures and movies.