Skip to main content

HUPO-PSI Spectral library format

Project description

PSI Spectral Library format - Python implementation

GitHub Actions Workflow Status Read the Docs

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mzspeclib-0.1.0a0.tar.gz (130.4 kB view details)

Uploaded Source

Built Distribution

mzspeclib-0.1.0a0-py3-none-any.whl (147.1 kB view details)

Uploaded Python 3

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

Hashes for mzspeclib-0.1.0a0.tar.gz
Algorithm Hash digest
SHA256 24dc5137643c495e4045aa252f976d8798ffbd7fe27d52a691e981d5854bb8f1
MD5 66c1aae6c45940cad133331f604be2cb
BLAKE2b-256 605ab6f22d6981a36871c19c0388f963badc0cb97dbe3f67148a3231bd946e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for mzspeclib-0.1.0a0.tar.gz:

Publisher: publish.yml on HUPO-PSI/mzspeclib-py

Attestations:

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

Hashes for mzspeclib-0.1.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 3a095424848625da75c53a017f382511055f89c4bfe3db90003ea68471143b4e
MD5 caa27e5d987d014b8a1886163905052a
BLAKE2b-256 bcc18a7d38837b71d344383ab4ad9acc08ff2b341042698c4ce235da780f1102

See more details on using hashes here.

Provenance

The following attestation bundles were made for mzspeclib-0.1.0a0-py3-none-any.whl:

Publisher: publish.yml on HUPO-PSI/mzspeclib-py

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page