HUPO-PSI Spectral library format
Project description
PSI Spectral Library format - Python implementation
This is a Python reference implementation of the mzSpecLib
spectral library format. It provides readers and writers for the Text and JSON serialization
of mzSpecLib
, as well as readers for the following spectral library formats found in the wild:
- NIST MSP (also minimal writing facility)
- SPTXT
- BiblioSpec
- EncyclopeDIA
- DIA-NN
- Spectronaut
Once installed, it can be used programmatically by importing the mzspeclib
Python library, or using
the mzspeclib
command line tool to read, write, and manipulate spectral libraries.
Development
For development, run:
pip install --editable .
Test with
pytest
Usage
Python library
mzspeclib-py
provides a Python API with the name mzspeclib
. The top-level type, SpectrumLibrary
is
the main entry point into the library:
from mzspeclib import SpectrumLibrary
# Open a spectrum library
lib = SpectrumLibrary(filename="examples/fetal_brain_tiny.mzlib.txt")
print(lib)
# Get the number of spectra in the library
n_spectra = len(lib)
print(n_spectra)
# Get a specific spectrum from the library
spec = lib.get_spectrum(spectrum_number=3)
print(f"Key={spec.key}; Name={spec.name}; Num Peaks={len(spec.peak_list)}")
print(spec.get_interpretation('1'))
Command Line Tool
It also provides a command line tool, also called mzspeclib
that lets the user convert
supported spectrum library formats into one of the PSI MzSpecLib formats.
All of the commands provide a limited automatic file format detection, but you can specify the input format if needed.
$ mzspeclib --help
Usage: mzspeclib [OPTIONS] COMMAND [ARGS]...
A collection of utilities for inspecting and manipulating spectral
libraries.
Options:
-d, --debug-logging Enable debug logging
-l, --log-file PATH Write log messages to this file as well as STDERR
-h, --help Show this message and exit.
Commands:
convert Convert a spectral library from one format to another
describe Produce a minimal textual description of a spectral library
index Build an on-disk index for a spectral library
validate Semantically validate a spectral library
File Conversion
mzspeclib convert
can read a variety of different text and binary file formats and write
them out in PSI MzSpecLib's Text and JSON encodings, as well as a dialect of MSP.
$ mzspeclib convert --help
Usage: mzspeclib convert [OPTIONS] INPATH OUTPATH
Convert a spectral library from one format to another. If `outpath` is `-`,
instead of writing to file, data will instead be sent to STDOUT.
Options:
-i, --input-format [bibliospec|blib|dia-nn.tsv|dlib|encyclopedia|json|msp|mzlb.json|mzlb.txt|mzlib.json|mzlib.txt|spectronaut.tsv|sptxt|text]
The file format of the input file. If
omitted, will attempt to infer
automatically.
-f, --format [text|json|msp]
-k, --library-attribute <TEXT TEXT>...
Specify an attribute to add to the library
metadata section. May be repeated.
-K, --header-file PATH Specify a file to read name-value pairs
from. May be JSON or TAB-separated
-h, --help Show this message and exit.
Semantic Validation
mzspeclib
includes a reference implementation of a semantic validator tool for spectrum libraries, testing
whether or not a library is compliant with the specification and a subset of community recommended practices.
$ mzspeclib validate --help
Usage: mzspeclib validate [OPTIONS] INPATH
Semantically and structurally validate a spectral library.
Options:
-p, --profile [consensus|single|silver|peptide|gold]
-i, --input-format [bibliospec|blib|dia-nn.tsv|dlib|encyclopedia|json|msp|mzlb.json|mzlb.txt|mzlib.json|mzlib.txt|spectronaut.tsv|sptxt|text]
The file format of the input file. If
omitted, will attempt to infer
automatically.
-h, --help Show this message and exit.
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
File details
Details for the file mzspeclib-0.1.0a0.tar.gz
.
File metadata
- Download URL: mzspeclib-0.1.0a0.tar.gz
- Upload date:
- Size: 130.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24dc5137643c495e4045aa252f976d8798ffbd7fe27d52a691e981d5854bb8f1 |
|
MD5 | 66c1aae6c45940cad133331f604be2cb |
|
BLAKE2b-256 | 605ab6f22d6981a36871c19c0388f963badc0cb97dbe3f67148a3231bd946e70 |
Provenance
The following attestation bundles were made for mzspeclib-0.1.0a0.tar.gz
:
Publisher:
publish.yml
on HUPO-PSI/mzspeclib-py
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
mzspeclib-0.1.0a0.tar.gz
- Subject digest:
24dc5137643c495e4045aa252f976d8798ffbd7fe27d52a691e981d5854bb8f1
- Sigstore transparency entry: 148153502
- Sigstore integration time:
- Predicate type:
File details
Details for the file mzspeclib-0.1.0a0-py3-none-any.whl
.
File metadata
- Download URL: mzspeclib-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 147.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a095424848625da75c53a017f382511055f89c4bfe3db90003ea68471143b4e |
|
MD5 | caa27e5d987d014b8a1886163905052a |
|
BLAKE2b-256 | bcc18a7d38837b71d344383ab4ad9acc08ff2b341042698c4ce235da780f1102 |
Provenance
The following attestation bundles were made for mzspeclib-0.1.0a0-py3-none-any.whl
:
Publisher:
publish.yml
on HUPO-PSI/mzspeclib-py
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
mzspeclib-0.1.0a0-py3-none-any.whl
- Subject digest:
3a095424848625da75c53a017f382511055f89c4bfe3db90003ea68471143b4e
- Sigstore transparency entry: 148153505
- Sigstore integration time:
- Predicate type: