MZmine 2 ArchitectureMZmine 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 CodeThe 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.
- Create a personal account on GitHub.
- Fork the MZmine repository. Now you have created your own, personal copy of MZmine at GitHub.
- Clone the newly forked git repository (https://github.com/YOUR-USERNAME/mzmine2.git) 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.
- In your local, cloned repository, create and check out a new branch for the feature or change that you are planning to work on.
- 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.
- When you are finished, push your branch to your on-line repository on GitHub.
- 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.
- When everyone is happy, we will merge your pull request and you can delete your branch.
- 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.
Libraries used by MZmine 2
- Apache XML Graphics - EPS image export
- Chemistry Development Kit - Isotope pattern and molecular calculations
- Freehep - EMF image export
- Google Guava - Utility classes
- JavaHelp - Help system
- JChemPaint - 2D molecule visualization
- JFreeChart - TIC, Spectra and 2D visualizers
- JMol - 3D molecule visualization
- jmzml - mzML file import
- jmzTab - mzTab file import and export
- NetCDF-Java - NetCDF file import
- VisAD - 3D visualizer
- WEKA - Clustering and other machine learning algorithms