Skip to content

Sigilweaver/OpenProteo

OpenProteo

CI DOI crates.io PyPI docs.rs License: Apache-2.0 Rust MSRV Docs

One stack. Three vendors. Open Rust.

OpenProteo is the open-source Rust stack for proteomics raw-file access. Read Thermo, Bruker, and Waters acquisitions through a single API, convert them to PSI-MS mzML 1.1.0 with the canonical writer, and stream them straight into Arrow for downstream analytics. No vendor SDKs, no Windows-only DLLs, no binary blobs in your release pipeline.

The stack

Layer Crate What it does
Umbrella openproteo-io Feature-gated re-exports + detect_format + convert_to_mzml
CLI openproteo-io-cli vendor2mzml one-shot binary
Python openproteo Metapackage exposing the converter from Python
Shared core openproteo-core SpectrumRecord, Arrow batch, mzML writer
Thermo .raw opentfraw Finnigan reader
Bruker .d/ opentimstdf timsTOF TDF reader
Waters .raw/ openwraw MassLynx bundle reader

Current pinned stack lives in STACK.md.

Install

CLI

Pre-built vendor2mzml binaries land on the GitHub Releases page.

Or build from source:

cargo install openproteo-io-cli --features all

Rust library

[dependencies]
openproteo-io = { version = "1.0", features = ["all"] }

Vendor features are independent (thermo, bruker, waters) so you only compile what you ship.

Python

pip install openproteo

Use it

Convert a file

vendor2mzml /data/sample.raw /tmp/sample.mzML --indexed

vendor2mzml sniffs the format from the path (or directory layout for Bruker .d/ and Waters .raw/ bundles), routes through the matching vendor crate, and writes indexed PSI-MS mzML 1.1.0.

From Rust

use openproteo_io::{detect_format, convert_to_mzml};

let fmt = detect_format("sample.raw")?;
println!("detected: {fmt:?}");
convert_to_mzml("sample.raw", "sample.mzML", /* indexed */ true)?;

From Python

import openproteo

openproteo.to_mzml("sample.raw", "sample.mzML", indexed=True)

Documentation

Full reference, conversion semantics, and the per-vendor parser notes live at sigilweaver.app/openproteo/docs.

The source for that site is in docs/ (Docusaurus). See docs/README.md for the build commands.

Contributing

Bug reports and PRs are welcome on any of the five repos. See SECURITY.md for the security policy.

This umbrella ships releases via scripts/release-stack.sh which gates on the downstream ProLance truth-test before tagging.

License

Apache-2.0. Each vendor crate carries its own header and upstream attribution; this repo only orchestrates them.

About

High-performance Rust + Python readers for mass spectrometry / proteomics raw data.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors