Metadata-Version: 2.4
Name: thermo-native-raw
Version: 0.0.1a2
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Requires-Dist: numpy>=1.20
License-File: LICENSE.md
Summary: A native reader for Thermo Fisher .raw files.
Home-Page: https://github.com/z3rone-org/thermo-native-raw
Author: Falk Boudewijn Schimweg
License: AGPL-3.0-or-later
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://thermo-native-raw.readthedocs.io/
Project-URL: Homepage, https://github.com/z3rone-org/thermo-native-raw
Project-URL: Repository, https://github.com/z3rone-org/thermo-native-raw

# thermo-native-raw

A native Rust-based reader for Thermo Fisher .raw files, with Python bindings via PyO3.

## Overview

`thermo-native-raw` provides access to spectral data and diagnostic metadata from Thermo Fisher RAW files. It is an alternative to using the official Windows DLLs and is intended for use in research pipelines.

## Current Support

- **Basic Metadata**: Access scan number, retention time, and precursor information.
- **Spectrum Access**: Extract spectral peaks for supported scan versions (v57 and v66).
- **Diagnostics**: Extract common trailer metadata fields (Injection Time, AGC, etc.).
- **Logs**: Basic extraction of Instrument Method XML and Status/Error logs.

## Installation

```bash
# In your project root
maturin develop
```

## Quick Start

```python
import thermo_native_raw

# Initialize the reader
reader = thermo_native_raw.RawFileReader("data.raw")

# Get scan metadata
scans = reader.list_spectra()
print(f"Total scans: {reader.num_scans}")

# Extract peaks for scan 1
mzs, intensities = reader.get_peaks(1)

# Get diagnostic trailer metadata
metadata = reader.get_trailer_extra(1)
print(f"Injection Time: {metadata['Ion Injection Time (ms)']} ms")
```

## Documentation

Full documentation, including API reference and binary file structure details, is available in the `docs/` directory:

```bash
cd docs
make html
open _build/html/index.html
```

## Authors

- **Falk Boudewijn Schimweg** (Original Author)

## License

`thermo-native-raw` is licensed under the **GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later)**. 

Copyright © 2026, Falk Boudewijn Schimweg.

