Cx3D: Cortex Simulation in 3D
Cx3D (pronounced Cortex 3D) is a simulation tool for simulating the growth primarily of neural tissue but is also capable of simulating other tissue growth. Cx3D allows a modeler to simulate the behavior of cells and their axonal and dendritic extensions in an artificial environment. Each cell can interact locally with its environment that consists of other cells and a chemical environment. The emphasis in Cx3D is on the local behavior of cells and the emergence of a global structure through the local behavior of the cells. It is not concerned with the simulation of an individual cell’s internal environment but how multiple cells can organize themselves.
In order to understand how tissue forms, and therefore how parts of the body of a multicellular organism form, we must study how cells organize themselves into these composites. Each cell is an individual; it has an internal environment of chemicals that is separated by a membrane from the external environment. The cell is the basic operational unit of an organism. In the development of an animal, each body starts with the fertilized egg. The fertilized egg, a single cell, starts to divide and create more cells. With each cell cycle the number of cells potentially doubles, and thus, exponentially more cells are created over time. These cells form all the body parts, but how do they do this? There is no global controlling unit that tells each cell what to do. Each cell individually has to figure out what it has to do in this vast sea of potentially billions of other cells.
Cx3D is a simulation program that allows modelers to try out their theories of how the developmental process happens. Even though Cx3D was written with the intention of studying the development of neural tissue, it is not limited to that. Cx3D allows cells to divide, grow out axons and dendrites, secrete external and internal chemicals, read internal and external chemicals, and move around in the environment (the extracellular matrix which forms the biological environment of cells). The modeler has full control over these actions and can write small modules called BiologicalModules that are essentially programs running in the cells to define their behavior. BiologicalModules can be seen as an epiphenomenological model of proteins working together that define one behavior of a cell, e.g., to move the cell in a direction defined by an extracellular chemical gradient.
Cx3D provides a basic physics engine that prevents cells and cell parts from overlapping. The user of the simulation tool does not have to worry about the detailed implementation of the physical processes if he does not want to do so and can focus on the biological aspects of the model. In order to support the modeler even further, a language has been developed that supports the modeler in only allowing biologically plausible commands for the cells. This language, named GCode, is not directly part of Cx3D and therefore does not have to be used, but it proves to be very helpful in developing correctly behaving models.
In Cx3D, the cells are compartmentalized. The soma is approximated with a sphere, and the axons, dendrites, and other processes are approximated with cylinders. Each of these compartments can potentially run a different BiologicalModule and therefore have a biologically active behavior. They are all passively subject to the force scheme of the simulation tool.
Cx3D operates on three levels of simulation: a biological, a physical, and a spatial level. The spatial level provides the neighborhood relations between the different compartments of the cells. The physical level uses the spatial information to calculate forces between the cellular compartments and takes care of intracellular and extracellular chemical diffusion processes. The biological level makes use of the physical level and organizes the compartments into cells that can run BiologicalModules. The simulation is round based and approximates development in small time steps.
Since tissue is built of thousands and potentially millions of cells, Cx3D has been extended into Cx3Dp (p for parallel) that runs in a multi-core/multi-computer environment to allow for these big simulations.
More information on Cx3D, along with links to publications and the latest version of the source code, can be found at http://www.ini.uzh.ch/~amw/seco/cx3d.