STAN

Standardized proteomic Throughput ANalyzer

Compare your QC HeLa against reference ranges from labs running the same frozen search.

UC Davis Proteomics Core
community site v1.9.0
Today essentially every run here comes from one facility, the UC Davis Proteomics Core (timsTOF HT, Exploris 480, Fusion Lumos). The ranges below are that facility's longitudinal ranges until more labs join.
--
QC runs in the benchmark
--
Contributing labs
--
Instrument models
--
Latest run
Add your lab →
Three steps. Your runs appear after the nightly rebuild.

SPDsamples per day. For Evosep it names the method you ran; for nanoLC it is 1440 ÷ (gradient minutes × 1.25).
Middle half (IQR)the range holding the middle 50% of runs, from the 25th to the 75th percentile.
Laba contributing facility. Lab names the site's facility records tie to one facility count once; runs under the default name Anonymous Lab that no record covers never count as a second lab.
IPSa 0–100 depth score against a fixed calibration set for the run's instrument and SPD; 60 is the median calibration run. Not shown on this page until a scoring fix ships (see Methods).
HeLa · DIA · 50 ng
Mode
Loading runs…

Where does my run sit?

Enter one QC run and how it was searched. A count from the community search (DIA-NN 2.3.x against the frozen community library at 1% FDR; for DDA, Sage 0.14.x against the frozen FASTA) is placed in its cohort: the same QC standard, instrument model, acquisition mode, gradient and amount as the reference ranges below. A count from any other search is not converted. You get the reason, and what would make it comparable.

Acquisition
The run

These start from the filter bar. Changing them here does not filter the page.

Runs acquired with FAIMS are left out of these cohorts: there is no FAIMS field here, so your run is compared with runs acquired without it.

Converted to SPD = 1440 ÷ (minutes × 1.25) and matched to the nearest nanoLC cohort within 15%.

Runs entirely in your browser: nothing you type or drop is sent anywhere or stored, and nothing goes in the page address.

Loading community data...

Reference ranges

Longitudinal performance ranges from the runs submitted so far, grouped by instrument model. Each card is one cohort: the same model, acquisition mode, LC and gradient, and load. Evosep runs are named by their Evosep method; nanoLC runs by the gradient their samples per day imply (1440 ÷ (1.25 × SPD)) and then the run length recorded with them. The large number is the cohort's median precursors (DIA) or PSMs (DDA) at 1% FDR, and the bar shows the middle half of its runs inside the 10th–90th percentile, on one scale per instrument. Every card says how many runs and labs it holds; a card built from one lab's runs is marked single-lab reference. Below 10 runs a card lists its values instead of a range. A cohort is not ranked, and is folded under its instrument with the reason, when it has fewer than 5 runs, records no SPD, records no LC at an SPD that is also an Evosep method, or records Evosep at an SPD that is not an Evosep method. Proteins are context only. The filter bar above chooses what is shown.

Showing

Loading community data...

Join the benchmark

Any lab running STAN can add its QC HeLa runs. Your lab appears under a pseudonym you claim, and your runs join the ranges above.

