pc4nanobio: cancer nanotherapy simulator

Simulate cancer response to shape-changing nanoparticles conjugated to novel therapeutics

Launch Tool

You must login before you can run this tool.

Version 0.8.1 - published on 21 Nov 2018

doi:10.4231/D3QN5ZD7F cite this

Open source: license | download

View All Supporting Documents



Published on


Introduction and purpose

Nanoparticles can be designed to change shape and potentially other properties in specific pH conditions. Many cancers exhibit altered, glycolytic metabolism, leading to increased tissue acidity. This makes pH an ideal control for targeted release of cancer therapeutics. 

Moreover, synthetic biology and other bioengineering techniques are increasingly creating novel compounds that can target and tune specific aspects of cell phenotype (behavior), such as proliferation, adhesion, motility, and metabolism. This presents both key opportunities and challenges: What if we could tune what a therapeutic does, and where it is delivered? Which therapies would be worth delivering? What are the key design parameters? 

The aim of this tool is to explore these what if questions: users can set nanoparticle, tissue, cell, and drug response parameters for a growing tumor, and see for themselves how things could play out for their design choices.

Note that this tool is a work in progress: we are currently preparing a publication, which will be posted to bioRxiv in Summer 2018 and submitted for publication. 

This project extensively involves undergraduates in its design and execution. Because we aim not only to develop useful research tools, but also train the next generation of bioengineers. As such, we greatly appreciate your constructive feedback on usability, features, and model biofidelity. 


PhysiCell overview

PhysiCell [1] simulates multi-substrate diffusive biotransport as a vector of diffusion-reaction equations using BioFVM [2], and adds lattice-free software agents to represent cells. Each cell agent has a hierarchical phenotype that contains a structured list of the cell's current behavioral parameters and properties. PhysiCell models basic interaction mechanics, motility, secretion/uptake of substrates, cell cycle progression, apoptosis, and necrosis. In addition, users can add custom functions and data on a cell-by-cell basis. This tool is built using PhysiCell and a number of custom functions to implement pharmacodynamics (response to a therapeutic agent). 

Nanoparticles and pharmacokinetics

We model the shape-changing nanoparticle (NP) as two diffusing phases (NP1: the untransformed particle, and NP2, the transformed particle), which are released as NP1 at the simulation boundary. NP1 and NP2 can be assigned different diffusion coefficients and decay rates, reflecting that they can potentially be designed with radically different properties. 

We model the nanoparticle shape change as a microenvironment-dependent transformation from phase NP1 to phase NP2, and vice versa. In the first versions of the tool, we specify NP1 to NP2 and NP2 to NP1 transformations as oxygen-dependent, as oxygen gradients generally correlate with pH gradients in tumors. Later versions will explicitly model tumor cell metabolism and pH changes.

The code can either base pharmacodynamics (below) upon the local NP1 and NP2 concentrations, or with an active NP influx model. In the code, we allow NP1 and NP2 to have separate uptake rates. 

Full equations will be provided very soon.

Cells and pharmacodynamics

Without drug:

Cells will be assigned a wild-type microenvironment-dependent phenotype P0(E), where is the vector of phenotype properties, and is the cell's local microenvironmental conditions. As in [1], cell cycle entry increases with oxygenation, apoptosis occurs at a steady background rate throughout viable tissue, and necrosis increases with oxygen depletion. 

With drug: 

We assume that a drug or therapeutic compound is conjugated to the nanoparticles, and that tumor cells uptake the conjugated drug along with the nanoparticles. This code will independently track internalized NP1 and NP2 for each individual cell. 

We model pharmacodynamics for NP1 and NP2 separately. For either NP, we specify the the maximum phenotype response vector PM. Moreover, we specify a Boolean vector that indicates which phenotypic elements the NP-conjugated drug acts upon. (For example, a drug that is purely cytostatic would act upon phenotype elements for cycle progression, and no others.) Each NP phase (1 or 2) has an independent Hill coefficient (h) and half-max effect internalized NP concentration (NP0.5). We use a Hill effects model:

E = NPh / ( NP0.5h + NPh).

Note that the code will also allow us to replace NP with an AUC (area-under-the-curve) model int_0^t NP(s) ds. Also, the code will allow an active damage and repair model, based upon the internalized NP concentration. More details on this in a future code release. 

For each cell's current effect E, we set its phenotype to:

