I have been involved in open source software development since 2005. Here are the main projects released by my lab.
PhysiCell: Physics-based multicell 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 necrotic cell calcification, and have the most detailed model of cell necrosis. PhysiCell is capable of simulating 105 to 106 cells on desktop processors in complex 3-D tissue structures. Click here to read more. PhysiCell is currently in submission for peer review, and it is available as open source under the (3-clause) BSD license.
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. Click here to read more. BioFVM was released as part of a peer-reviewed publication in Bioinformatics. It is available as open source under the (3-clause) BSD license.
CellPD: Cell Phenotype Digitizer
This project extracts cell phenotype parameters (currently cell birth and death rates, and logistic growth limits), with a user-friendly program. All inputs are through an intuitive Excel-compatible spreadsheet, and outputs include a series of HTML pages, publication-quality graphics, tables, and MultiCellDS digital cell lines. CellPD was written in cross-platform compatible Python, with stand-alone executables available for OSX, Windows, and Linux.
CellPD automatically fits multiple mathematical models to the supplied data, without need for programming or mathematical modeling by its user. As part of its HTML outputs, it automatically ranks the fitted model and explains the fitted parameters and models in both mathematical and layman's terms. CellPD was released as part of a peer-reviewed publication in BMC Systems Biology. It is available as open source under the MIT license.
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!
Project website: MultiCelDS.org
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.
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.