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. It also powers a web
application to view spectral libraries at https://mzspeclib-app-viewer-demo.streamlit.app/
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.mzspeclib.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'))
# Loop over a library and count the number of unique peptide analytes
unique_analytes = set()
n_spectra = 0
for spec in lib:
for analyte in spec.analytes.values():
unique_analytes.add(str(analyte.peptide))
n_spectra += 1
print(f"\n{len(unique_analytes)} unique analytes over {n_spectra} spectra")
print(unique_analytes)
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|mzSpecLib.json|mzSpecLib.txt|mzlb.json|mzlb.txt|mzlib.json|mzlib.txt|mzspeclib.json|mzspeclib.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|mzSpecLib.json|mzSpecLib.txt|mzlb.json|mzlb.txt|mzlib.json|mzlib.txt|mzspeclib.json|mzspeclib.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.
PSI Spectral Library format - Python implementation
This is a Python reference implementation of the
mzSpecLibspectral library format. It provides readers and writers for the Text and JSON serialization ofmzSpecLib, as well as readers for the following spectral library formats found in the wild:Once installed, it can be used programmatically by importing the
mzspeclibPython library, or using themzspeclibcommand line tool to read, write, and manipulate spectral libraries. It also powers a web application to view spectral libraries at https://mzspeclib-app-viewer-demo.streamlit.app/Development
For development, run:
Test with
Usage
Python library
mzspeclib-pyprovides a Python API with the namemzspeclib. The top-level type,SpectrumLibraryis the main entry point into the library:Command Line Tool
It also provides a command line tool, also called
mzspeclibthat 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.
File Conversion
mzspeclib convertcan 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.Semantic Validation
mzspeclibincludes 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.