Skip to main content

Python Toolkit for Mass Spectrometry

Docs

Documentation Build Status Docs Check Status

Tests

Linux Test Status Windows Test Status macOS Test Status Coverage

PyPI

PyPI - Package Version PyPI - Supported Python Versions PyPI - Supported Implementations PyPI - Wheel

Anaconda

Conda - Package Version Conda - Platform

Activity

GitHub last commit GitHub commits since tagged version Maintenance PyPI - Downloads

QA

CodeFactor Grade Flake8 Status mypy status

Other

License GitHub top language Requirements Status

PyMassSpec is a Python package for processing gas chromatography-mass spectrometry data. PyMassSpec provides a framework and a set of components for rapid development and testing of methods for processing of chromatography–mass spectrometry data. PyMassSpec can be used interactively through the Python shell, in a Jupyter Notebook, or the functions can be collected into scripts when it is preferable to perform data processing in the batch mode.


Forked from the original PyMS Repository: https://github.com/ma-bio21/pyms. Originally by Andrew Isaac, Sean O’Callaghan and Vladimir Likić. The original publication can be found here: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-13-115

The original project seems to have been abandoned as there has been no activity since 2017.


The PyMassSpec project

The directory structure of PyMassSpec is as follows:

/
├── pyms:      The PyMassSpec code
│
├── pyms-data: Example GC-MS data files
│
├── pyms-demo: Examples of how to use PyMassSpec
│
├── tests: pytest tests
│
└── doc-source: Sphinx source for documentation

Features

Installation

PyMassSpec can be installed with the following command:

$ pip --user install PyMassSpec

This will also install the following dependencies:

numpy >= 1.16.2
scipy >= 1.2.1
pymzml >= 2.2.1
matplotlib >= 3.0.2
openpyxl >= 2.6.2
netCDF4 >= 1.5.0
biopython >= 1.74
deprecation >= 2.0.6

PyMassSpec can also make use of ‘mpi4py’ if it is installed. See https://mpi4py.readthedocs.io/en/stable/ for further information.

Usage

A tutorial illustrating various PyMassSpec features in detail is provided in subsequent chapters of this User Guide. The commands executed interactively are grouped together by example, and can be found here.

The data used in the PyMassSpec documentation and examples is available here.

In the “Demos and Examples” section there is a page corresponding to each example, coded with the chapter number (ie. “pyms-demo/20a/” corresponds to the Example 20a, from Chapter 2).

Each example has a script named ‘proc.py’ which contains the commands given in the example. These scripts can be run with the following command:

$ python3 proc.py

Example processing GC-MS data

Download the file gc01_0812_066.jdx and save it in the folder data. This file contains GC-MS data in the the JCAMP-DX format.

First the raw data is loaded:

>>> from pyms.GCMS.IO.JCAMP import JCAMP_reader
>>> jcamp_file = "data/gc01_0812_066.jdx"
>>> data = JCAMP_reader(jcamp_file)
-> Reading JCAMP file 'Data/gc01_0812_066.jdx'
>>> data
<pyms.GCMS.Class.GCMS_data at 0x7f3ec77da0b8>

The intensity matrix object is then built by binning the data:

>>> from pyms.IntensityMatrix import build_intensity_matrix_i
>>> im = build_intensity_matrix_i(data)

In this example, we show how to obtain the dimensions of the newly created intensity matrix, then loop over all ion chromatograms, and for each ion chromatogram apply Savitzky-Golay noise filter and tophat baseline correction:

>>> n_scan, n_mz = im.size
>>> from pyms.Noise.SavitzkyGolay import savitzky_golay
>>> from pyms.TopHat import tophat
>>> for ii in range(n_mz):
...     print("working on IC", ii)
...     ic = im.get_ic_at_index(ii)
...     ic1 = savitzky_golay(ic)
...     ic_smooth = savitzky_golay(ic1)
...     ic_base = tophat(ic_smooth, struct="1.5m")
...     im.set_ic_at_index(ii, ic_base)

The resulting noise and baseline corrected ion chromatogram is saved back into the intensity matrix.

Further examples can be found in the documentation

Contributing

Contributions are very welcome. Tests can be run with pytest. Please ensure the coverage is at least Coverage before you submit a pull request.

For further information see the section Contributing to PyMassSpec

License

PyMassSpec is Free and Open Source software released under the GNU General Public License version 2.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Release files for pymassspec 2.7.0.post1

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

Source distribution (sdist)

Source distribution for pymassspec 2.7.0.post1
File Size Uploaded
pymassspec-2.7.0.post1.tar.gz 94.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymassspec 2.7.0.post1
File Interpreter ABI Platform
pymassspec-2.7.0.post1-py3-none-any.whl Python 3 none any Details

Total release size: 220.5 kB

Release files / pymassspec-2.7.0.post1.tar.gz

Download URL pymassspec-2.7.0.post1.tar.gz
Size 94.4 kB
Tags Source
SHA-256 checksum
How to use checksums
da3045f726868a1b5d4629f4fc7895b44105653814e0a1f1981e0bfca74df7bc
BLAKE2b-256 checksum
How to use checksums
4b6c020b6200c8d90d9341ab30c8052988e98ea34eb9676a43a82cc55c2655c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pymassspec-2.7.0.post1-py3-none-any.whl

Download URL pymassspec-2.7.0.post1-py3-none-any.whl
Size 126.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4378a33450682ca7fc6ffa9c690119119db03ee105eea0980c5ab2181475ca9d
BLAKE2b-256 checksum
How to use checksums
f54956b0bdb38c3f92f6c396ea89fdea570ecc6063d2b1d9a846b8275f3d24c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

2.7.0.post1 This release

2 release files

2.5.0

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.21

2 release files

2.2.20

2 release files

2.2.18

2 release files

2.2.17

2 release files

2.2.16

2 release files

2.2.15

2 release files

2.2.11

2 release files

2.2.10

2 release files

2.2.9

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

2 release files

2.2.5

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.1.0

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