Rapidly compare biological models written in PySB using particle swarm optimization-based model fitting and model selection metrics.
BioComparator is a Python software tool designed to compare biological models encoded using the PySB modeling framework. Candidate models may for example encode different mechanistic hypotheses or represent different granularities of a biological mechanism. Principally, the tool employs parameter estimation to the set of candidate models with respect to a common data-set (or set of data-sets) via a common cost function. BioComparator then provides users with a set of comparative metrics such as the minimum cost and Akaike Information Criterion, allowing users to easily evaluate candidate models' fit to the data and the trade offs between the fit to data and model size/complexity.
Currently, BioComparator uses particle swarm optimization-based parameter estimation, via the simplePSO package, to minimize a cost function and fit models to a given data-set. In the future, interfaces may be added for other model calibration/parameter estimation tools, such as Gleipnir (Bayesian parameter estimation and model evidence via Nested Sampling).
BioComparator installs as the biocomparator
package. It is compatible (i.e., tested) with Python 3.6.
Note that biocomparator
has the following core dependencies:
You can install the latest (possibly unreleased) version of the biocomparator
package using pip
sourced from the GitHub repo:
pip install -e git+https://github.com/LoLab-VU/BioComparator/#egg=biocomparator
However, this will not automatically install the core dependencies. You will have to do that separately.
You can also install the latest release (currently v0.2.0) version of the biocomparator
package using pip
sourced from the GitHub repo with an additional release tag:
pip install -e git+https://github.com/LoLab-VU/BioComparator/#egg=biocomparator@v0.2.0
You may check the BioComparator releases page to find all available releases.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details
Principally, BioComparator defines the BioComparator class,
from biocomparator import BioComparator
which defines an object that can be used setup and run Particle Swarm Optimization (PSO)-based parameter estimation and subsequent Akaike Information Criterion (AIC)-based model selection of PySB models.
Additional example scripts that show how to setup and launch comparison runs using BioComparator can be found under examples.
To report problems or bugs please open a GitHub Issue. Additionally, any comments, suggestions, or feature requests for BioComparator can also be submitted as a GitHub Issue.
If you use the BioComparator software in your research, please cite the GitHub repo.
Also, please cite the following references as appropriate for software used with/via BioComparator:
These include NumPy and pandas for which references can be obtained from: https://www.scipy.org/citing.html
- Lopez, C. F., Muhlich, J. L., Bachman, J. A. & Sorger, P. K. Programming biological models in Python using PySB. Mol Syst Biol 9, (2013). doi:10.1038/msb.2013.1
You can export simplePSO reference from its Zenodo DOI entry: 10.5281/zenodo.2612912.
Cite the GitHub repo: https://github.com/LoLab-VU/swarm_it