Skip to main content

Estimate PEPs from empirical null models using isotonic regression.

Project description

pyIsoPEP: Isotonic PEP Estimator

Overview

pyIsoPEP provides both a Docker image and a Python API with a unified interface for estimating smooth, non‑decreasing Posterior Error Probabilities (PEPs) directly from empirical null models using isotonic regression for target identifications in shotgun proteomics.

Two workflows are available:

workflow scheme starting point
q2pep rank-based a list of target identifications with q-values
d2pep score-based target‑decoy competition (TDC) output: a list of target and decoy identifications with scores

Internally, both workflows use isotonic regression - implemented via either the Pool-Adjacent-Violators Algorithm (PAVA) or I‑Splines. Optional post-processing can be applied to derive q-values from the estimated PEPs.

pyIsoPEP substantially enhances the robustness of PEP estimation and supports post-processing for both DDA and DIA data. The same implementation is also incorporated into Percolator (C++).


Installation

PyPI

pip install pyIsoPEP

Docker image

podman pull ghcr.io/statisticalbiotechnology/pyisotonicpep:main
# or
docker pull ghcr.io/statisticalbiotechnology/pyisotonicpep:main

Input & output

Input: tab‑separated value (TSV) files; column names are configurable.
Output: the original target rows plus up to four extra columns:

column present when description
pyIsoPEP FDR --calc-q-from-fdr estimated False Discovery Rates (FDRs)
pyIsoPEP q-value from FDR --calc-q-from-fdr FDR-derived q-values
pyIsoPEP PEP always estimated PEPs
pyIsoPEP q-value from PEP --calc-q-from-pep PEP-derived q-values

Command-line reference

Top‑level help:

pyisopep -h
# or
podman run --rm -it pyisotonicpep:main -h

Workflow‑specific help:

pyisopep q2pep -h
pyisopep d2pep -h
# or
podman run --rm -it pyisotonicpep:main q2pep -h
podman run --rm -it pyisotonicpep:main d2pep -h

Common flags (valid for both workflows)

flag default description
--cat-file FILE, --target-file FILE required Select concatenated vs. separate input
--decoy-file FILE Required only with separate target & decoy lists
--score-col COL score Score column
--label-col COL label Column distinguishing targets/decoys in a concatenated file
--target-label STR target String marking target rows
--decoy-label STR decoy String marking decoy rows
--regression-algo {PAVA,ispline} ispline Monotone regression backend
--calc-q-from-fdr off Derive q‑values from running FDRs (needs decoys)
--calc-q-from-pep off Derive q‑values after estimating PEPs
-k, --keep-input-order off Write output in original input order
--output FILE|DIR required Write a target‑only list; if DIR, a default name is used
--verbose off Echo all parsed parameters

Additional flags – q2pep only

flag default description
--qcol COL q-value Column containing the input q‑values
--ip off Smooth PAVA step‑function with a monotone spline
--ip-algo {ispline,pchip} ispline Interpolator used with --ip
--center-method {mean,median} mean x‑coordinate of each PAVA block center when interpolating

Examples

PyPI

q2pep

Example 1: a target input file with q‑values

pyisopep q2pep --target-file example/peptide.target.txt --qcol q-value --calc-q-from-pep --output example/results

Example 2: separate target and decoy input files, derive q‑values from FDR first

pyisopep q2pep --target-file example/peptide.target.txt --decoy-file example/peptide.decoy.txt --score-col score --label-col type --target-label 0 --decoy-label 1 --calc-q-from-fdr --calc-q-from-pep --output results/

Example 3: a concatenated target and decoy input file with q‑values

pyisopep q2pep --cat-file example/peptide.cat.txt --qcol q-value --score-col score --label-col type --target-label 0 --decoy-label 1 --calc-q-from-pep --output results/

d2pep

Example 1: separate target and decoy input files

pyisopep d2pep --target-file example/peptide.target.txt --decoy-file example/peptide.decoy.txt --score-col score --label-col type --target-label 0 --decoy-label 1 --calc-q-from-fdr --calc-q-from-pep --output results/

Example 2: a concatenated target and decoy input file

pyisopep d2pep --cat-file example/peptide.cat.txt --qcol q-value --score-col score --label-col type --target-label 0 --decoy-label 1 --calc-q-from-pep --output results/

Docker image

Pull the Docker image from GitHub Container Registry

podman pull ghcr.io/statisticalbiotechnology/pyisotonicpep:main

q2pep

podman run --rm -it -v .:/data pyisotonicpep:main q2pep --target-file /example/peptide.target.txt --decoy-file /example/peptide.decoy.txt --score-col score --label-col type --target-label 0 --decoy-label 1 --calc-q-from-fdr --calc-q-from-pep --output /data

d2pep

podman run --rm -it -v .:/data pyisotonicpep:main d2pep --cat-file /example/peptide.cat.txt --qcol q-value --score-col score --label-col type --target-label 0 --decoy-label 1 --calc-q-from-pep --output /data

Links


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyisopep-0.1.3.tar.gz (13.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyisopep-0.1.3-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file pyisopep-0.1.3.tar.gz.

File metadata

  • Download URL: pyisopep-0.1.3.tar.gz
  • Upload date:
  • Size: 13.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyisopep-0.1.3.tar.gz
Algorithm Hash digest
SHA256 121edd90f93a80c2945c08d178bb44a2f24633f42ce3b4d2e71ecb145e88980d
MD5 9484fd9adfeec1e6b66d76332511eae1
BLAKE2b-256 7b664eb5a816e0767b87aa614dae651af1658f5fc660d20d7ab2149464e999df

See more details on using hashes here.

File details

Details for the file pyisopep-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pyisopep-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyisopep-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4bf77679d585ce03d428e2a2e41bff273010dc5edbac04050e633d3062634c3d
MD5 d9fd0bff7f2a66a0e52ea0d3801d21be
BLAKE2b-256 97182c9a32006791016e093a9b2945f63f065bd3d2483de429f9298f67a916be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page