Skip to content

matthiaskoenig/tellurium-web

Repository files navigation

  Tellurium Web

DOI GitHub version Build Status License (LGPL version 3) Coverage Status

Matthias König and Jan Grzegorzewski

Tellurium Web provides an online database and simulation tools for running reproducible simulation experiments in computational biology.

The Tellurium Web workflow is based around COMBINE Archives (*.omex) as an exchange format. A COMBINE Archive is a single zip file containing the various documents necessary for the description of a model and all associated data and procedures. This includes for instance, but not limited to, simulation experiment descriptions, all models needed to run the simulations and associated data files. The archive is encoded using the Open Modeling EXchange format (OMEX).

Tellurium, a python environment for reproducible dynamical modeling of biological networks, is used as simulation backend with libroadrunner as high performance simulation engine.

Features

The current version of Tellurium Web supports the execution of simulation experiments with model descriptions in the Systems Biology Markup Language (SBML), the de facto standard for encoding mathematical models in computational biology, and simulation descriptions in the Simulation Experiment Description Markup Language (SED-ML), the standard for describing simulation experiments.

  • COMBINE archive browser (upload & managing of archives)
  • COMBINE archive viewer (managing metadata, manifest & annotations)
  • Execution of COMBINE archive based simulation experiments
  • supports SBML models (all level and versions, i.e., L2V* and L3V*)
  • supports SED-ML simulations (all level and versions, i.e., L1V1, L1V2 and L1V3)

Tellurium Web has been tested with a wide range of archives, among others

Tellurium Web is based existing technology and standards in the "Coordinating standards for modeling in biology" (COMBINE)
initative

                    

Screenshots

COMBINE archive browser

COMBINE archive viewer with access to manifest, metadata and annotations

Simulation results of SED-ML experiment

License

Funding

Matthias König is supported by the Federal Ministry of Education and Research (BMBF, Germany) within the research network Systems Medicine of the Liver (LiSyM, grant number 031L0054).

     

Technology

The following technology is used in Tellurium Web

  • Web framework: django
  • Database layer: postgres & sqlite (develop)
  • Task queue: celery Distributed task queue
  • Message broker: redis Redis is an open source in-memory data structure store, used as a database, cache and message broker.
  • Interactive plots: plotly.js
  • Websockets: Django channels

Changelog

v0.2.0 [2018-01-06]

  • complete rewrite of the user interface and core functionality
  • combine archive viewer/editor (metadata)
  • manifest.xml and metadata.rdf handling
  • dynamic generation of archives
  • archive upload via url
  • user management (global and user archives)
  • annotation support (external annotation files and SBML annotations)
  • django channels for task notifications
  • REST API (with swagger documentation)

v0.1.0 [2017-10-19]

  • initial release
  • core functionality implemented

Installation & Setup

tellurium-web supports python 3.5 or python 3.6.

Basic setup

Clone repository

git clone https://github.com/matthiaskoenig/tellurium-web.git
cd tellurium-web

Create virtual environment

mkvirtualenv tellurium-web --python=python3
(tellurium-web) pip install -r requirements.txt

Set necessary environment variables for database

(tellurium-web) export DJANGO_ADMIN_PASSWORD="test"

Set environment variable and create database

(tellurium-web) ./scripts/create_db.sh

Task queue

Tellurium Web uses a task queue to manage the execution of simulation experiments. To provide the functionality of simulation execution redis as message broker must be setup and a celery worker must be started

To install redis on Ubuntu use the installation script

./scripts/install_redis.sh 2>&1 | tee ./scripts/install_redis.log

To start a celery test worker change in the teweb folder start a worker via

(tellurium-web) cd teweb
(tellurium-web) celery -A teweb worker -l info

Run the test server

The test server is run via

(tellurium-web) cd teweb
(tellurium-web) python manage.py runserver 8001

© 2018 Matthias König