Git Product home page Git Product logo

pyqms's Introduction

Introduction

pyQms enables universal and accurate quantification of mass spectrometry data

Documentation Status Travis CI status AppVeyor CI status pypi As long it is black

Summary

pyQms is an extension to Python that offers amongst other things

  1. fast and accurate quantification of all high-res LC-MS data
  2. full labeling and modification flexibility
  3. full platform independence

Abstract

Quantitative mass spectrometry (MS) is a key technique in many research areas (Yates III et al. 2009), including proteomics, metabolomics, glycomics, and lipidomics. Because all of the corresponding molecules can be described by chemical formulas, universal quantification tools are highly desirable. Here we present pyQms, an open-source software for accurate quantification of all types of molecules measurable by MS. pyQms uses isotope pattern matching which offers accurate quality assessment of the quantification and the ability to directly incorporate mass spectrometer accuracy. pyQms is, due to its universal design, applicable to every research field, labeling strategy, and acquisition technique. This opens ultimate flexibility for researchers to design experiments employing innovative and hitherto unexplored labeling strategies. Importantly, pyQms performs very well to accurately quantify partially labeled proteomes in large-scale and high-throughput, the most challenging task for a quantification algorithm.

-- Leufken, J., Niehues, A., Hippler, M., Sarin, L. P., Hippler, M., Leidel, S. A., and Fufezan, C. (2017) pyQms enables universal and accurate quantification of mass spectrometry data. MCP In Press

Link to manuscript.

http://www.mcponline.org/content/early/2017/07/20/mcp.M117.068007.abstract

pyQms module

At its core, pyQms is a Python module that allows a isotope pattern library to be initialized and any list of (mz, intensity) to be matched against the library, yielding a mScore.

Documentation

http://pyqms.readthedocs.io/en/latest/

Implementation

pyQms requires Python3.4+ .

The module is freely available on pyqms.github.io or pypi, published under MIT LGPL and requires no additional modules to be installed. For fast spectra from mzML access we recommend pymzML (Bald et al. 2012). For example scripts it is necessary to install pymzML as well or change the code for alternated spectra access. For some scripts also the openpyxl module is required.

Download

Get the latest version via github

Citation

Please cite us when using pyQms in your work.

The original publication can be found here:
Leufken, J., Niehues, A., Hippler, M., Sarin, L. P., Hippler, M., Leidel, S. A., and Fufezan, C. (2017) pyQms enables universal and accurate quantification of mass spectrometry data. Mol. Cell. Proteomics 16, 1736–1745

Full article

http://www.mcponline.org/content/16/10/1736

Early access article version

http://www.mcponline.org/content/early/2017/07/20/mcp.M117.068007.abstract

DOI

10.1074/mcp.M117.068007

Installation

Install requirements:

user@localhost:~$ cd pyqms
user@localhost:~/pyqms$ pip3.4 install -r requirements.txt

Install pyQms:

user@localhost:~/pyqms$ python3.4 setup.py install

pyQms can be also be installed via pip:

pip install pyqms

(You might need administrator privileges to write in the Python site-package folder. On Linux or OS X, use `sudo python setup.py install` or write into a user folder by using this command `python setup.py install --user`. On Windows, you have to start the command line with administrator privileges.)

pyQms docs recompiling and extending

You will require sphinx and other packages to build the documentation from scratch. We recommend to use a Python virtual environment for easy installation and use.

Tests

Run nosetests in root folder. You might need to install nose for Python3 first. Then just execute:

user@localhost:~/pyqms$ nosetests3

to test the package.

LICENSE

This software is under MIT license, please refer to LICENSE for full license.

Publications and project using pyQms for quantification

