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