PyOpenMS
Visão Geral
PyOpenMS fornece bindings Python para a biblioteca OpenMS de espectrometria de massa computacional, permitindo análise de dados de proteômica e metabolômica. Use para manipular formatos de arquivo de espectrometria de massa, processar dados espectrais, detectar features, identificar peptídeos/proteínas e realizar análise quantitativa.
Instalação
Instale usando uv:
uv uv pip install pyopenms
Verifique a instalação:
import pyopenms
print(pyopenms.__version__)
Capacidades Principais
PyOpenMS organiza funcionalidades nestos domínios:
1. I/O de Arquivos e Formatos de Dados
Manipule formatos de arquivo de espectrometria de massa e converta entre representações.
Formatos suportados: mzML, mzXML, TraML, mzTab, FASTA, pepXML, protXML, mzIdentML, featureXML, consensusXML, idXML
Leitura básica de arquivo:
import pyopenms as ms
# Ler arquivo mzML
exp = ms.MSExperiment()
ms.MzMLFile().load("data.mzML", exp)
# Acessar espectros
for spectrum in exp:
mz, intensity = spectrum.get_peaks()
print(f"Spectrum: {len(mz)} peaks")
Para manipulação detalhada de arquivos: Veja references/file_io.md
2. Processamento de Sinais
Processe dados espectrais brutos com suavização, filtragem, centroiding e normalização.
Processamento básico de espectro:
# Suavizar espectro com filtro Gaussiano
gaussian = ms.GaussFilter()
params = gaussian.getParameters()
params.setValue("gaussian_width", 0.1)
gaussian.setParameters(params)
gaussian.filterExperiment(exp)
Para detalhes de algoritmos: Veja references/signal_processing.md
3. Detecção de Features
Detecte e vincule features entre espectros e amostras para análise quantitativa.
# Detectar features
ff = ms.FeatureFinder()
ff.run("centroided", exp, features, params, ms.FeatureMap())
Para workflows completos: Veja references/feature_detection.md
4. Identificação de Peptídeos e Proteínas
Integre com search engines e processe resultados de identificação.
Engines suportados: Comet, Mascot, MSGFPlus, XTandem, OMSSA, Myrimatch
Workflow básico de identificação:
# Carregar dados de identificação
protein_ids = []
peptide_ids = []
ms.IdXMLFile().load("identifications.idXML", protein_ids, peptide_ids)
# Aplicar filtragem por FDR
fdr = ms.FalseDiscoveryRate()
fdr.apply(peptide_ids)
Para workflows detalhados: Veja references/identification.md
5. Análise de Metabolômica
Realize pré-processamento e análise de metabolômica não-direcionada.
Workflow típico:
- Carregar e processar dados brutos
- Detectar features
- Alinhar tempos de retenção entre amostras
- Vincular features ao mapa de consenso
- Anotar com bancos de dados de compostos
Para workflows completos de metabolômica: Veja references/metabolomics.md
Estruturas de Dados
PyOpenMS usa estes objetos principais:
- MSExperiment: Coleção de espectros e cromatogramas
- MSSpectrum: Espectro de massa único com pares m/z e intensidade
- MSChromatogram: Traço cromatográfico
- Feature: Pico cromatográfico detectado com métricas de qualidade
- FeatureMap: Coleção de features
- PeptideIdentification: Resultados de busca para peptídeos
- ProteinIdentification: Resultados de busca para proteínas
Para documentação detalhada: Veja references/data_structures.md
Workflows Comuns
Início Rápido: Carregar e Explorar Dados
import pyopenms as ms
# Carregar arquivo mzML
exp = ms.MSExperiment()
ms.MzMLFile().load("sample.mzML", exp)
# Obter estatísticas básicas
print(f"Number of spectra: {exp.getNrSpectra()}")
print(f"Number of chromatograms: {exp.getNrChromatograms()}")
# Examinar primeiro espectro
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)}")
Gerenciamento de Parâmetros
A maioria dos algoritmos usa um sistema de parâmetros:
# Obter parâmetros do algoritmo
algo = ms.GaussFilter()
params = algo.getParameters()
# Visualizar parâmetros disponíveis
for param in params.keys():
print(f"{param}: {params.getValue(param)}")
# Modificar parâmetros
params.setValue("gaussian_width", 0.2)
algo.setParameters(params)
Exportar para Pandas
Converta dados em DataFrames pandas para análise:
import pyopenms as ms
import pandas as pd
# Carregar mapa de features
fm = ms.FeatureMap()
ms.FeatureXMLFile().load("features.featureXML", fm)
# Converter em DataFrame
df = fm.get_df()
print(df.head())
Integração com Outras Ferramentas
PyOpenMS integra-se com:
- Pandas: Exportar dados para DataFrames
- NumPy: Trabalhar com arrays de picos
- Scikit-learn: Machine learning em dados de MS
- Matplotlib/Seaborn: Visualização
- R: Via bridge rpy2
Recursos
- Documentação oficial: https://pyopenms.readthedocs.io
- Documentação OpenMS: https://www.openms.org
- GitHub: https://github.com/OpenMS/OpenMS
Referências
references/file_io.md- Manipulação abrangente de formatos de arquivoreferences/signal_processing.md- Algoritmos de processamento de sinaisreferences/feature_detection.md- Detecção e vinculação de featuresreferences/identification.md- Identificação de peptídeos e proteínasreferences/metabolomics.md- Workflows específicos de metabolômicareferences/data_structures.md- Objetos principais e estruturas de dados