pyopenms

Par mkurman · zorai

Plateforme complète d'analyse par spectrométrie de masse. À utiliser pour les workflows de protéomique : détection de features, identification de peptides, quantification de protéines et pipelines LC-MS/MS complexes. Prend en charge de nombreux formats de fichiers et algorithmes. Idéal pour la protéomique et le traitement complet de données MS. Pour la comparaison spectrale simple et l'identification de métabolites, utiliser matchms.

npx skills add https://github.com/mkurman/zorai --skill pyopenms

PyOpenMS

Aperçu

PyOpenMS fournit des liaisons Python pour la bibliothèque OpenMS dédiée à la spectrométrie de masse computationnelle, permettant l'analyse de données de protéomique et métabolomique. À utiliser pour traiter les formats de fichiers de spectrométrie de masse, traiter les données spectrales, détecter des caractéristiques, identifier des peptides/protéines et effectuer des analyses quantitatives.

Installation

Installez avec uv :

uv pip install pyopenms

Vérifiez l'installation :

import pyopenms
print(pyopenms.__version__)

Capacités principales

PyOpenMS organise les fonctionnalités dans ces domaines :

1. E/S de fichiers et formats de données

Traitez les formats de fichiers de spectrométrie de masse et convertissez entre les représentations.

Formats supportés : mzML, mzXML, TraML, mzTab, FASTA, pepXML, protXML, mzIdentML, featureXML, consensusXML, idXML

Lecture basique de fichiers :

import pyopenms as ms

# Lire un fichier mzML
exp = ms.MSExperiment()
ms.MzMLFile().load("data.mzML", exp)

# Accéder aux spectres
for spectrum in exp:
    mz, intensity = spectrum.get_peaks()
    print(f"Spectrum: {len(mz)} peaks")

Pour un traitement de fichiers détaillé : Voir references/file_io.md

2. Traitement du signal

Traitez les données spectrales brutes avec lissage, filtrage, centroïdation et normalisation.

Traitement basique de spectre :

# Lisser le spectre avec un filtre gaussien
gaussian = ms.GaussFilter()
params = gaussian.getParameters()
params.setValue("gaussian_width", 0.1)
gaussian.setParameters(params)
gaussian.filterExperiment(exp)

Pour les détails algorithmiques : Voir references/signal_processing.md

3. Détection de caractéristiques

Détectez et liez les caractéristiques sur les spectres et les échantillons pour l'analyse quantitative.

# Détecter les caractéristiques
ff = ms.FeatureFinder()
ff.run("centroided", exp, features, params, ms.FeatureMap())

Pour les workflows complets : Voir references/feature_detection.md

4. Identification de peptides et protéines

Intégrez avec les moteurs de recherche et traitez les résultats d'identification.

Moteurs supportés : Comet, Mascot, MSGFPlus, XTandem, OMSSA, Myrimatch

Workflow basique d'identification :

# Charger les données d'identification
protein_ids = []
peptide_ids = []
ms.IdXMLFile().load("identifications.idXML", protein_ids, peptide_ids)

# Appliquer le filtrage FDR
fdr = ms.FalseDiscoveryRate()
fdr.apply(peptide_ids)

Pour des workflows détaillés : Voir references/identification.md

5. Analyse métabolomique

Effectuez le prétraitement et l'analyse de métabolomique non ciblée.

Workflow typique :

  1. Charger et traiter les données brutes
  2. Détecter les caractéristiques
  3. Aligner les temps de rétention sur les échantillons
  4. Lier les caractéristiques à la carte de consensus
  5. Annoter avec les bases de données de composés

Pour les workflows métabolomiques complets : Voir references/metabolomics.md

Structures de données

PyOpenMS utilise ces objets principaux :

  • MSExperiment : Collection de spectres et chromatogrammes
  • MSSpectrum : Spectre de masse unique avec paires m/z et intensité
  • MSChromatogram : Trace chromatographique
  • Feature : Pic chromatographique détecté avec métriques de qualité
  • FeatureMap : Collection de caractéristiques
  • PeptideIdentification : Résultats de recherche pour les peptides
  • ProteinIdentification : Résultats de recherche pour les protéines

Pour la documentation détaillée : Voir references/data_structures.md

Workflows courants

Démarrage rapide : Charger et explorer les données

import pyopenms as ms

# Charger le fichier mzML
exp = ms.MSExperiment()
ms.MzMLFile().load("sample.mzML", exp)

# Obtenir les statistiques de base
print(f"Number of spectra: {exp.getNrSpectra()}")
print(f"Number of chromatograms: {exp.getNrChromatograms()}")

# Examiner le premier spectre
spec = exp.getSpectrum(0)
print(f"MS level: {spec.getMSLevel()}")
print(f"Retention time: {spec.getRT()}")
mz, intensity = spec.get_peaks()
print(f"Peaks: {len(mz)}")

Gestion des paramètres

La plupart des algorithmes utilisent un système de paramètres :

# Obtenir les paramètres de l'algorithme
algo = ms.GaussFilter()
params = algo.getParameters()

# Voir les paramètres disponibles
for param in params.keys():
    print(f"{param}: {params.getValue(param)}")

# Modifier les paramètres
params.setValue("gaussian_width", 0.2)
algo.setParameters(params)

Exporter vers Pandas

Convertissez les données en DataFrames pandas pour l'analyse :

import pyopenms as ms
import pandas as pd

# Charger la carte de caractéristiques
fm = ms.FeatureMap()
ms.FeatureXMLFile().load("features.featureXML", fm)

# Convertir en DataFrame
df = fm.get_df()
print(df.head())

Intégration avec d'autres outils

PyOpenMS s'intègre avec :

  • Pandas : Exporter les données vers des DataFrames
  • NumPy : Travailler avec les tableaux de pics
  • Scikit-learn : Machine learning sur les données MS
  • Matplotlib/Seaborn : Visualisation
  • R : Via le bridge rpy2

Ressources

Références

  • references/file_io.md - Traitement complet des formats de fichiers
  • references/signal_processing.md - Algorithmes de traitement du signal
  • references/feature_detection.md - Détection et liaison de caractéristiques
  • references/identification.md - Identification de peptides et protéines
  • references/metabolomics.md - Workflows spécifiques à la métabolomique
  • references/data_structures.md - Objets principaux et structures de données

Skills similaires