P = (1-EP0(E) + E PM

Note that we compute the effect for each NP phase, and take the maximum effect. Equations will be posted in a future release, and a publication is being drafted. 


Click "launch tool," then "load defaults." Change any settings, then click "write config file" and "run." 

Console output (runtime progress) appears in "output" below, if you expand with the small triangle. 

Visualization appears in "out:SVG". Slide the bar all the way to the left, and then scroll through the visualizations as the simulation runs. 

The fields (e.g., O2, NP1 and NP2) appears in "out:Substrate". Choose a substrate from the drop-down menu, slide the bar all the way to the left, and then scroll through the visualizations as the simulation runs. 

Recent changes


  • Fixed a bug in the simulation code that sometimes caused a segfault when running with motile cells on multiple threads.
  • Enabled cell motility, plus related parameters, in the GUI.
  • Provided functionality to submit batch jobs and visualize their results.
  • Provided cached results for both batch and interactive runs.
  • Provided a "Load Config" dropdown widget to access cached results. 
  • Provided download buttons for (compressed) files associated with plots.
  • Rearranged widgets in the Substrate Plots tab to more closely match Cell Plots tab.
  • Improved the tool startup process, trying to avoid a blank screen.


  • Allow selecting previously computed output (directories)
  • Save/remember min/max for substrate ranges.


  • Added plot titles to substrate plots.
  • Added additional colormap palettes.
  • Using checkboxes in plots updates displayed plots.


  • Updated substrate plots to allow a fixed min/max range.
  • Improved cell visualizations with (optional) black outlines to improve contrast with white background.
  • Improved cell glyph (marker) size calculation.


  • Disabled chemotaxis due to compiler issues.
  • Minor usability refinements.


  • Usability refinements.


  • Initial public release.

Future improvements

User interface improvements:

  • Enable motility (after migration to platform with gcc 6.0 or greater)
  • Better defaults on slider bars for substrate visualization
  • Export / download simulation data 
  • User-selectable cell coloring / shading (currently shaded by NP2 bioaccumulation)
  • Further refinements based on user feedback

Scientific improvements:

  • Explicitly model tumor cell glycolytic metabolism, and model its effects on tissue pH
  • Include tissue vascularization
  • Include NP binding/unbinding to ECM

Powered by

This software is powered by PhysiCell, a powerful simulation tool that combines multi-substrate diffusive transport and off-lattice cell models. PhysiCell is BSD-licensed, and available at:

It is a C++, cross-platform code with minimal software dependencies. It has been tested and deployed in Linux, BSD, OSX, Windows, and other environments, using the standard g++ compiler. 

See http://PhysiCell.MathCancer.org.


To learn more about our work, please visit MathCancer.org.


Scientific Staff

Randy Heiland, Research Associate, Intelligent Systems Engineering, Indiana University.

  • Lead software architect

Paul Macklin, Ph.D. , Associate Professor, Intelligent Systems Engineering, Indiana University.

  • Scientific lead, developed PhysiCell simulation model

The following undergraduate students have contributed to this project:

Jupyter notebook and UI development

  • Eric Bower (IU Intelligent Systems Engineering, B.S., 2018-present)
  • Daniel Mishler (IU Intelligent Systems Engineering, B.S., 2018-present)
  • Tyler Zhang (IU Intelligent Systems Engineering, B.S., 2018-present)

Sponsored by

NSF EEC-1720625. Network for Computational Nanotechnology - Engineered nanoBIO Node


[1] Ghaffarizadeh A, Heiland R, Friedman SH, Mumenthaler SM, Macklin P (2018) PhysiCell: An open source physics-based cell simulator for 3-D multicellular systems. PLoS Comput Biol 14(2): e1005991. https://doi.org/10.1371/journal.pcbi.1005991

[2] Ghaffarizadeh A, Friedman SH, Macklin P (2016) BioFVM: an efficient, parallelized diffusive transport solver for 3-D biological simulations. Bioinformatics 32(8):1256-8. https://doi.org/10.1093/bioinformatics/btv730


No publications have cited this tool. Yet. :-) 

Cite this work

Researchers should cite this work as follows:

  • This tool is still in preparation for submission. For now, please cite: 

    Ghaffarizadeh A, Heiland R, Friedman SH, Mumenthaler SM, Macklin P (2018) PhysiCell: An open source physics-based cell simulator for 3-D multicellular systems. PLoS Comput Biol 14(2): e1005991. https://doi.org/10.1371/journal.pcbi.1005991


  • Randy Heiland, Paul Macklin (2018), "pc4nanobio: cancer nanotherapy simulator," http://nanohub.org/resources/pc4nanobio. (DOI: 10.21981/D3QN5ZD7F).

    BibTex | EndNote