Annotating Systems Biology Models
ModelPolisher is a simple single-purpose automated curation tool for SBML models.
- improve the adherence to FAIR data standards as practiced in the SBML modelling community
- implement non-binding best practices as defined by the SBML specification documents
- add MIRIAM-style semantic annotations to models, using the BiGG Models knowledgebase and AnnotateDB
You can find documentation on what ModelPolisher does in our Wiki.
Furthermore, it can, on a best effort basis, attempt to perform minimal fixes on a model to make it valid with regards to the SBMLValidator.
Currently supported versions of the SBML standard are:
- Version 3 Level 1
- FBC Version 2
You can use ModelPolisher as a tool via its Python API client to our HTTP server, using Docker, or as a Standalone JAR.
ModelPolisher can also be used as a Java library, building on the JSBML project.
- Performance
- Using ModelPolisher as a Tool
- Using ModelPolisher as a Java library
- How to cite ModelPolisher
- Licenses
An evaluation of running ModelPolisher on all models in the BiGG Database, on 3000 models available on Biomodels and on newly generated models using CarveMe with regards to MEMOTE scores will be published shortly.
We recommend users to either use the Python API client package or run ModelPolisher using docker
.
However, ModelPolisher can also be run from the ModelPolisher Jar
.
If you don't want to process large numbers of models and have an internet connection available, this is the recommended usage.
ModelPolisher is hosted as an HTTP server at biodata.informatik.uni-halle.de/modelling/polisher.
We provide a Python API client package (available on PyPI) for interaction with the server. All documentation regarding usage of the API client can be found in that repository.
ModelPolisher can also be run locally.
If you want to process a large number of models, or you don't feel comfortable using the Python API client package, this is the recommendend usage.
Parameters can be passed via a json file or as command line arguments.
See the Wiki for more information.
ModelPolisher is provided as a Docker image.
This repository contains a docker-compose.yml
which also sets up BiGG DB and AnnotateDB as Docker containers, to support the annotation functionality.
For a single model file, you can use
docker-compose run \
-v <path_to_directory_containing_models>:/models/ \
-v <path_to_config_json>:/config.json \
polisher \
--input=/models/<model_name> \
--output=/models/output/<output_name> \
--config-file /config.json
Output will be produced in directory <absolute_path_to_directory_containing_models>/output
.
You can run ModelPolisher using its Jar
.
See Releases for downloads of stable versions of standalone Jars and the Parameters Wiki page for documentation of the input parameters.
If the annotation functionality is required, users need to provide connections to the BiGG Database and/or AnnotateDB as PostgreSQL
databases.
This can be achieved like this:
java -jar "<path>/ModelPolisher/target/ModelPolisher-2.1.jar" --config-file config.json
Note: ModelPolisher requires Java version >= 17
.
ModelPolisher and some of its dependencies are currently hosted in a Maven repository by the BioDatA working group of the University of Halle. We intend to move this to Maven Central in due time.
You can see our GitHub Pages for its Javadocs.
The online version of ModelPolisher is described in this article: http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0149263
The article "BiGG Models: A platform for integrating, standardizing and sharing genome-scale models" describes BiGG Models knowledge-base including ModelPolisher.
ModelPolisher is distributed under the MIT License (see LICENSE). An Overview of all dependencies is provided in THIRD-PARTY.txt, their respective licenses can be found in the licenses folder.