- Hohner, R., Barth, J., Magneschi, L., Jaeger, D., Niehues, A., Bald, T., Grossman, A., Fufezan, C., and Hippler, M. (2013) The Metabolic Status Drives Acclimation of Iron Deficiency Responses in Chlamydomonas reinhardtii as Revealed by Proteomics Based Hierarchical Clustering and Reverse Genetics. Mol. Cell. Proteomics 12, 2774–2790 Pubmed
- Barth, J., Bergner, S. V., Jaeger, D., Niehues, A., Schulze, S., Scholz, M., and Fufezan, C. (2014) The Interplay of Light and Oxygen in the Reactive Oxygen Stress Response of Chlamydomonas reinhardtii Dissected by Quantitative Mass Spectrometry. Mol. Cell. Proteomics 13, 969–989 Pubmed
- Kukuczka, B., Magneschi, L., Petroutsos, D., Steinbeck, J., Bald, T., Powikrowska, M., Fufezan, C., Finazzi, G., and Hippler, M. (2014) Proton Gradient Regulation5-Like1-Mediated Cyclic Electron Flow Is Crucial for Acclimation to Anoxia and Complementary to Nonphotochemical Quenching in Stress Adaptation. Plant Physiol. 165, 1604–1617 Pubmed
- Alings, F., Sarin, L. P., Fufezan, C., Drexler, H. C. A., and Leidel, S. A. (2015) An evolutionary approach uncovers a diverse response of tRNA 2-thiolation to elevated temperatures in yeast. RNA 21, 202–212 Pubmed
- Bergner, S. V., Scholz, M., Trompelt, K., Barth, J., Gäbelein, P., Steinbeck, J., Xue, H., Clowez, S., Fucile, G., Goldschmidt-Clermont, M., Fufezan, C., and Hippler, M. (2015) STATE TRANSITION7-Dependent Phosphorylation Is Modulated by Changing Environmental Conditions, and Its Absence Triggers Remodeling of Photosynthetic Protein Complexes. Plant Physiol. 168, 615–634 Pubmed
- Hochmal, A. K., Zinzius, K., Charoenwattanasatien, R., Gäbelein, P., Mutoh, R., Tanaka, H., Schulze, S., Liu, G., Scholz, M., Nordhues, A., Offenborn, J. N., Petroutsos, D., Finazzi, G., Fufezan, C., Huang, K., Kurisu, G., and Hippler, M. (2016) Calredoxin represents a novel type of calcium-dependent sensor-responder connected to redox regulation in the chloroplast. Nat. Commun. 7, 11847 Pubmed
- Pfannmüller, A., Leufken, J., Studt, L., Michielse, C. B., Sieber, C. M. K., Güldener, U., Hawat, S., Hippler, M., Fufezan, C., and Tudzynski, B. (2017) Comparative transcriptome and proteome analysis reveals a global impact of the nitrogen regulators AreA and AreB on secondary metabolism in Fusarium fujikuroi. PLoS One in press, 1–27 Pubmed

Contact information

Please refer to:

Dr. Christian Fufezan
Cellzome
Molecular Discovery Research
GlaxoSmithKline
69117 Heidelberg
Germany

pyqms's People

Contributors

fu avatar gavswe avatar jb-ms avatar mkoesters avatar renovate-bot avatar renovate[bot] avatar stschulze avatar thompsonsed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pyqms's Issues

running the generate_quant_summary_file.py example script

I am new to github issues so sorry in advance if my comment isn't entirely up to standards.

I have been running the example scripts and ran into a problem with the script generate_quant_summary_file.py as I got the script via github -> download zip. The error I got was:

Traceback (most recent call last): File "../generate_quant_summary_file.py", line 75, in <module> result_pkl = sys.argv[1], File "../generate_quant_summary_file.py", line 66, in main calc_amount_function = None File "/home/ruben/.local/lib/python3.6/site-packages/pyqms/results.py", line 1241, in calc_amounts_from_rt_info_file if rt < line_dict['start (min)']: #i.e. start of rt window TypeError: '<' not supported between instances of 'tuple' and 'float'

so I went to the script results.py and changed line 1241 into:

