Skip to main content

quantms-utils

Python application Python package Codacy Badge PyPI version License: MIT

Python package with scripts and functions for the quantms workflow for the analysis of quantitative proteomics data.

The package is available on PyPI: quantms-utils

pip install quantms-utils

Available Scripts

The following functionalities are available in the package:

Diann scripts

  • dianncfg - Create a configuration file for Diann including enzymes, modifications, and other parameters.
  • diann2msstats - Convert DIA-NN output to MSstats format. The output is used for quality control and downstream analysis in quantms.

SDRF scripts

  • openms2sample - Extra sample information from OpenMS experimental design file. An example of OpenMS experimental design file is available here.
  • checksamplesheet - Check the sample sheet for errors and inconsistencies. The experimental design coult be an OpenMS experimental design file or and SDRF file.
  • splitlfqgroups - Split an LFQ run set into independent quantification groups by SDRF columns (--column, repeatable). It writes one SDRF and one OpenMS experimental design per group and the manifest lfq_groups.tsv. Every run is kept; a run assigned to two groups, a fractionated sample that crosses groups, or a run set that differs between the SDRF and the design is an error.

Other scripts

  • psmconvert - The convert_psm function converts peptide spectrum matches (PSMs) from an idXML file to a parquet file, optionally filtering out decoy matches. It extracts and processes data from both the idXML and an associated spectra file, handling multiple search engines and scoring systems.
  • mzmlstats - The mzmlstats processes .mzML mass spectrometry data files to extract and compile statistics about the spectra. It supports generating detailed parquet files with spectrum metadata and MS2 peak data.

mzml statistics

quantms-utils have multiple scripts to generate mzML stats. These files are used by multiple tools and packages within quantms ecosystem for quality control, mzTab generation, etc. Here are some details about the formats, the fields they contain and gow they are computed.

MS info and details

mzmlstats allows the user to produce a file containing all features for every signal in the MS/MS experiment. The produced file is a parquet file, with the original name of the file plus the following postfix {file_name}_ms_info.parquet. Here, the definition of each column and how they are estimated and used:

  • scan: The scan accession for each MS and MS/MS signal in the mzML, depending on the manufacturer, the scan will have different formats. Example, for thermo (e.g controllerType=0 controllerNumber=1 scan=43920). We tried to find the definition of quantms.io.
  • ms_level: The MS level of the signal, 1 for MS and 2 for MS/MS.
  • num_peaks: The number of peaks in the MS. Compute with pyopenms with spectrum.get_peaks().
  • base_peak_intensity: The max intensity in the spectrum (MS or MS/MS).
  • summed_peak_intensities: The sum of all intensities in the spectrum (MS or MS/MS).
  • rt: The retention time of the spectrum, capture with pyopenms with spectrum.getRT().

For MS/MS signals, we have the following additional columns:

  • precursor_charge: The charge of the precursor ion, if the signal is MS/MS. Capture with pyopenms with spectrum.getPrecursors()[0].getCharge().
  • precursor_mz: The m/z of the precursor ion, if the signal is MS/MS. Capture with pyopenms with spectrum.getPrecursors()[0].getMZ().
  • precursor_intensity: The intensity of the precursor ion, if the signal is MS/MS. Capture with pyopenms with spectrum.getPrecursors()[0].getIntensity(). If the precursor is not annotated (present), we use the purity object to get the information; see note below.
  • precursor_rt: The retention time of the precursor ion, if the signal is MS/MS. See note below.
  • precursor_total_intensity: The total intensity of the precursor ion, if the signal is MS/MS. See note below.

NOTE: For all the precursor-related information, we are using the first precursor in the spectrum. The following columns intensity (if not annotated), precursor_rt, and precursor_total_intensity we use the following pyopnems code:

precursor_spectrum = mzml_exp.getSpectrum(precursor_spectrum_index)
precursor_rt = precursor_spectrum.getRT()
purity = oms.PrecursorPurity().computePrecursorPurity(precursor_spectrum, precursor, 100, True)
precursor_intensity = purity.target_intensity
total_intensity = purity.total_intensity
MS2 info and details

mzmlstats allows the user to produce a file containing all the MS2 spectra including the intesities and masses of every peak. The produced file is a parquet file, with the original name of the file plus the following postfix {file_name}_ms2_info.parquet. Here, the definition of each column and how they are estimated and used:

  • scan: The scan accession for each MS and MS/MS signal in the mzML, depending on the manufacturer, the scan will have different formats. Example, for thermo (e.g controllerType=0 controllerNumber=1 scan=43920). We tried to find the definition of quantms.io.
  • ms_level: The MS level of the signal, all of them will be 2.
  • mz_array: The m/z array of the peaks in the MS/MS signal. Capture with pyopenms with mz_array, intensity_array = spectrum.get_peaks().
  • intensity_array: The intensity array of the peaks in the MS/MS signal. Capture with pyopenms with mz_array, intensity_array = spectrum.get_peaks().
MS1 Feature Maps

We use the FeatureFinderMultiplexAlgorithm from OpenMS to extract the features from the MS1 spectra. We use an algorithm based on the original implementation by Andy Lin. The output of this algorithm is a feature map, which contains the following information:

  • feature_mz: The m/z of the feature.
  • feature_rt: The retention time of the feature.
  • feature_intensity: The intensity of the feature.
  • feature_charge: The charge of the feature.
  • feature_quality: The quality of the feature.
  • feature_percentile_tic: The percentile of the feature in the total ion current.
  • feature_id: The unique identifier of the feature generated by OpenMS.
  • feature_min_rt: The minimum retention time of the feature within the feature map.
  • feature_min_mz: The minimum m/z of the feature within the feature map.
  • feature_max_rt: The maximum retention time of the feature within the feature map.
  • feature_max_mz: The maximum m/z of the feature within the feature map.
  • feature_num_scans: The number of scans that the feature is present in the feature map.
  • feature_scans: The scans where the feature is present in the feature map.

The tool will generate a gzip compressed parquet file with the extension {file_name}_ms1_feature_info.parquet.

Contributions and issues

Contributions and issues are welcome. Please, open an issue in the GitHub repository or PR in the GitHub repository.

Metadata

Release files for quantms-utils 0.0.31

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quantms-utils 0.0.31
File Size Uploaded
quantms_utils-0.0.31.tar.gz 38.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for quantms-utils 0.0.31
File Interpreter ABI Platform
quantms_utils-0.0.31-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 39.0 MB

Release files / quantms_utils-0.0.31.tar.gz

Download URL quantms_utils-0.0.31.tar.gz
Size 38.9 MB
Tags Source
SHA-256 checksum
How to use checksums
904b26b9a6649d3c895b0a5681917371d6d576be6da5d028a1c783696b17f467
BLAKE2b-256 checksum
How to use checksums
3228a47b2c93739c8b486391d19d15e8ecb319cc03754c05f2812785337af8d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / quantms_utils-0.0.31-py2.py3-none-any.whl

Download URL quantms_utils-0.0.31-py2.py3-none-any.whl
Size 29.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
a0a96f50138ad4693725bed061a545ae10369c3ee336a2198ba040cbff46dff3
BLAKE2b-256 checksum
How to use checksums
645966dc6d4e4daa67adb8d3f4b7732e8106607fa9ffcfa2bd44db930c4af4b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.0.31 This release

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page