MZmine 2 Architecture

MZmine 2 is developed using Java technology, therefore it is completely platform independent, requiring only Java runtime for running. One of the main design goals is to keep a strict separation between the application core and modules for data processing and visualization. Development of new modules is very easy and straightforward. Mass spectrometry researchers are welcome to implement their favorite algorithms and data processing methods using MZmine 2 framework. If you would like to contribute in any way, please contact the developers.


Source Code

The MZmine 2 source code is available from the GitHub repository. You are welcome to redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

How To Contribute

There are several steps you need to follow in order to contribute your code to MZmine. If you are not familiar with GitHub, this might seem cumbersome at first, but you will surely appreciate the power of this workflow later. Steps 1-3 only need to be performed once, when you make your first contribution.

  1. Create a personal account on GitHub.
  2. Fork the MZmine repository. Now you have created your own, personal copy of MZmine at GitHub.
  3. Clone the newly forked git repository ( to your PC, either using the git clone command, or using your favorite IDE. Now you have created a local copy of your own GitHub repository. This copy will contain the master branch.
  4. In your local, cloned repository, create and check out a new branch for the feature or change that you are planning to work on.
  5. Perform your development on this new branch, and commit your changes with meaningful commit messages (multiple commits are fine). Note that all commits happen only within your local git repository.
  6. When you are finished, push your branch to your on-line repository on GitHub.
  7. Go to the website of your repository on GitHub and create a pull request to the original MZmine repository's master branch. We will review your pull request and provide comments. You can update your code and push new commits into the same branch of your own GitHub repository. These commits will be automatically added to the pull request.
  8. When everyone is happy, we will merge your pull request and you can delete your branch.
  9. You can keep your local repository up-to-date with the MZmine development branch by adding the official MZmine repository as a new remote repository and fetching changes from there.

For more information, please check the official GitHub's documentation or ask the developers.
Please also check the Documentation section for development tutorials.

Libraries used by MZmine 2