Loading...
Loading...
Reason about quantitative proteomics experiment design and data analysis strategy. Use when the user asks to choose between LFQ, TMT, and DIA quantification; select an imputation method for missing values; pick a normalization strategy; interpret differential expression results from proteomics data; evaluate ratio compression; or design a proteomics study for biomarker discovery or validation. Triggers include "LFQ vs TMT", "DIA quantification", "proteomics normalization", "missing value imputation", "MNAR", "MinProb", "QRILC", "kNN imputation", "VSN normalization", "median centering", "quantile normalization", "limma proteomics", "ratio compression", "proteomics study design", "label-free quantification", "tandem mass tag", "data-independent acquisition", "DIA-NN", "Spectronaut", "MaxQuant LFQ", "proteomics differential expression", "empirical Bayes proteomics", "proteinGroups.txt", "MSFragger output", "TMT normalization code", "LFQ analysis", "proteomics pipeline R", "MaxQuant output".
npx skill4agent add awslabs/hcls-agent-skills quantitative-proteomicsIs the goal discovery or targeted validation?
├─ Discovery (maximize coverage)
│ ├─ Sample count ≤ 20 → LFQ (label-free quantification)
│ ├─ Sample count 20–100 → TMT (multiplexed, up to 18-plex)
│ └─ Sample count any, need comprehensive coverage → DIA
├─ Targeted validation
│ └─ Use PRM (parallel reaction monitoring) or SRM/MRM
└─ Large clinical cohort (>100 samples)
├─ Budget allows multiplexing → TMT with fractionation
└─ Budget constrained → DIA (single-shot)Assess missingness pattern:
├─ >50% missing across ALL groups → Exclude protein (unreliable)
├─ Missing predominantly in one condition
│ └─ Likely MNAR → Use left-censored methods (MinProb, QRILC)
├─ Missing scattered across conditions
│ └─ Likely MAR → Use kNN, MLE, or BPCA
└─ Mixed pattern
└─ Hybrid: classify each protein's missingness, apply appropriate method| Method | Mechanism | When to Use | Pitfall |
|---|---|---|---|
| MinProb | MNAR | Low-abundance below LOD | Underestimates variance |
| QRILC | MNAR | Left-censored distributions | Assumes normality |
| kNN (k=10) | MAR | Scattered missingness | Fails if too many missing |
| MLE (EM) | MAR | Well-behaved MAR data | Assumes multivariate normality |
| BPCA | MAR | High-dimensional data | Computationally expensive |
What is the expected biological variation?
├─ Most proteins unchanged between conditions (typical)
│ ├─ Default → Median centering (simple, robust)
│ ├─ Strong batch effects → Quantile normalization
│ └─ Variance depends on intensity → VSN
├─ Global shift expected (e.g., drug treatment affecting many proteins)
│ └─ Use spike-in standards, NOT data-driven methods
└─ TMT data
└─ Sample loading normalization → then median centering within plex
└─ DIA data
└─ Median centering on precursor quantities BEFORE protein roll-up| Study Type | Minimum | Recommended |
|---|---|---|
| Discovery | 3 per group | 5–6 per group |
| Biomarker validation | 10 per group | 20+ per group |
| Clinical proteomics | 20 per group | 50+ per group |
| Checkpoint | Acceptable Range |
|---|---|
| Protein IDs per run | >4,000 (LFQ), >6,000 (DIA), >8,000 (TMT) |
| CV of intensities | <20% for technical replicates |
| Missingness rate | <30% (LFQ), <10% (TMT), <15% (DIA) |
| Replicate correlation | Pearson r >0.95 (technical), >0.85 (biological) |
| PCA clustering | Replicates cluster together |
Quantification: Small discovery → LFQ
Large cohort → TMT (with SPS-MS3)
Comprehensive → DIA
Imputation: Low-abundance missing → MinProb / QRILC (MNAR)
Random missing → kNN / MLE (MAR)
Mixed → Hybrid approach
Normalization: Default → Median centering
Batch effects → Quantile
Heteroscedastic → VSN
Global shift → Spike-in standards
DE Testing: Default → limma (empirical Bayes)
Proteomics-aware → DEqMS
Threshold → adj.p < 0.05, |log2FC| > 1.0| Source | File | Key Columns |
|---|---|---|
| MaxQuant | proteinGroups.txt | Protein IDs, Gene names, LFQ intensity *, iBAQ, Reverse, Potential contaminant |
| MSFragger | combined_protein.tsv | Protein, Gene, Intensity, Spectral Count |
| Proteome Discoverer | Proteins.txt | Accession, Description, Abundance * |
| DIA-NN | report.pg_matrix.tsv | Protein.Group, sample columns with quantities |
# TMT: Sample Loading Normalization + Internal Reference Scaling
col_sums <- colSums(mat, na.rm = TRUE)
scaling_factors <- median(col_sums) / col_sums
mat_sln <- sweep(mat, 2, scaling_factors, "*")
# IRS using bridge channel (e.g., pooled reference in 131C)
bridge <- mat_sln[, grep("131C", colnames(mat_sln))]
irs_factors <- apply(bridge, 1, median, na.rm = TRUE)
mat_irs <- mat_sln / irs_factors # row-wise scaling across plexes| Scenario | Problem | Use Instead |
|---|---|---|
| <3 replicates per group | Variance estimation unreliable | |
| Unbalanced design (e.g., 3 vs 8) | Pooled variance biased toward larger group | Mixed models: |
| Repeated measures / longitudinal | Correlated samples violate independence | |
| >2 groups | Pairwise t-tests inflate FDR | |
| Paired samples (e.g., tumor vs adjacent normal) | Must account for patient effect | Include patient as blocking factor in design matrix |
| Parameter | Default | Range | Notes |
|---|---|---|---|
| MinProb quantile (q) | 0.01 | 0.001–0.05 | Lower = more conservative imputation |
| MinProb downshift (σ) | 1.8 | 1.4–2.0 | Standard deviations below mean |
| MinProb width | 0.3 | 0.2–0.5 | Fraction of observed σ for imputed spread |
| kNN k | 10 | 5–15 | Higher k = smoother but slower |
| kNN rowmax | 0.5 | 0.3–0.7 | Max fraction missing per row allowed |
| Missingness filter | 70% in ≥1 group | 50–100% | Stricter = fewer proteins, less noise |
| log2FC threshold | 1.0 | 0.5–2.0 | Adjust to biological context |
| adj.p threshold | 0.05 | 0.01–0.1 | 0.01 for stringent discovery |
| Unique peptides min | 2 | 1–3 | ≥2 required for confident ID |
| Symptom | Likely Cause | Solution |
|---|---|---|
| Very few protein IDs (<2,000) | Poor sample prep or instrument issue | Check TIC, re-run QC standard |
| All samples cluster by batch in PCA | Batch effect dominates biology | Apply ComBat or limma removeBatchEffect |
| No significant DE proteins | Underpowered study or wrong test | Check sample size, use DEqMS, relax FC threshold |
| Too many significant hits (>50%) | Normalization failure or global shift | Check box plots, consider spike-in normalization |
| Imputation creates artificial clusters | MNAR imputation too aggressive | Reduce downshift, try kNN, or filter more stringently |
| TMT fold changes smaller than expected | Ratio compression | Use SPS-MS3 or apply compression correction |
| High CV between replicates (>30%) | Sample prep variability | Review digestion protocol, add QC samples |