if rt[0] < line_dict['start (min)']:

NB I added the [0] also in line. Also for:

elif rt[0] > line_dict['stop (min)']:

Now the script runs without errors but the generated xml file has some columns without values, i.e. max I in window, max I in window (rt), max I in window (score), auc in window, sum I in window. Also after changing line:
obj_for_calc_amount['rt'].append(rt[0])

The problem seems to be that the rt is always larger that the stop (min) column. When I print the values I also see that the rt values from line_dict['stop (min)'] are in the range of 1700 till 2500 while the rt[0] values are always around the 30 - 40.

I cannot really add my files because the file type is not supported.

Maybe the example script should be rewritten? Could also be my files.

some more information:

I work on Ubuntu 18.04.2 LTS
installed pyqms via pip 19.0.3
Python 3.6.8

__init__() got an unexpected keyword argument 'add_default_files'

pyQms doesn't seem to initialize properly:

import pyqms
lib = pyqms.IsotopologueLibrary(molecules=['+H2O2'],charges=[1,2])

Metabolic labels > {'15N': [0.0]}
Fixed labels > {}
Charges > [1, 2]
Machine ppm offset > 0.0
Label percentile tuples > [(('N', '0.000'),)]
Traceback (most recent call last):
File "", line 1, in
File "/home/test/pyqms/isotopologue_library.py", line 318, in init
add_default_files=add_default_files,

pyqms has been installed with pip, and the requirements are are all included as well.
This is on a linux system (CentOS).

no import os in adaptors.py

Hi,

If adapters.py (this github repo) gets a unrecognized file format supplied the line 325 os.path.splitext(evidence_file)[1] is executed. However, nowhere in the script it says import os, so by adding that it will execute without issues. Unless I am mistaken somehow and am using the wrong installment / repo.

empty results from match_all()

HI
I am currently running a targeted metabolomics pipeline and I wanted to use pyQms for the same. I ran it on publicly available dataset to finalize the pipeline .

  1. I first converted .raw files to .mzML files using msconvert ( windows version ). The settings I used are SRM as spectra and MSlevels 1 to 2
  2. I then made an isotopologue library (in pyqms) with default parameters for 10 metabolites.
  3. I accessed the mzML files with pymzml reader ( which worked as expected and I was able to see different fields of the file ) and I applied the match_all() to match spectra in the mzML files with the pre-defined metabolites.

However, I am getting empty results for all spectra ( for all 197 samples ).

Is there anything I am missing in my approach?

The following is an example of the isotope library:
{'C(3)H(7)N(1)O(3)': {'env': {(('N', '0.000'),): {'isot': [], 'mass': [105.0425930894, 106.04535444237278, 107.04859822526103, 108.05141269057845, 109.04908971506664], 'abun': [95693, 3564, 605, 21, 0], 'relabun': [1.0, 0.037243259830917544, 0.006325210252071238, 0.00022270996650129225, 7.308437265552054e-07], 'c_peak_pos': [0, 1, None, None, None], 'n_c_peaks': 2.0, 1: {'mz': [106.04986955617, 107.05263090914278, 108.05587469203103, 109.05868915734844, 110.05636618183664], 'tmzs': [{106049, 106050}, {107052, 107053}, None, None, None], 'atmzs': {106049, 106050, 107052, 107053}}}}, 'cc': {'C': 3, 'H': 7, 'N': 1, 'O': 3}}

The dataset I used is here : https://www.ebi.ac.uk/metabolights/MTBLS405/metabolites

Thanks !

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/cd.yaml
  • actions/checkout v2
  • actions/setup-python v4
  • casperdcl/deploy-pypi v2
.github/workflows/tox-ci.yml
  • actions/checkout v2
  • actions/setup-python v4
  • actions/checkout v2
  • actions/setup-python v4
pip_requirements
docs/requirements.txt
requirements.txt
  • pymzml ==2.5.1
  • openpyxl ==3.0.4

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.