Free and open conversion of mass spec data
mzx wraps msconvert from ProteoWizard inside Docker so you can convert vendor raw formats to open formats (mzML, MGF, mzXML, …) from the command line or an optional GUI.
- Docker — installed and running (the CLI calls
docker runto execute msconvert). - Python 3.10+
- pip, uv, or another PEP 517–compatible installer
pip install -U mzxEnsure Docker is running (
docker infoshould succeed).Convert a Thermo
.rawfile to mzML (default output format):mzx /path/to/data.rawThe mzML is written next to the input file (same directory,
.mzMLextension).To choose another output format, set
--typetomzml,mgf, ormzxml:mzx --type mgf /path/to/data.raw
See mzx --help for peak picking, indexing, Waters lockmass options, and more.
After install, start the GUI:
mzx-guiIf the mzx-gui command is not on your PATH (common on Windows), use either:
python -m mzx.guior the Python Launcher for Windows:
py -m mzx.gui
The CLI can always be run as python -m mzx (same as the mzx command).
Conversion uses ProteoWizard; supported vendors include Agilent, Bruker, Sciex, Shimadzu, Thermo, Waters, and UIMF. See the ProteoWizard FAQ for vendor-specific notes.
.mgf.mzML.raw(Thermo).wiff(Sciex)
- Convert between common mass spectrometry interchange formats via msconvert
- Vendor formats: Agilent, Bruker, Sciex, Thermo, Waters, and others supported by ProteoWizard
- CLI and experimental GUI
Full documentation: mzx.readthedocs.io
From a clone of the repo, using uv (recommended):
make setup
source .venv/bin/activate # Windows: .venv\Scripts\activate
make installmake setup creates .venv and installs development dependencies from requirements.txt. make install installs mzx in editable mode.
Without make, the same steps are:
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
uv pip install -e .Run tests:
make testOther useful targets: make lint, make help.
GNU General Public License v3 — see LICENSE.