Visualizing Cells and their Connectivity Graphs for CompuCell3D Randy Heiland CREST, Pervasive Technology Institute Indiana University Maciek Swat Biocomplexity Institute Indiana University James Sluka Biocomplexity Institute Indiana University Benjamin Zaitlen § Biocomplexity Institute Indiana University Abbas Shirinifard Biocomplexity Institute Indiana University Gilberto L. Thomas Instituto de Fisica Universidade Federal do Rio Grande do Sul Andrew Lumsdaine ∗∗ CREST, Pervasive Technology Institute Indiana University James A. Glazier †† Department of Physics, Biocomplexity Institute Indiana University ABSTRACT Developing models that simulate the behavior of different types of interacting biological cells can be a very time consuming and er- ror prone task. CompuCell3D is an open source application that addresses this challenge. It provides interactive and customizable visualizations that help a user detect when a model is producing the desired behavior and when it is failing. It also allows for high quality image generation for publications and presentations. Com- puCell3D uses the Python programming language which allows for easy extensions. Examples are provided for performing graph anal- yses of cell connectivity. Index Terms: J.3 [Computer Applications]: Life and Medi- cal Sciences—Biology and Genetics; D.3.2 [Programming Lan- guages]: Language Classifications—Very high-level languages 1 I NTRODUCTION Developmental biology is a fascinating subject and provides signif- icant challenges for computational science. The fact that each of us began as a single cell and developed into trillions of cells, produc- ing a breathing, moving, thinking organism should be a source of wonder. Many of the underlying processes for this development are not unique to humans, however; life on this planet is, fortunately, very diverse and many developmental processes are common. Since the discovery of the structure of DNA in the 1950s, bi- ological research has, quite understandably, been focused on the molecular level. While this has led to tremendous insights, it has inadvertently lessened the importance of the cell as a structural unit. And yet, experimental biology is still observed at the multi-cell level. This is where, for example, we see cells move, divide, ad- here, secrete, aggregate, communicate and die. It therefore seems logical to conduct computational biology at a multi-cell level as well. Sydney Brenner, a Nobel laureate in Physiology or Medicine, has stated [10]: I believe very strongly that the fundamental unit, the correct level of abstraction, is the cell and not the genome. e-mail:heiland@indiana.edu e-mail:maciekswat@gmail.com e-mail:jsluka@indiana.edu § e-mail:bzaitlen@indiana.edu e-mail:ashirinifard@gmail.com e-mail:glt@if.ufrgs.br ∗∗ e-mail:lums@indiana.edu †† e-mail:glazier@indiana.edu Wolpert [14] offers a fascinating story for nonspecialists about the lives of cells, explaining mitosis, growth, gastrulation, cancer, and much more. We provide an overview of CompuCell3D (CC3D; compu- cell3d.org), a software application to simulate the behaviors of gen- eralized cells. Our focus in this paper is on the visualization of those cells and their connectivity with each other. CompuCell3D is primarily used to develop models for multi-cellular biology, how- ever, it is also used for non-biological models, as we will see. Another topic that we discuss is the Python programming lan- guage and the key role that it plays in CompuCell3D. 2 COMPUCELL3D CC3D [8][12] is an open source software application to simulate models that have generalized cells as their fundamental objects. Users can download the source code and build it themselves or download binaries that are ready to run. The application comes with several example models. Documentation and a community fo- rum are accessible from the web site. All CC3D models are based on the more general Glazier-Graner- Hogeweg (GGH) mathematical model [3]. GGH is defined on a uniform lattice domain and each generalized cell is a spatially de- fined contiguous subset of pixels (voxels) on the 2D (3D) lattice. A 2D lattice can be either square or hexagonal (with 3D analogues). Therefore, for relatively small lattices, rendered cells can be quite pixelated. Each generalized cell shares a common cell index (σ) and is of a defined cell type (τ ). There will be very few cell types compared to the large number of cell indices. For example, in the human body, while there are trillions of cells, there are on the order of a few hundred cell types. GGH uses an energy-based formalism to describe cell behaviors. It evolves cells using a (local) energy minimization algorithm with a Boltzmann acceptance function that simulates a constant temper- ature. The effective energy (H) is defined as follows: H = i,j J (τ (σi )(σj ))(1 - δ(σi j ))+ σ λ vol (σ)(v(σ) - Vt (σ)) 2 + ... (1) where i, j are neighbor lattice sites and σ and τ were defined above (cell index and cell type). The first sum in H calculates the adhe- sion energy between neighboring cells. Higher adhesion energies result in cell-cell repulsion whereas lower adhesion energies cause cells to adhere. The second sum in H represents a volume conserva- tion constraint. This term will cause cells to reach a user-specified target volume and is defined in CC3D as a plugin. There are numer- ous plugins available in CC3D, each one contributing to a particular behavior of a cell, e.g. volume, surface area, polarity, etc.. More details about GGH can be found in the literature [12][11]. Most of the code base for CC3D implements the GGH algorithm and is written in C++. However, Python is also used extensively. 85 IEEE Symposium on Biological Data Visualization 2012 October 14 - 15, Seattle, Washington, USA 978-1-4673-4730-3/12/$31.00 ©2012 IEEE