Skip to content

draeger-lab/ModelPolisher

Repository files navigation

ModelPolisher

Annotating Systems Biology Models

Stable version DOI License (MIT)

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.

Table of Contents

Performance

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.

Using ModelPolisher as a Tool

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.

Using the Python API client package

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.

Using ModelPolisher Locally

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

Parameters can be passed via a json file or as command line arguments.

See the Wiki for more information.

Using Docker

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.

Using ModelPolisher Jar

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.

Using ModelPolisher as a Java library

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.

How to cite ModelPolisher

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.

Licenses

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.