The authors have declared that no competing interests exist.
Certain tumor phenomena, like metabolic heterogeneity and local stable regions of chronic hypoxia, signify a tumor’s resistance to therapy. Although recent research has shed light on the
Tumors are disorganized, heterogeneous tissues, consisting of many distinct cell types in spatially complex arrangements. The somatic evolution of early carcinogenesis feeds on sources of phenotypical variation present in tumor and surrounding stromal tissue. Besides the polyclonal proliferating cancer cell population undergoing somatic evolution [
As a tumor grows, it rapidly outstrips its blood supply. High proliferation causes high cell density that overtaxes local oxygen supply. This leaves portions of the tumor with an oxygen concentration significantly lower than in healthy tissues. This stress condition is tumor hypoxia. Hypoxia is strongly correlated with poor prognosis as it renders tumors less responsive to chemotherapy and radiotherapy [
We are especially interested in simulating how tumor chronic hypoxia interacts with tumor metabolic heterogeneity [
For a long time, there was no systematic characterization of metabolic pathways active in transformed cells, so the contribution of these pathways in promoting rapid cancer cell proliferation was unclear. But in 2012, Jain,
When one is deciding how to create a computational model of a cell population, the primary choice is whether it should be continuous or discrete (or a hybrid). Usually, this breaks out into two canonical design dimensions. In the first, one can represent cells as points, or as being composed of sub-elements. In the second, cells can occupy positions on a fixed, regular lattice, or positions off-lattice. The lattice-gas cellular automata model [
We restrict our focus to individual-based, spatially-resolved, diffusive models that can represent the gross metabolic phenotypical properties measured by Jain,
We observe important emergent phenomena such as metabolic symbiosis [
The universe of the simulation is a 2D or 3D cellular automaton [
In the context of simulating large, heterogeneous cell populations, we need a flexible and extensible framework. We first specify the dimensions of our universe as
First are the default parameters. These include:
Second are the conditional parameters. These are formulated as trigger-action pairs. A trigger is a set of one or more predicates that are based on particle concentrations, as measured by the cell in its locality. All trigger predicates must be true to execute the associated action. An action is a set of commands which are executed sequentially. The possible commands include: apoptosis; become (“jump to”) another cell type,
The initial cell population in the lattice constitutes another set of parameters. The default cell type for the lattice is empty (
Each time step drives the simulation through four phases. Particles are consumed and released according to the cell type’s consumption and release rates, respectively, for that particle type. Particles continually diffuse in
Let
Note that cell type
The simulator has additional parameters related to particle concentrations. Initial concentrations, and basal upper and lower bounds, can be set for each particle type. For the latter, the simulator enforces the bounds in this phase at each time step: those concentrations falling below the lower bound are set to the lower bound; those rising above the upper bound are set to the upper bound.
At each time step, each lattice point’s concentration of the particles it contains is updated according to the diffusion rate,
We assume input array values outside the bounds of the array are equal to the nearest array border value. We accomplish the convolution using Matlab’s
Equivalently, consider each individual particle taking a random walk in each of the three dimensions [
For each location in the lattice (
After we compute these individual fitness scores for each lattice location, we use them to decide probabilistically what cell type each location (
Each cell’s immediate neighbors give a distribution from which to draw the target cell type. Let
We accomplish this as follows. Let shrinkage factor
Note that cell type
Between phases 3 and 4, the simulator computes and displays a number of useful statistics for the user. These are organized into a console style grid of plots below. Since we can often get a good sense of what is happening by examining 2D slices of our 3D world, and because rendering 3D plots is computational expensive, the dashboard consists of mostly 2D plots, and defaults to showing 2D slices on the
On the Spatial organization of all cell types: 2D slice, color coded Time series plot of the wall clock seconds elapsed at each time step (performance diagnostic)
On the Spatial organization of individual fitness of cell type 1: 3D scatter plot, color coded, intensity level denotes fitness same as above for cell types 2, …, Spatial organization of individual fitness of cell type Time series plot of each cell type’s population at each time step, color coded
On the Spatial organization of individual fitness of cell type 1: 2D slice, color coded, intensity level denotes fitness same as above for cell types 2, …, Spatial organization of individual fitness of cell type Time series plot of each cell type’s mean individual fitness (± standard deviation) at each time step, color coded
On the Spatial organization of neighborhood fitness of cell type 1: 2D slice, color coded, intensity level denotes fitness same as above for cell types 2, …, Spatial organization of neighborhood fitness of cell type Time series plot of each cell type’s mean neighborhood fitness (± standard deviation) at each time step, color coded
On the Time series plot of cell type 1’s same as above for cell types 2, …, Time series plot of cell type Time series plot of each cell type’s whole-image Euler-Poincare characteristic at each time step, color coded
On the Particle type 1 concentration: 2D slice, mesh plot same as above for particle types 2, …, Particle type
Figs
Simulator console displaying an evolving necrotic core in a 40 × 40 lattice. The simulation consists of four cell types—
Simulator console displaying evolving regions of stable chronic hypoxia with many vessels in a 40 × 40 × 40 lattice. The simulation consists of five cell types—vessel (white),
The simulator was coded in Matlab. It depends on three libraries: Colormap and Colorbar Utilities (to stabilize colormaps in multi-plot figures), freezeColors/unfreezeColors (to stabilize colorbars in multi-plot figures), and Geometric Measures in 2D/3D Images (for computing Minkowski functionals and the Euler-Poincaré characteristic—see Future Work section below).
The simulator code is available in the GitHub repository:
Our histology images of chronic tumor hypoxia are available in the Harvard Dataverse:
In this simulation, we have
A schematic view of the “metabolic symbiosis” [
We populate configuration parameters as stated in Tables
1 | 1 | 1 |
0 | 0 | 0.01 |
0.1 | 0.1 | 0 | |
0.1 | 0.1 | 0 | |
0.1 | 0.1 | 0 | |
0.1 | 0.1 | 0 |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ |
0 | 0 | 10.0 | |
0 | 0 | 0 | |
1.0 | 0 | 0 | |
0 | 1.0 | 1.0 |
10.0 | 10.0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 1.0 | |
0 | 0 | 0 |
0 | 0 | 0 | |
0 | 0 | 0 | |
1 | 0 | 0 | |
0 | 1 | 1 |
No | |
Yes | |
Yes | |
Yes |
No | |
Yes | |
Yes | |
Yes |
The simulation opens with the initial concentrations of
We observe in
Left-to-right, top-to-bottom: 60 generations shown in 36 frames (t = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 30, 32, 33, 35, 36, 38, 39, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56, 57, 59, 60). Key: vessel (white),
Time evolution of: populations by cell type (top), local fitness by cell type (middle), and neighborhood fitness by cell type (bottom). In the top, the horizontal axis denotes simulation time steps, and the vertical axis denotes number of cells; in the middle and bottom, the horizontal axes denote simulation time steps, and the vertical axes denote dimensionless fitness scores. In the middle and bottom, mean curves are plotted and gray regions above and below show the respective standard deviations. Key:
That being said, we struggle to understand our results in a biologically meaningful way. While cell self-sorting is possible in principle, we are unaware of any
We ran this simulation 10 times and observed the results were similar. First, we analyzed the spatial frequency of the striations over the simulations. Each simulation produces a spatial cell occupation map as it evolves and as its final output. To show the consistent spatial periodicity of the striations of
In this simulation, we have
A schematic view of the tumor-stroma signaling described below, and quantified in Tables
We populate configuration parameters as stated in Tables
10 | 0.1 | 0.1 |
0.1 | 0.1 | 0.1 |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ | |
∞ | ∞ | ∞ |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0.2 | 0.2 | 0 | |
0 | 0 | 0 |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | 0 |
No | |
Yes | |
No | |
No | |
No | |
No |
No | |
Yes | |
No | |
No | |
Yes | |
No |
The simulation opens with the initial concentrations of particle types 1, 2, and 3 set to the same value, as specified in
We observe in
Time evolution of cell populations. Left-to-right, top-to-bottom: 260 generations shown in 36 frames (t = 1, 8, 15, 22, 29, 36, 43, 50, 58, 65, 73, 80, 88, 95, 103, 110, 118, 125, 133, 140, 148, 155, 163, 170, 178, 185, 193, 200, 208, 215, 223, 230, 238, 245, 253, 260). Key:
Time evolution of: populations by cell type (top), local fitness by cell type (middle), and neighborhood fitness by cell type (bottom). In the top, the horizontal axis denotes simulation time steps, and the vertical axis denotes number of cells; in the middle and bottom, the horizontal axes denote simulation time steps, and the vertical axes denote dimensionless fitness scores. In the middle and bottom, mean curves are plotted and gray regions above and below show the respective standard deviations. Key:
We ran this simulation 10 times and observed the results were similar. See
In this simulation, we have
We populate configuration parameters as stated in Tables
0.12 |
0.1 |
0 | |
0 | |
0 | |
0 | |
0 |
∞ | |
∞ | |
∞ | |
∞ | |
∞ |
0 | |
0 | |
0.01 | |
0.01 | |
0 |
0.2 | |
0 | |
0 | |
0 | |
0 |
0 | |
0 | |
1 | |
1 | |
0 |
No | |
Yes | |
No | |
No | |
No |
No | |
Yes | |
Yes | |
Yes | |
No |
jump to |
||
jump to |
||
jump to |
The simulation opens with the initial concentration of
We observe the following sequence of events in
Time evolution of cell populations. Left-to-right, top-to-bottom: 220 generations shown in 36 frames (t = 1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79, 85, 91, 97, 103, 110, 116, 123, 129, 136, 142, 149, 155, 162, 168, 175, 181, 188, 194, 201, 207, 214, 220). Key:
Time evolution of: populations by cell type (top), local fitness by cell type (middle), and neighborhood fitness by cell type (bottom). In the top, the horizontal axis denotes simulation time steps, and the vertical axis denotes number of cells; in the middle and bottom, the horizontal axes denote simulation time steps, and the vertical axes denote dimensionless fitness scores. In the middle and bottom, mean curves are plotted and gray regions above and below show the respective standard deviations. Key:
We ran this simulation 10 times and observed the results were similar, modulo some pattern difference in the bands of
In this simulation, we have
We populate configuration parameters as stated in Tables
0.12 |
0.1 |
0 | |
0 | |
0 | |
0 | |
0 |
∞ | |
∞ | |
∞ | |
∞ | |
∞ |
0 | |
0 | |
0.01 | |
0.01 | |
0 |
0.2 | |
0 | |
0 | |
0 | |
0 |
0 | |
0 | |
1 | |
1 | |
0 |
No | |
Yes | |
No | |
No | |
No |
No | |
Yes | |
Yes | |
Yes | |
No |
jump to |
||
jump to |
||
jump to |
The simulation opens with the initial concentration of
We observe the following sequence of events in Figs
Time evolution of cell populations on the plane
Left-to-right, top-to-bottom: 150 generations shown in 36 frames (t = 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 74, 78, 83, 87, 92, 96, 101, 105, 110, 114, 119, 123, 128, 132, 137, 141, 146, 150).
Left-to-right, top-to-bottom: 150 generations shown in 36 frames (t = 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 74, 78, 83, 87, 92, 96, 101, 105, 110, 114, 119, 123, 128, 132, 137, 141, 146, 150).
Left-to-right, top-to-bottom: 150 generations shown in 36 frames (t = 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 74, 78, 83, 87, 92, 96, 101, 105, 110, 114, 119, 123, 128, 132, 137, 141, 146, 150).
Time evolution of: populations by cell type (top), local fitness by cell type (middle), and neighborhood fitness by cell type (bottom). In the top, the horizontal axis denotes simulation time steps, and the vertical axis denotes number of cells; in the middle and bottom, the horizontal axes denote simulation time steps, and the vertical axes denote dimensionless fitness scores. In the middle and bottom, mean curves are plotted and gray regions above and below show the respective standard deviations. Key:
We ran this simulation 10 times and observed the results were similar, modulo some pattern difference in the shells of
We developed a spatially-resolved, mixed-population simulation which is minimal, fast, extensible, and adaptable. First, we can support any number of cell types and any number of particle types (each with its own diffusion rate). Second, each cell type has default behaviors, as before, and conditional behaviors, which can implement phenotypical adaptations and mutations, and state machines composed of two or more cell types. Third, initial, and upper- and lower-bounded basal concentrations can be set for each particle type. Fourth, each cell type can be replaceable or not, and reproductive or not. Fifth, initial lattice occupation can be delayed to establish complex diffusion gradients to form prior to simulation.
Regarding the simulation, we found that with a few simple ingredients—space, distinct particle types with their own diffusion rates, distinct cell types with default consumption and release profiles, and conditional logic to implement cell-type-specific local adaptation—we captured a number of interesting features and phenomena. First, in a study of asymmetric fitness with one vessel (not shown here), we observed sustained coexistence of two populations; one was dominant but did not drive the other to extinction. Second, in Results subsection “Metabolic symbiosis (2D)”, we observed emergent spatial self-organization among
Regarding the biology of chronic hypoxia, in Results subsections “Stable local chronic hypoxia with many vessels (2D)” and “Stable local chronic hypoxia with many vessels (3D)”, we found there was an instability in the
Whatever the cancer disease context, one could re-simulate the cell populations after adding various therapeutic strategies (e.g., dosage frequency, cocktail therapy, immunotherapy) by way of different delivery modalities (e.g., from explicitly represented vessels, or from a non-specific source of diffusion) to model therapeutic effects and to understand when resistance develops. These would produce additional emergent dynamics that would be worth analyzing.
First, it may turn out that a lattice-based simulation is too limited to capture properties related to cell crowdedness, which is arguably essential for modeling density-derived control of tumor cell population growth, and emergent geometric and spatial organization. It may also have significance for modeling emerging local, stable regions of chronic hypoxia. Without an explicit notion of crowdedness, one cannot correctly model contact inhibition or anoikis, for example, and how such mechanisms constrain growth rates and spatial patterns. While one could use our conditional logic apparatus to exploit an as yet unimplemented local-density predicate to crudely model constrained growth, Plank,
Second, we may wish to explicitly model individual cell migration. Our simulation presently uses a simple statistical mechanism to implement fitness-based local cell type regional takeover. As mentioned earlier, this implies that individual cells do not possess a unique identity. While distinct cell types can respond to local concentrations, and locally adapt to their environment using their conditional logic, they do so in a manner that ignores their individuality. In other words, our world is lattice-state-centric rather than cell-identity-centric. In the end, this may be too abstract a setting to properly model individual cell migration in a way that can be configured by its own set of parameters. This area has a broad literature [
Third, cell sorting is accomplished by cell migration [
To balance matters, let us appeal to parsimony. Although each of these areas of exploration merit consideration, in the scope and context of modeling emerging local, stable regions of chronic hypoxia, our present minimal model already captures some of the salient spatial and dynamic features of the phenomenon.
In this article, we present a simulator that executes a specified situation exactly once. Because cell reproduction events in the simulation are stochastic, then for any given situation, one would need to run the simulator a number of times until one were confident the results did or did not converge upon some well characterized, recognizable phenomenon. Then one would want to explore nearby situations in the parameter space to quantify the variation of observables (e.g., cell migration speed, population sizes, fitness, structural properties like clustering, connectedness, self-similarity, etc.) Here we sketch how one might embed the simulator in a larger system to meet this challenge in an automated fashion.
The nature and extent of the simulation parameter space derives from the algorithmic specification given above. A number of parameters define any given simulation, those that specify initial conditions and those that specify the entities that operate in the simulation. Initial condition parameters specify: the initial positions in the 3D lattice of the cells of various types; the initial and basal upper- and lower-bound concentrations of the various particle types; and the delay time indicating when to place the cells in their initial positions. Operational parameters specify: each particle type’s diffusion rate; the consumption and release rates and impact factors of each cell type for each particle type; whether each cell type is replaceable and whether its reproductive; and the conditional behaviors for each cell type. Together, these constitute a high dimensional parameter space. Each point in this parameter space is then a full specification to simulate some biological system, and could be represented by a vector input to the simulator.
Let us assume in the absence of simplifying factors or expert knowledge of the biology, each parameter should be modeled as a random variable having a uniform, independent probability distribution. We could then sample the large parameter space using a vanilla Monte Carlo algorithm [
Our model (simulation), once specified by a coordinate from the high dimensional parameter space, is still stochastic, as mentioned above, owing to the cells’ manner of probabilistic reproduction. Suppose a feature integrator-detector is embedded in the simulator that decides when the formal characterization of, say, hypoxia—be it a spatiotemporal logical proposition,
Above we presented two distinct ways of implementing a two-level simulation driver. The top level explores by sampling the high dimensional parameter space, testing a coordinate in that space by passing control down to the lower level that repeatedly runs the specified simulation until a stable outcome is achieved. It then passes the binary verdict up to the top level that records and eventually responds to the coordinate’s computed truth value. We envision such a system would have a run-time design like in
Here we show the two possible execution paths of the hypothetical system we propose. These correspond to the choice of whether to use a logical or functional characterization/detection scheme. In the logical scheme, we assume three global parameters: the configuration parameter space,
Each simulation produces a spatial cell occupation map as it evolves and as its final output. To show the consistent spatial periodicity of the striations of
(TIFF)
Standard deviation (SD) in FFT2 magnitude across 10 simulations. The maximum standard deviation is 0.43 times the maximum mean value.
(TIFF)
Coefficient of variation (CV) in FFT2 magnitude across 10 simulations. Notice no regions of high noise-to-signal ratio colocate with the two energy loci; rather, the noise appears uniformly distributed across the energy surface.
(TIFF)
Mean
(TIFF)
Standard deviation (SD) in
(TIFF)
Coefficient of variation (CV) in
(TIFF)
Mean
(TIFF)
Standard deviation (SD) in
(TIFF)
Coefficient of variation (CV) in
(TIFF)
Mean
(TIFF)
Standard deviation (SD) in
(TIFF)
Coefficient of variation (CV) in
(TIFF)
Mean
(TIFF)
Standard deviation (SD) in
(TIFF)
Coefficient of variation (CV) in
(TIFF)
(TEX)
Andrew Sundstrom would like to thank David K.A. Mordecai, Leslie Greengard, and Ravi Iyengar for granting him the time to formulate the initial draft of this manuscript—Ravi Iyengar also read and commented on multiple subsequent revisions.