Three steps

  1. Install STAN and inject Pierce HeLa as your QC standard.Thermo 88328 (20 µg) or 88329 (5 × 20 µg), 50 ng per injection. Install guide
  2. Name your lab, then claim the name.Set display_name in community.yml (~/.stan/community.yml on macOS and Linux, %USERPROFILE%\STAN\community.yml on Windows), or run stan setup; stan init leaves the name empty, and stan community-claim refuses to run without one. Then run stan community-claim (STAN 1.2 or later) and enter the 6-digit code it emails you (from noreply@stan-proteomics.org; check the spam folder). Do this first: an unclaimed name can be taken by anyone.
  3. Turn sharing on and send.Set community_submit: true in the same community.yml, then run stan submit-all to send the runs you already have (or press Sync on the dashboard's Community tab, which does both). Schedule stan submit-all to keep new runs flowing.

Your runs appear after the nightly rebuild at 04:00 UTC. STAN searches them with the pinned engines and frozen parameters described under Methods. Comparisons with the runs already here are close but not yet exact: nothing verifies which library a run was searched against, and UC Davis's timsTOF HT and Exploris 480 cohorts used subset libraries until a planned re-search (see Methods).

What leaves your lab, and what is published

Every published field, by API name
Loads with the benchmark data.

From /api/leaderboard, plus the two TIC fields from /api/tic-overlay.

How the numbers are made

Runs on this page are searched with pinned engine versions and frozen parameters, against one frozen FASTA and, for DIA, a per-vendor HeLa library. This is what that means in practice, and where it does not hold yet.

Search: one frozen parameter set per track (SEARCH_PARAMS_VERSION v1.0.0)

DIA · DIA-NN 2.3.x

Search
Library search against the vendor's empirical HeLa library (below) and the frozen FASTA
Digest
Trypsin (after K or R), 1 missed cleavage, peptides 7–30 residues
Charge
Precursor charge 2–4
FDR
Run-level precursor q-value ≤ 0.01
Version
Pinned 2.3.0, the version the libraries were built with. STAN submits only DIA-NN 2.3.x runs, and the relay refuses a submission that states any other version; one that states no version is not checked. 2.3.2 gave 1.007× the 2.3.0 count on the same timsTOF raws.

DDA · Sage 0.14.x

Search
Database search against the frozen FASTA (no library)
Digest
Trypsin (after K or R, not before P), 1 missed cleavage, peptides 7–30 residues
Mods
Carbamidomethyl C fixed; oxidised M variable (up to 2)
Tolerance
Precursor ±10 ppm, fragment ±20 ppm
FDR
PSM-level only: q ≤ 0.01. No separate peptide or protein FDR
Version
Pinned 0.14.7 (its binary reports 0.14.6)

What each count means

DIA · DIA-NN

Precursors
Primary. Unique Precursor.Id (modified sequence + charge) at run-level Q.Value ≤ 0.01
Peptides
Distinct Stripped.Sequence among those precursors
Proteins
Distinct Protein.Group with PG.Q.Value ≤ 0.01 among those precursors

DDA · Sage

PSMs
Primary. Peptide-spectrum matches at q ≤ 0.01
Peptides
Distinct peptide sequences, modifications included, among those PSMs
Proteins
Distinct protein groups among those PSMs

Primary: precursors (DIA) and PSMs (DDA), the purest instrument signal. Secondary: peptides. Proteins: context only; not used for leaderboards; 20% of IPS. Health: the ID-free charts below the Explorer (MS1 mass accuracy, MS1 signal, dynamic range and points across peak).

Libraries and FASTA

One frozen FASTA and empirical HeLa libraries, one per vendor (timsTOF ~54k, Orbitrap ~170k precursors), built from real HeLa DIA runs. Download them from the dataset.

timsTOF
~54,000 precursors · hela_timstof_202604.parquet
md5 ad72bfb2730644c69147ba8f34bfe982
Orbitrap
~170,000 precursors · hela_orbitrap_202604.parquet
md5 ac84e40f5b2f23e1286f28a7baeccec2
FASTA
UniProt human + contaminants · human_hela_202604.fasta
md5 8de1d9bd0a052b175f88f66f82500d92

The checksums on a row do not prove what was searched. For every DIA-NN 2.3.x run, STAN stamps the frozen checksums above onto the submission; it does not hash the FASTA and library the search actually used, and a row is marked assets-verified whenever a checksum is present. Nothing yet checks which library a lab searched: an install that has built its own instrument_library.parquet is searched against that automatically.

Not yet true for UC Davis's timsTOF HT and Exploris 480 cohorts. Those runs were searched against subsets of these libraries built from the lab's own runs (about 51,000 and 53,000 precursors), which no outside lab has, although their rows carry the full library's checksum. On the same timsTOF raws the full library gives about 1.034× the subset's count. A re-search of those cohorts against the full frozen libraries is planned (decision 11). The Fusion Lumos cohorts already use the full Orbitrap library.

Counts compare within a vendor, not across: timsTOF and Orbitrap runs search different libraries, and above 90% library coverage the library rather than the instrument caps the count. Coverage divides by the full library's size, so for runs searched against a subset it reads slightly low.

IPS: Instrument Performance Score (0-100)

IPS places a run's identification depth against a fixed calibration set for its instrument and SPD: 60 is the median calibration run and 90 its 90th percentile. It weights 50% precursors (PSMs for DDA), 30% peptides and 20% proteins. The calibration set is 359 UC Davis HeLa QC runs from April 2026.

IPS is not shown on this page yet. The stored community scores come from a reference lookup that scored Exploris and timsTOF runs against a pooled all-instrument reference instead of their own, so Exploris scores read too low and timsTOF scores too high. Even keyed correctly, typical runs on both sit near 50–54 rather than 60, so the April 2026 references also need recalibrating. Scores return here once they are recomputed and recalibrated.

The HeLa Standard

All STAN benchmarking uses the Pierce HeLa Protein Digest Standard (Thermo Scientific, cat# 88328 / 88329): a tryptic digest of the HeLa S3 cell line with >15,000 proteins and <10% missed cleavages. One commercial standard means differences reflect the instrument and LC, not sample preparation.

Buy 20 μg (88328) · Buy 5 x 20 μg (88329)

Points Across Peak

The number of MS2 scans sampling each precursor's elution profile limits how accurately it can be quantified. STAN's guidelines: 12+ points reliable quantitation; 6–12 points acceptable, depending on peak shape; <6 points quantitation error grows quickly. At high SPD with short columns, cycle time can exceed peak width. These are guidelines: actual error depends on peak symmetry and integration method.

Background: Matthews & Hayes, Anal. Chem. 1976, 48, 1375–1382, on how few sampling points bias GC-MS ratio measurements (doi:10.1021/ac50003a028).

Instrument Health Explorer

Each point is one QC run. Every chart here follows the filter bar at the top of the page and says in its badge what it shows. A chart that deliberately leaves a filter out says so: Depth by Amount Loaded shows every amount, Depth by Throughput and Throughput vs. Quantitation Quality every gradient, and Column Comparison every column. Under "Both", DIA and DDA keep their own table, violin or facet, with one exception: Depth by Amount Loaded puts precursors and PSMs on one axis, and its badge warns about it. The TIC overlay follows the QC standard and DIA / DDA (never both at once) and keeps its own SPD and LC menus. Counts compare fairly within a vendor: timsTOF and Orbitrap runs search different libraries (see Methods).

Best Configurations

Top instrument × gradient × amount-loaded combinations. Each row is one ranked cohort (5 or more runs, with its LC known); DIA and DDA are ranked in separate tables, by precursors and by PSMs. Click any column header to re-rank. The table starts at 50 ng so a high-load cohort is not ranked against 50 ng ones. A "best" badge appears only on a row with runs from two or more labs.
The same amount as the filter bar.

Ranked within a vendor only: timsTOF runs search a ~54,000-precursor library and Orbitrap runs a ~170,000-precursor library, so a timsTOF row above an Orbitrap row is not a verdict on the instruments.

Depth by Amount Loaded

How does sample load affect identification depth? Each violin is one amount bucket, colored by instrument model. This chart always shows every amount; the other filters come from the bar above.

Identification Depth by Platform

How many precursors (DIA) or PSMs (DDA) does each platform typically identify? One violin per ranked cohort: instrument model, LC and gradient, and load, so Pro, Pro 2 and HT stay apart, a 9 SPD run is not pooled with a 67 SPD run, and 5 ng K562 is not pooled with 200 ng HeLa. DIA and DDA never share a violin.
Shape: ○ 50 ng · ◇ <20 ng · □ >100 ng

Compare violins of one vendor only: timsTOF and Orbitrap runs search different libraries (~54,000 vs ~170,000 precursors).

Depth by Throughput (which SPD gives me the best data?)

Precursors/PSMs vs. samples-per-day, faceted by instrument model (HT, Pro and Pro 2 apart). Each box is one SPD bucket, and every gradient is shown. Filter by amount loaded so you compare apples to apples — the optimal SPD may differ by loading.
Shape: ○ 50 ng · ◇ <20 ng · □ >100 ng

Compare facets of one vendor only: timsTOF and Orbitrap runs search different libraries (~54,000 vs ~170,000 precursors), so a timsTOF box above an Orbitrap box is not a verdict on the instruments.

Column Comparison (same instrument, SPD, and amount)

How does your LC column compare to others under identical conditions? Each group is one cohort (the same instrument model, acquisition mode, LC and gradient, and amount), so only the column differs. Every column is shown whatever the bar's column filter. Runs that record no column are left out. Each bar gives its runs, labs and date span.

Throughput vs. Quantitation Quality (Matthews & Hayes 1976)

SPD vs. data points across peak, for every gradient. STAN's guideline: below 6 points quantitation error grows quickly, and 12 or more is recommended (after Matthews & Hayes 1976). Shape = LC column (open circle: not recorded). Color = instrument model.

Community TIC Overlay by SPD

The MS1 total-ion chromatogram from the raw file, grouped by throughput (SPD) and LC system. The QC standard and acquisition mode follow the filter bar, and the menus here pick the SPD and the LC; every instrument, gradient, amount and column is shown. Each run is scaled to its own peak, so the chart compares shape, not signal. For Evosep users the gradient is standardized — shape differences reveal instrument-specific issues. Thick dashed line = the median at each minute, with the middle half (IQR) and the 10–90% band, from 5 or more runs; below 5, each run is drawn on its own. A few older submissions carry an identified-ion trace instead, which starts at the first identification; those are kept out of the median. DIA and DDA are never averaged together.

LC / Instrument Health (ID-free metrics)

These are the metrics the 2024 proteomics QC literature (NIST MSQC, QCloud2, CPTAC, PTXQC) considers the real LC-health signals: they catch failures before identifications collapse, and they don't depend on how many peptides you identified. One colour per instrument model; each dot is a run and the line is that model's monthly median. Click a legend entry to hide a model. The charts follow the filter bar; mass accuracy, MS1 signal and dynamic range come from DIA-NN, so DDA runs do not carry them.

Mass Accuracy Drift (MS1)

Median corrected MS1 mass error per run. Tracks Orbitrap / qTOF calibration stability. A rising trend signals lock-mass failure or thermal drift before IDs drop.

MS1 Signal (TIC proxy)

Total MS1 ion current per run — a proxy for ion source health. Drops of >2× signal dirty emitter, low flow, or sample prep issue before IDs fall. timsTOF reads about 1.5 log units lower because of its detector, not its health: compare an instrument with itself, never across detector families.

Dynamic Range

log10(p99 / p01) of precursor intensity. Compresses when the ion source is dirty or the LC is losing pressure. Like MS1 signal it depends on the detector, so compare an instrument with itself, never across detector families.

Points Across Peak

Datapoints per chromatographic peak (after Matthews & Hayes 1976). A rising trend at constant SPD signals column degradation (peaks broadening): pick a gradient in the filter bar to hold SPD constant. Validated against Spectronaut (median 9 on timsTOF 100 SPD).

Lab trend vs. reference

Your lab against the community, one cohort at a time: "Is my instrument drifting, and where do I sit against other labs running the same thing?" The gold band is the lab's own baseline: the median ± 3 robust SD (1.4826 × MAD) of its first 30 runs in the cohort. It is drawn from 20 runs, provisional until there are 30, and fixed from then on, so a problem shows up even when no other lab shares the cohort, and a bad stretch is flagged instead of widening the band. The white line is the median of the last 15 runs, so slow drift is visible too. Other labs in the same cohort, never the lab itself, appear as grey 10th–90th and 25th–75th percentile bands once they have 5 runs in the window. Labs and cohorts are listed from the filter bar's view: labs with 5 or more runs in a ranked cohort.

Window

Your lab's trend vs. the community reference

Dots = the lab's runs, coloured by instrument model; ringed dots fall outside its baseline band. Gold line and band = the baseline, median ± 3 robust SD (1.4826 × MAD), fixed at 30 runs. White line = median of the last 15 runs. Grey bands = other labs in this cohort.

Evosep PEG Watch

Polyethylene glycol (PEG) from tips, solvents and plastics shows up in MS1 as a ladder of ions 44.026 Da apart, and it can cost identifications. STAN measures it in QC runs. Evosep labs that opt in share their per-run PEG here, so you can see whether your level is normal and whether a fix worked. PEG needs no database search, so this board is separate from the benchmark above and the filters at the top of the page do not apply to it.

Community PEG leaderboard

Evosep labs ranked by median PEG share of MS1 across their QC runs. Lower is cleaner. Labs are compared only within one instrument family and Evosep method.

Loading the PEG leaderboard...
A lab needs 5 QC runs in the window to be ranked.

Community PEG, week by week

Every shared QC run in the selected cohort, pooled across labs into 7-day buckets over the last year. Gold line = median; shaded band = the middle half of runs (25th to 75th percentile). Gaps are weeks with no runs.
Loading...

Evosep vs other LC

Does the LC front end change how much PEG reaches the MS? Shared QC runs from Evosep and non-Evosep labs on the same instrument family over the last 90 days, all gradients pooled. Shown for comparison, never ranked.

Loading...

Compare LC systems within one instrument family only. PEG share depends on the detector (STAN counts MS1 peaks above an absolute 104 intensity floor), so comparisons across instrument families, such as an Evosep timsTOF against a nanoLC Orbitrap, are not like-for-like.

Put your lab on the board

Any lab running STAN 1.2 or later can join. PEG is read straight from raw MS1, so it needs no community search.

  1. Claim your lab name. Run stan community-claim to prove it with an emailed code. Do this first: an unclaimed name can be claimed by anyone, who then takes over its place on the board. Unclaimed names show as unverified.
  2. Opt in. Add peg_share: true to ~/.stan/community.yml. Sharing stays off until you do.
  3. Sync. Run stan peg-sync. It sends every QC run that has a PEG measurement, and the relay keeps only what changed, so it is safe to run again at any time.

Lab names are pseudonyms. Shared per QC run: date, instrument model, LC system, Evosep method (SPD), acquisition mode, sample type and amount, and the PEG share, score, ion count and class. File and sample names, raw data, spectra and serial numbers never leave your lab.

Found PEG? Isolate the source in one night with STAN's Evosep PEG diagnostic.

How the ranking works

PEG share of MS1. STAN reads 80 MS1 scans spread across the gradient and matches peaks within 5 ppm to the PEG ladder: PEG1–20 as [M+H]+, [M+NH4]+ and [M+Na]+, spaced 44.026 Da (C2H4O). The share is the matched intensity over all MS1 peaks above 104 counts. Unlike the 0–100 PEG score, it keeps rising with contamination, so it still separates labs that all score 100.

Cohorts. Labs are ranked only against the same instrument family and Evosep method, because detector response and gradient length change the number. Only Evosep runs are ranked.

Rank. Median over the window's QC runs, lowest first, with at least 5 runs; ties go to more clean runs, then more runs. Clean means a PEG score below 20. Runs with no PEG measurement are left out; they never count as clean.

Badges. Cleanest is rank 1 once two or more labs are ranked. Most improved is the biggest fall in median against the previous window, if it fell by 15% or more and by at least 0.5 percentage points, also once two or more labs are ranked. Change stays blank when the previous window had fewer than 5 runs or a median below 0.1%, where a percent change is noise.

Community Submissions

All submissions are anonymous by default. Click column headers to sort. Use the export button to download as CSV. The table follows the filter bar; the DIA / DDA / All tab here is the bar's mode, so it sets the whole page. Each run's percentile is within its cohort, named in the Cohort column; a cohort that is not ranked shows a dash, with the reason. An amount marked assumed is the lab's default, not recorded for the run. Runs held back from the ranges and rankings (an amount unconfirmed or implausible) are listed below the table.

Loading submissions...