Bruker and Thermo raw file to mzML converter built with mzdata.
- Thermo RAW (.NET 8 runtime required)
- Bruker TDF (DDA & DIA)
- mzML
- MGF
Platforms: Windows and Linux (limited by vendor libraries). macOS users can use Docker.
Download a binary from the releases page.
Or use Docker:
docker pull ghcr.io/compomics/mzdata-converter:latest
docker run -v $(pwd):/data -w /data ghcr.io/compomics/mzdata-converter sample.RAW# Single file
mzdata-converter sample.RAW
# Multiple files
mzdata-converter *.RAW *.d
# Custom output directory
mzdata-converter -o output/ *.RAW| Flag | Description |
|---|---|
-o, --output-dir |
Output directory (default: same as input) |
-j, --jobs |
Concurrent files (default: all) |
--no-peak-picking |
Disable centroiding |
--sn-threshold |
S/N threshold for peak picking (default: 1.0) |
--no-compression |
Disable zlib compression |
- Indexed mzML output with zlib compression
- Thermo: native vendor centroiding (through the
thermorawfilereadercrate) - Bruker: native SDK centroiding (bundled
timsdata.dll/libtimsdata.so) - Other formats: mzsignal peak picker
Single-file benchmarks on a 32-core Windows workstation:
| Format | Throughput | ~100k spectra |
|---|---|---|
| Thermo RAW | ~4,000 spectra/s | ~25s |
| Bruker TDF | ~550 spectra/s | ~3 min |
Multi-file workloads benefit from concurrent processing.
Built on the following projects:
- mzdata — Rust mass spectrometry I/O library by Joshua Klein
- thermorawfilereader — Rust bindings for Thermo's RawFileReader
- timsrust — Pure Rust Bruker TDF reader (fallback when SDK is unavailable)
- Bruker TDF-SDK — Native centroiding library for timsTOF data
- ThermoRawFileParser — Thermo RAW to mzML converter (C#)
- tdf2mzml — Bruker TDF to mzML converter (Python)
- msconvert (ProteoWizard) — Multi-vendor converter supporting Waters, SCIEX, Agilent, and more
Apache-2.0. See NOTICE for third-party license information.