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 :
- Charger et traiter les données brutes
- Détecter les caractéristiques
- Aligner les temps de rétention sur les échantillons
- Lier les caractéristiques à la carte de consensus
- 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
- Documentation officielle : https://pyopenms.readthedocs.io
- Documentation OpenMS : https://www.openms.org
- GitHub : https://github.com/OpenMS/OpenMS
Références
references/file_io.md- Traitement complet des formats de fichiersreferences/signal_processing.md- Algorithmes de traitement du signalreferences/feature_detection.md- Détection et liaison de caractéristiquesreferences/identification.md- Identification de peptides et protéinesreferences/metabolomics.md- Workflows spécifiques à la métabolomiquereferences/data_structures.md- Objets principaux et structures de données