Paul Macklin's Math Cancer Lab Website

Open Source

I have been involved in open source software development since 2005. In the coming months, I plan to partly open source my agent model simulator. I am also developing an associated open data standard for multicell agent models: the MultiCellXML Project.

Open source projects I have founded and maintain

Agent-based cell model screenshot

PhysiCell: Physics-based cell model

This core technology, in development since 2007, models individual cells as agents. Each agent has a lattice-free position (center of mass), a velocity that is determined by the balance of biomechanical forces, and a phenotype that depends upon the cell's internal genomic/proteomic state and its sampling of the local microenvironment. Cell cycle progression and apoptotic and necrotic cell death are modeled as stochastic processes that vary with the microenvironment. Detailed, state-dependent "submodels" regulate the cell's fluid and biomass content. We are the first to model the critical process of nuclear cell calcification, and have the most detailed model of cell necrosis.

This agent model is the foundation of our cutting-edge patient calibration techniques, which can be uniquely constrained to patient immuno­his­to­chem­is­try and other his­to­path­o­log­ic (e.g., mor­pho­met­ric) mea­sure­ments. PhysiCell is capable of simulating 105 to 106 cells on desktop processors in complex 3-D tissue structures. Click here to read more.

Recent reference: Macklin et al. (2012)
Recent multimedia: DCIS simulations

Back to top

BioFVM: A biological transport solver

This code simulates the diffusive transport of multiple substrates (e.g., oxygen, glucose, growth factors, drugs) as they are secreted/released/absorbed by biological elements in 3-D tissues. We use this code to simulate the microenvironment and its interactions with cells. BioFVM is capable of simulating diffusive transport of 5-10 substrates on 1-10 million voxel meshes (generally 5-100 mm3) on desktop processors. BioFVM has been submitted for review; it will be available as open source under the Apache License (v2.0) after peer review.

Back to top

MultiCellDS screenshot


MultiCellDS (Multicellular data standard), an outgrowth of the earlier MultiCellXML project, aims to create a data standard for sharing multicellular experimental, simulation, and clinical data. Our ultimate goal is to foster a community that develops user-friendly tools that can read, write, and recombine data into better simulations and analyses for multicellular biology and predictive medicine. As part of this effort, we are developing MultiCellDB: a repository for a curated libary of digital cell lines and peer-reviewed simulation and experimental data.

A novel part of MultiCellDS is the digital cell line: a digital analogue of experimental cell lines that will help to collect biophysical cell line measurements coming from many research groups and make them readily accessible to an ecosystem of compatible computational models. Digital snapshots provide a unified, model-independent representation of simulation data, as well as segmented pathology, radiology, and experimental data.

In the past year, MultiCellDS has grown from a single-lab effort to an international community of mathematicians, biologists, data scientists, and clinicians, with contributors in the US, the United Kingdom, Germany, and elsewhere. We are currently preparing our first method paper on a repository of over 200 digital cell lines, many of which were created from brain and breast cancer patient data. Click here to read more!

Back to top

MultiCellXML Screenshot


MultiCellXML is an XML-based data format for agent-based simulations of multicell systems. I designed this format to facilitate simulation data exchange, postprocessing, and visualization. Benchmark datasets and open-source postprocessing and visualisation code are provided. Note: As of 2014, this project has been superceded by MultiCellDS.

See: for more.

EasyBMP Screenshot


EasyBMP is a simple, cross-platform, open source (revised BSD) C++ library designed for easily reading, writing, and modifying Windows bitmap (BMP) image files. I use it to write rasterized images in simulations, postprocessing, and visualization.
[98,291 downloads, 2005-October 2015].

See: for more.

Put an image here.


EasyBMPtoAVI is a simple, cross-platform, open source C++ program for converting series of images into an uncompressed movie. I use this to efficiently generate animations of my simulations via SSH and download the zipped AVI file.
[31,813 downloads, 2006-October 2015].

See: for more.