Targeted Evaluation & Analysis Pipeline On Tandem mass spectrometry
TEAPOT is an analysis pipeline for large-scale MS-based targeted proteomics, on both PRM and DIA data. It scales to cohorts of thousands of runs, processed in a single automated pass, reproducibly, on a local machine or an HPC cluster.
Every peptide is assigned a
- No manual work. Targeted PRM is typically analyzed manually in Skyline. TEAPOT runs PRM and DIA analyses end to end, in parallel, at cohort scale.
- From instrument files to results. Which peptides were detected, at what confidence, and how much of each. Nothing for you to prepare in advance or hand in between.
-
Bring whatever you have. An existing library (
.elib,.blibor.dlib), Gas-Phase Fractionation (GPF) runs, or just a FASTA. TEAPOT puts it into the form the search needs. -
Confidence on every peptide. A
$q$ value and a PEP for every identification. - Abundances corrected for interferences. Peptides are quantified using evidence from all runs in the cohort, with interferences separated from their real signal.
| you have | you get |
|---|---|
| PRM runs, and a reference list of the peptides you care about | which of them were detected at a 1 % |
| PRM runs, plus SIL internal standards of known amount | the same, and an absolute amount in pmol |
| DIA runs | the same, across the whole assay library instead of a reference list |
Two terms run through the input templates and the rest of this page.
Reference peptides are the ones you want quantities for: in a label-free run the peptides the mass spectrometer was scheduled to acquire, in a SIL run the heavy internal standards and their endogenous light counterparts. Background peptides are the other peptides present in the sample that you do not need quantities for.
Context and Context-MS need both to estimate confidence, so your library has to
cover both. Most libraries do, but a vendor .blib of SIL internal standards is
reference-only. With such a library you need to supply a background if you search
it with EncyclopeDIA on PRM data, or with OpenSWATH on PRM data using Context-MS.
- Nextflow 23.04 or newer, and Java 17 or newer
- Apptainer
| your data | recommended workflow | alternative |
|---|---|---|
| Label-free targeted PRM | encyclopedia_prm_label_free |
openswath_prm_label_free |
| Targeted PRM with SIL internal standards, absolute quant | encyclopedia_dia |
encyclopedia_prm_sil_standards, openswath_prm_sil_standards |
| Wide-window DIA | encyclopedia_dia |
openswath_dia |
Then set up a run from it: copy the workflow's templates into your own working directory and fill in every placeholder:
- its
.csvsamplesheet and.ymlof settings, fromtemplates/ - a launcher,
run_local.shfor one local machine orrun_slurm.shfor an HPC cluster
On an HPC cluster, two more edits: your SLURM account in
conf/slurm.config, and your cluster's Java and Nextflow
module names in run_slurm.sh.
-
A samplesheet CSV. One row per run, with the header
sample_id,file,mode,reference_list,engine:modeisPRMorDIAengineisencyclopediaoropenswathreference_listis your list of reference peptides, and can be left empty when the pipeline can derive it (see below)
-
Run files, named in the samplesheet's
filecolumn. Either an open format (.mzML,.mzXML) or a vendor format the pipeline converts for you:.raw(Thermo),.wiff(SCIEX),.d(Bruker/Agilent),.lcd(Shimadzu). A.wiffis not a single file. Name only the.wiffand keep its paired.wiff.scanin the same directory, and the pipeline picks it up automatically. -
An assay library, as any one of:
- a library you already have:
.elib,.blibor.dlib, or with OpenSWATH a.pqp, transition.tsvor TraML - Gas-Phase Fractionation (GPF) runs, listed in a CSV as in
templates/library_sheet.csv, and the pipeline builds a chromatogram library (.elib) from them - nothing, and the pipeline predicts one from your FASTA
- a library you already have:
-
Sequences in FASTA. For label-free PRM and DIA runs, the proteins potentially present in your samples. For SIL runs, the standard construct sequences supplied with the vendor kit.
-
A background, if you need one (see Reference and background peptides). Either a library (
.elib,.blibor.dlib) or a FASTA of background proteins. -
A reference list, for PRM runs. Either name it in the samplesheet's
reference_listcolumn, or supply a vendor.bliband the pipeline derives one from it. This is typically the list you gave the mass spectrometer when setting up the acquisition. DIA runs do not need one. -
Known amounts, only for absolute quantification. The pmol of each SIL internal standard, usually supplied with the vendor kit and read as-is by the pipeline.
INPUTS.md has the layout and requirements of every input.
# 1. get the pipeline
git clone https://github.com/zyqqqq0122/teapot.git
TEAPOT_DIR=$PWD/teapot
# 2. work from a directory of your own, not the pipeline checkout
mkdir -p ~/my_analysis && cd ~/my_analysis
# 3. copy the templates that matches your data, from the table above
cp $TEAPOT_DIR/templates/encyclopedia_prm_label_free.yml my_run.yml
cp $TEAPOT_DIR/templates/encyclopedia_prm_label_free.csv my_samplesheet.csv
cp $TEAPOT_DIR/templates/run_slurm.sh . # or cp $TEAPOT_DIR/templates/run_local.sh . on a local machine
# 4. edit the three files as described above
# 5. run it
sbatch run_slurm.sh # or ./run_local.sh on a local machineresults/
quant/<route>/
quant.reference.tsv one row per reference peptide per run: found or not, and how much
peptide.pairs.confident.tsv light/heavy pairs and absolute pmol, SIL runs only
... the full table, the confident subset, and a per-run summary
pipeline_info/ logs, timings, software versions, the Nextflow report
... intermediates from every step
<route> names the engine and acquisition mode. For example, enc_prm is
EncyclopeDIA on PRM runs.
OUTPUTS.md describes every file and column.
- INPUTS.md: every input file, its layout and accepted columns
- OUTPUTS.md: every file in
results/, and every column in it - PARAMETERS.md: every parameter, its default and when to change it
- ARCHITECTURE.md: how the pipeline is built, for developers
MIT
- EncyclopeDIA. Searle BC, et al. Chromatogram libraries improve peptide detection and quantification by data independent acquisition mass spectrometry. Nat Commun 9, 5128 (2018). doi:10.1038/s41467-018-07454-w
- OpenSWATH. Röst HL, et al. OpenSWATH enables automated, targeted analysis of data-independent acquisition MS data. Nat Biotechnol 32, 219–223 (2014). doi:10.1038/nbt.2841
- PyProphet. Rosenberger G, et al. Statistical control of peptide and protein error rates in large-scale targeted data-independent acquisition analyses. Nat Methods 14, 921–927 (2017). doi:10.1038/nmeth.4398
- mProphet. Reiter L, et al. mProphet: automated data processing and statistical validation for large-scale SRM experiments. Nat Methods 8, 430–435 (2011). doi:10.1038/nmeth.1584
- Percolator. Käll L, et al. Semi-supervised learning for peptide identification from shotgun proteomics datasets. Nat Methods 4, 923–925 (2007). doi:10.1038/nmeth1113
- TRIC. Röst HL, et al. TRIC: an automated alignment strategy for reproducible protein quantification in targeted proteomics. Nat Methods 13, 777–783 (2016). doi:10.1038/nmeth.3954
- Prosit. Gessulat S, et al. Prosit: proteome-wide prediction of peptide tandem mass spectra by deep learning. Nat Methods 16, 509–518 (2019). doi:10.1038/s41592-019-0426-7
- Koina. Lautenbacher L, et al. Koina: Democratizing machine learning for proteomics research. Nat Commun 16, 9933 (2025). doi:10.1038/s41467-025-64870-5
- Nextflow. Di Tommaso P, et al. Nextflow enables reproducible computational workflows. Nat Biotechnol 35, 316–319 (2017). doi:10.1038/nbt.3820
- ProteoWizard. Chambers MC, et al. A cross-platform toolkit for mass spectrometry and proteomics. Nat Biotechnol 30, 918–920 (2012). doi:10.1038/nbt.2377
