Welcome to pyMantis

pyMantis is a collaborative life-sience data mangement software. It is geared to fit the need for exchanging data and information between the collaborating experimentalists and theoreticians. I combines features from old school collaboration managements software systems, semantic web applications and web2.0 social network platforms. Here are some of its features

Feature Overview

File/Folder Eplorer

file folder explorer detail The most actively used feature of the predecessor of pyMantis was the web-based file/folder explorer. It was mostly used to store and exchange presentations and scientific publications. The file/folder explorer in pyMantis features descriptions for each item, “drag and drop” to move items, versioning of items, and an integration into the access contoroll and HTML file preview system of pyMantis. This allows the users not only to control the access of each item for registered users but also to non registered visitors. This enables the publication of datasets.


wiki detail To sketch ideas and store important facts pyMantis integrates a wiki environment. The wiki includes a WYSIWYG text editor interface. Like the file/folder explorer the wiki integrates into the RBAC, is versioning enabled. In addition to that existing pages can be used as templates.

Integrated Mailinglist/Forum

mailinglist detail Email communication has been the most used method of exchanging information between project members. To enable a central access to all email communication pyMantis has a web based mailing-list interface. The mailinglist can be indexed and searched, as well as display the most commonly transmitted file formats in an HTML file preview using HTML file previews. This allows all project members to access group communication independent of their location and email provider.

Relational Table Wizard

The relational database front-end is the key feature of pyMantis to store and access experimental data created in wet-lab and theoretical experiments.

Table wizard detail From our previous experiences we learned that new types of dataset will be created frequently and that the structure of datasets has to be adapted in the running system. To achieve this we created a wizard user interface that enables the creation of SQL tables (including user interfaces for insertion and extraction of data) within seconds.
The insertion forms can show units of measurement for fields, highlight fields that are required to fill, and show error messages on submission of wrong data types. These checks enable the enforcement of a minimum information policy for datasets that e.g. match Minimum Information about a Biomedical or Biological Investigation (MIBBI) checklists. Datasets can be interlinked, versioned, used as templates for creating new datasets, integrated in to the RBAC and can be annotated and categorized.
To categorize datasets we have adopted the ISA categorization scheme. ISA defines a tree layer hierarchy than contains verbal descriptions of experimental goals. The lowest layer, the assay, is then linked to the datasets. This enables a better understanding of the datasets and helps the organization of collaborative experiments.
To retrieve datasets the user-interface has two views: a list view, showing a list of most important attributes of the dataset and single dataset view showing all attributes of one dataset. Files that are contained in datasets can be directly viewed with the FP feature of pyMantis. All datasets of one type can be exported in a DSV. This will be extended to also export Microsoft Excel files. Single datasets can currently be exported in Extensible Markup Language (XML), JavaScript Object Notation (JSON), YAML (a human-readable data serialization). This will also be extended to export Microsoft Excel Files that, in turn can be used as template for inserting data directly as Excel files.

HTML file previews

Mail attachments, uploaded files and files in the relational database should all be accessible within pyMantis. To enable this pyMantis integrates several libraries that enable the conversion of several formats to HTML. Currently this includes:
  • Microsoft Word (.doc files)
  • Microsoft Excel (.xls files)
  • Open Office (.odf, .odp, .ods, ...)
  • Dilimiter Seperated Values (.csv, .tsv, ...)
  • Portable Document Format (.pdf)

Annotations / Tags

annotations detail Datasets can be annotated with words (also know as tagging), hyper-links and scientific publication. The scientific publication can be retrieved via a keywords, a PubMed identifier or a Digital object identifier (DOI) using the PubMed REST interface. In addition to that an annotation with MIRIAM URNs allows the linking of ontology terms and biological database items. It is planned to extend this feature with the currently added functions of semanticSBML to cluster and retrieve datasets and models based on their MIRIAM annotation similarity (see semanticSBML poster).

Fine Grained Access Control

Role based authorization can be controlled by users and by administarators. Next to the default access rights each use can create groups and allow read write and edit rights to all datasets he created or to which he is allowed to.

Issue Tracker

Issue tracker with automated ticketing system (creating error tickets on crashes). Basically this is web2pys ticketing system attached to a bug tracker. My intent wast to attach error tickets to issue tickets, but I never got that far since other things need more attention. However I created the sorting of error tickets by number of occurence which is now the default view of the web2py error ticket interface :D


REST API documentation detail The RESTful interface of pyMantis is described in a REST documentation module. In the near future it will be extended to automatically create Web Services Description Language 2 (WSDL) or Web Application Description Language (WADL) files.
The REST interface will also be used to integrated pyMantis into the SysMO wide meta-database Seek which enables the sharing of data within the whole SysMO project.
Output formats of the RESTful interface are:
  • XML
  • JSON
  • YAML
  • CSV
  • Excel (planned)

Plugin-in Based Architecure

It is very easy to create plugins for pyMantis. Here is an hello world plugin Create the file /pyMantis/controllers/plugin_helloworld.py and write
def index():
return dict(message = "hello world")
pyMantis implements many of its features as plug-ins.
  • Plug-in Tagging
  • Plug-in Webfolder
  • Plug-in