Skip to content
hendrikweisser edited this page Jan 14, 2014 · 35 revisions

About

OpenMS is an open-source C++ library for mass spectrometry (MS) data management and analysis. It offers an infrastructure for the rapid development of mass spectrometry-related software. OpenMS is free software available under the three-clause BSD license. It runs under Windows, Mac OS X and Linux.

OpenMS comes with a vast variety of pre-built and ready-to-use tools for proteomics and metabolomics data analysis (TOPP tools) and powerful 2D and 3D visualization (TOPPView). It supports analyses for various quantification protocols, including label-free shotgun, SILAC, iTRAQ, SRM, SWATH, …. It also provides built-in algorithms for peptide/protein identification, both de-novo and via database searching, as well as adapters to state-of-the art tools like X! Tandem, Mascot, OMSSA, and others.

Through the TOPP tools concept and unified parameter handling (CTD), OpenMS supports easy integration into workflow engines like TOPPAS (included), KNIME, Galaxy, or WS-PGRADE. With PyOpenMS, OpenMS offers Python bindings to a large part of the API to enable rapid algorithm development.

OpenMS supports the Proteomics Standard Initiative (PSI) file formats for MS data. The main contributors of OpenMS are currently Eberhard-Karls Universität in Tübingen, Freie Universität Berlin and ETH Zurich.

For users

Getting started with OpenMS

Current stable version of OpenMS can be downloaded from the OpenMS download site

Novice users should start by reading the OpenMS documentation (especially for TOPP) available from the OpenMS documentation site.

Get in contact

For general usage problems, bug reports and questions, please contact the mailing list open-ms-general.

If you only want to be informed of new versions of OpenMS, please subscribe to the mailing list open-ms-announcements.

Report Bugs/Issues

A list of known issues in the current OpenMS release can be found here. Please check if your OpenMS version matches the current version and if the bug has already been reported.

In order to report a new bug, please use either our github issues system or contact us through the general OpenMS mailing list.

Please include the following information into your bug report: the command line (i.e. call) including the TOPP tool and the arguments you used, or the steps you followed in a GUI tool (e.g. TOPPView) e.g., FeatureFinderCentroided -in myfile.mzML -out myfile.featureXML the output of OpenMS/TOPP (or a screenshot if its a GUI problem) operating system (e.g. ‘Windows XP 32bit’, ‘Win 7 64bit’, ‘Fedora 8 32bit’, ‘MacOS 10.6 64bit’) OpenMS version (e.g. ‘OpenMS 1.6.2′, ‘Revision 63082 from the SVN repository’) OpenMS architecture (’32 bit’ or ’64 bit’) Please provide files that we need to reproduce the bug (e.g. TOPP INI files, data files – usually mzML) via a download link, the mailing list or by directly contacting one of the developers.

For Developers

Report or fix Bugs/Issues

Develop with OpenMS

OpenMS follows the gitflow development workflow which is excellently described here. Additionally we encourage every developer (even if he is eligible to push directly to OpenMS) to create his own fork. The github people provide excellent documentation on forking and how to keep your fork up-to-date. With your own fork you can follow directly the gitflow development model but instead of merging into develop in your own fork you can open a pull request.

Technical Documentation

See the documentation for HEAD (Berlin) doxygen log

See the documentation for release-branch (Berlin) doxygen log

Coding Conventions

See manual for proper coding style: TODO We automatically test for common coding convention violations using a modified version of cpplint. Style testing can be enabled using cmake options. We also provide a configuration file for Uncrustify for automated style corrections (see tools/uncrustify.cfg) .

How to write commit messages

In order to ease the creation of a CHANGELOG we employ a format for our commit messages.

See manual for proper commit messages: How to write commit messages

Automated Unit Tests

We perform nightly test runs on different platforms. Even if everything compiled well on your machine and all tests passed please check if you broke another platform the other day.

Nightly CDASH tests

Experimental Installers

We automatically build installers for different platforms. These usually contain unstable or partially untested code so use them at your own risk.

Nightly (unstable) installers.