Part of the OpenMassSpec stack for mass spectrometry raw-file access. Sibling readers: OpenTFRaw (Thermo), OpenWRaw (Waters), OpenTimsTDF (Bruker).
Rust and Python reader for Agilent MassHunter .d mass spectrometry data
directories, clean-room reverse-engineered with no Agilent SDK or
software dependency. Covers the modern AcqData MassHunter shape across
Q-TOF (profile and centroid) and QQQ (MRM) acquisitions.
Published on crates.io (openaraw) and PyPI (openaraw). The reader is
validated against the full corpus (332 of 338 real-world PRIDE .d
datasets pass conformance checks end to end; the remaining 6 are
malformed source uploads, see
docs/format/06-known-limitations.md).
Prefer openmassspec-io
with the agilent feature/extra unless you need this parser standalone
(minimal dependencies, or building your own abstraction) - the umbrella
gives you format auto-detection, mzML conversion, and Arrow streaming
across all wired-in vendors for free:
cargo add openmassspec-io --features agilentpip install openmassspec[agilent]Standalone:
Rust:
cargo add openarawPython:
pip install openarawRust:
use openaraw::reader::Reader;
use openmassspec_core::SpectrumSource;
let mut reader = Reader::open("sample.d")?;
for spectrum in reader.iter_spectra() {
println!("{}: {} peaks", spectrum.native_id, spectrum.mz.len());
}Python:
import openaraw
reader = openaraw.RawReader("sample.d")
spectrum = reader.read_spectrum(0)
print(spectrum.ms_level, spectrum.retention_time_sec, len(spectrum.mz))Apache-2.0. See LICENSE.
The format specification was developed by binary analysis of public mass-spectrometry datasets (PRIDE accessions). See CORPUS.md and ATTRIBUTION.md.