ProteoPy
|
|
ProteoPy is a Python library that brings quantitative proteomics into the AnnData ecosystem. It provides a unified and extensible framework for protein- and peptide-level analysis — from data import through quality control, preprocessing, and differential abundance testing — while storing all data and metadata in a single portable object. Official documentation: proteopy.readthedocs.io |
Why ProteoPy?
Mass spectrometry-based proteomics lacks a standardized data structure in python comparable to what AnnData provides for single-cell transcriptomics. Existing tools rely on distinct formats and scripting environments, forcing researchers to learn multiple ecosystems and making multi-omics integration cumbersome. ProteoPy bridges this gap by adopting the proven AnnData framework, enabling:
- Familiar workflows for users of scanpy, squidpy, and the broader single-cell python ecosystem
- Reproducible analyses with all processing steps tracked in a single object
- Seamless multi-omics integration via direct compatibility with MuData and MUON
- Direct scanpy integration for dimensionality reduction, clustering and visualization as well as single-cell analysis compatibility.
Key Features
- Flexible data import from DIA-NN, MaxQuant, and generic tabular formats
- Quality control & filtering with completeness metrics, CV analysis, and contaminant removal
- Preprocessing including normalization, batch correction (via scanpy), and missing-value imputation
- Peptide-level analysis with overlapping peptide grouping, peptide-to- protein quantification, and per-protein peptide intensity visualization
- Differential abundance analysis with t-test, Welch's test and multiple testing correction
- Proteoform inference via a reimplementation of the COPF algorithm for detecting functional proteoform groups from peptide-level data
- Publication-ready visualizations for QC, exploratory analysis, and statistical results
Installation
ProteoPy requires Python 3.10 or later. We recommend installing ProteoPy in a dedicated virtual environment:
# Using venv
python -m venv proteopy-env
source proteopy-env/bin/activate # Linux/macOS
# proteopy-env\Scripts\activate # Windows
pip install ipykernel
python -m ipykernel install --user --name=proteopy-env
# Using conda
conda create -n proteopy-env "python>=3.10"
conda activate proteopy-env
pip install ipykernel
python -m ipykernel install --user --name=proteopy-env
# Using uv
uv venv proteopy-env
source proteopy-env/bin/activate
uv pip install ipykernel
python -m ipykernel install --user --name=proteopy-env
Then install ProteoPy:
pip install proteopy
For notebook-centric workflows, the [usage] extra installs ipykernel,
jupyterlab, and scanpy (for extended analysis functionality such as batch
control, PCA, UMAP and more):
pip install proteopy[usage]
To install the development version from GitHub:
pip install git+https://github.com/UKHD-NP/proteopy.git
Documentation
Full documentation, including API reference and tutorials, is available at proteopy.readthedocs.io.
Tutorials
- Protein-level analysis — Complete workflow from data import to differential abundance analysis (notebook)
- Proteoform inference — Detecting functional proteoform groups with COPF (notebook)
Quick Start
import proteopy as pr
import scanpy as sc
# Load example dataset
adata = pr.datasets.karayel_2020()
# Quality control: filter by completeness
pr.pp.filter_var_completeness(adata, min_fraction=0.8, zero_to_na=True)
# Preprocessing
pr.pp.normalize_median(adata, log_space=True)
pr.pp.impute_downshift(adata, downshift=1.8, width=0.3)
# Differential abundance analysis
pr.tl.differential_abundance(adata, method="ttest_two_sample", group_by="cell_type")
# Visualize results
pr.pl.volcano_plot(adata, varm_slot="ttest_two_sample;cell_type;Ortho_vs_rest")
# Seamless scanpy integration for dimensionality reduction
sc.tl.pca(adata)
sc.pl.pca(adata, color="cell_type")
Support
- Questions & discussions: GitHub Discussions
- Bug reports & feature requests: GitHub Issues
- Maintainer: @idf-io (Ian Dirk Fichtner)
- See HISTORY.md for the changelog.
Citing ProteoPy
If you use ProteoPy in your research, please cite:
Fichtner ID, Sahm F, Gerstung M, Bludau I. ProteoPy: an AnnData-based framework for integrated proteomics analysis. UNPUBLISHED (2025).
@article{fichtner2025proteopy,
title={ProteoPy: an AnnData-based framework for integrated proteomics analysis},
author={Fichtner, Ian Dirk and Sahm, Felix and Gerstung, Moritz and Bludau, Isabell},
journal={UNPUBLISHED},
year={2025}
}
If you use the COPF proteoform inference functionality, please also cite:
Bludau I, et al. Systematic detection of functional proteoform groups from bottom-up proteomic datasets. Nat. Commun. 12, 3810 (2021). doi:10.1038/s41467-021-24030-x
License
ProteoPy was developed by the Bludau Lab at the Neuropathology Department Heidelberg and is freely available under the Apache 2.0 license. External Python dependencies (see pyproject.toml file) have their own licenses, which can be consulted on their respective websites.
Metadata
Release files for proteopy 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| proteopy-0.1.1.tar.gz | 15.0 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| proteopy-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.2 MB
Release files / proteopy-0.1.1.tar.gz
| Download URL | proteopy-0.1.1.tar.gz |
|---|---|
| Size | 15.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6bf7b0a9904c520d9520d4c74b3a626a9afb2fd9996e6945dcfa680446394ac0
|
|
BLAKE2b-256 checksum How to use checksums |
226a8c4f1ff76cbff28b596287ce8e64d9f47d489638486ac8574249c59c706c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / proteopy-0.1.1-py3-none-any.whl
| Download URL | proteopy-0.1.1-py3-none-any.whl |
|---|---|
| Size | 175.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e9c2c2736857006093212385e95ef910284bc76ab09313b1a7bdd6bfc4b72c3
|
|
BLAKE2b-256 checksum How to use checksums |
7edbb297c7ac29677df2fef3b840fdd3c6c5873a612f357c7e19daf07592eb01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Security for proteopy 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.