MS I/O readers with optional vendor bindings
Project description
Pymsio
Pymsio is a lightweight module for reading mass-spectrometry data files into a unified NumPy/Polars representation.
Its design and implementation are based on the AlphaRaw project: https://github.com/MannLabs/alpharaw/.
It currently supports:
- Thermo RAW files (via
pythonnet+ Thermo Fisher CommonCore DLLs) - mzML files
Both formats are exposed through a common interface.
Requirements
- Supported OS: Windows, Linux
- Python: >= 3.8
- Thermo RAW:
- Requires Thermo Fisher CommonCore DLLs (
ThermoFisher.CommonCore.Data.dll,ThermoFisher.CommonCore.RawFileReader.dll) obtained from the RawFileReader project (https://github.com/thermofisherlsms/RawFileReader). - Linux also needs Mono (use
install_mono.sh).
- Requires Thermo Fisher CommonCore DLLs (
Installation
-
Clone the repository
git clone https://github.com/bertis-informatics/pymsio.git cd pymsio
-
Quick Install (recommended)
The install script downloads the Thermo RawFileReader DLLs (with license agreement) and installs pymsio in one step.
Windows PowerShell
.\install.ps1
Linux / macOS
chmod +x install.sh ./install.sh
-
Manual Install
Click to expand manual installation steps
a. Provide the Thermo DLLs (only needed for Thermo RAW)
-
Linux only: ensure Mono is installed (required by pythonnet). Use the helper script:
./install_mono.sh
- Download (or
git clone) RawFileReader: https://github.com/thermofisherlsms/RawFileReader - Copy the two DLLs from
RawFileReader/Libs/Net471/:ThermoFisher.CommonCore.Data.dllThermoFisher.CommonCore.RawFileReader.dll
- Make the DLLs discoverable:
- Option A — Bundle DLLs inside the package
<path-to-pymsio>/pymsio/dlls/thermo_fisher/- Copy the DLLs into
pymsio/dlls/thermo_fisher/before runningpip install -e .so they ship with the installation. - Example:
mkdir -p pymsio/dlls/thermo_fisher cp /path/to/RawFileReader/Libs/Net471/*.dll /path/to/pymsio/pymsio/dlls/thermo_fisher/
- Copy the DLLs into
- Option B — Set up an environment variable
PYMSIO_THERMO_DLL_DIR- Windows example:
setx PYMSIO_THERMO_DLL_DIR "<path-to-your-dll-folder>"
- Linux example:
export PYMSIO_THERMO_DLL_DIR="<path-to-your-dll-folder>"
(Add the export line to~/.bashrcto keep it persistent.) - Copy the DLLs into the folder referenced by the variable.
- Windows example:
- Option A — Bundle DLLs inside the package
b. Install pymsio
pip install .
-
Quick Test
Run the test suite with pytest:
# Basic tests (import check, DLL binding check)
pytest tests/
# With reader tests (provide file paths)
pytest tests/ --raw "path/to/file.raw" --mzml "path/to/file.mzML"
Tests for readers whose file path is not provided will be automatically skipped.
Code Example
Click to expand
from pathlib import Path
from pymsio.readers import ReaderFactory
path = Path("path/to/your/file.raw") # or .mzML
# 1) Get appropriate reader (Thermo RAW or mzML)
reader = ReaderFactory.get_reader(path)
# 2) Read metadata (Polars DataFrame)
meta_df = reader.get_meta_df()
print(meta_df.head())
# 3) Read one frame (np.ndarray, shape (N, 2), columns: [mz, intensity])
frame_num = int(meta_df.item(0, "frame_num"))
peaks = reader.get_frame(frame_num)
print(peaks.shape)
# 4) Load full dataset
msdata = reader.load()
print(msdata.peak_arr.shape)
License
This project is licensed under the Apache License 2.0.
Note: The Thermo RawFileReader DLLs are proprietary and subject to their own license. They are not included in this repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymsio-0.1.13.tar.gz.
File metadata
- Download URL: pymsio-0.1.13.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8d59b900b31e2f9169d02a88c2413dc1883886ec57529580fd050a142e312c5
|
|
| MD5 |
04a1a433816d3bfe89fb3bd1df03eac4
|
|
| BLAKE2b-256 |
79ac9e0328c7a1f3f56971fd0d5b65992d4041763c2da68e3e79b97a22a56cfb
|
File details
Details for the file pymsio-0.1.13-py3-none-any.whl.
File metadata
- Download URL: pymsio-0.1.13-py3-none-any.whl
- Upload date:
- Size: 20.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
789299c5acf959998c46502868fe500deadf98ff30f1ab832a634c823c551d04
|
|
| MD5 |
aeda3b7f7bfa034ce6f04c02b8660d07
|
|
| BLAKE2b-256 |
40b2effad49412fcbd5b6066cd3882fe15a25b5d1d1f261169ca43155620cf9c
|