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
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 immunohistochemistry and other histopathologic (e.g., morphometric) measurements. PhysiCell is capable of simulating 105 to 106 cells on desktop processors in complex 3-D tissue structures. Click here to read more.
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 has peer reviewed in Bioinformatics. It is available as open source under the Apache License (v2.0).
Recent reference: Ghaffarizadeh et al. (2015, in press)
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!
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: http://MultiCellXML.sourceforge.net for more.
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: http://EasyBMP.sourceforge.net for more.
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: http://EasyBMPtoAVI.sourceforge.net for more.