Package: diagFDR 0.2.1

Quentin Giai Gianetto

diagFDR: Assessing False Discovery Rate Claims in Proteomics

Provides scope, calibration and stability diagnostics to assess false discovery rate (FDR) claims in peptide and protein identification workflows based on target-decoy competition and related confidence measures. Includes the recomputed decoy ratio of the reported list, accepted decoy counts and local decoy support, the FDP-CV benchmark, threshold elasticity, posterior error probability (PEP) concordance with the decoys, equal-chance checks and p-value calibration, explicit target/decoy label-propagation rules for grouped units, picked-protein competition, external validation by entrapment (raw and size-corrected estimates, scope-discordant-set error rate), a ground-truth simulator of target-decoy competition, and an HTML report. Methods are described in Chion et al. (2026) <doi:10.64898/2026.04.16.718468>.

Authors:Quentin Giai Gianetto [aut, cre], Marie Chion [ctb], Alexandre Godmer [ctb], Thibaut Douché [ctb], Mariette Matondo [ctb]

diagFDR_0.2.1.tar.gz
diagFDR_0.2.1.zip(r-4.7-any)diagFDR_0.2.1.zip(r-4.6-any)diagFDR_0.2.1.zip(r-4.5-any)
diagFDR_0.2.1.tar.gz(r-4.7-any)diagFDR_0.2.1.tar.gz(r-4.6-any)
diagFDR_0.2.1.tgz(r-4.6-emscripten)
manual.pdf |manual.html✨
DESCRIPTION
card.svg |card.png
diagFDR/json (API)

# Install 'diagFDR' in R:
install.packages('diagFDR', repos = c('https://jacky11.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/jacky11/diagfdr/issues

Datasets:

On CRAN:

Conda:

5.98 score 4 stars 433 downloads 72 exports 105 dependencies

Last updated from:aba1066399. Checks:7 OK, 2 FAIL. Indexed: yes.

TargetResultTimeFilesSyslog
linux-develOK211
source / vignettesOK524
linux-releaseOK231
macos-releaseFAIL24
macos-oldrelFAIL27
windows-develOK152
windows-releaseOK151
windows-oldrelOK148
wasm-releaseOK149

Exports:as_dfdr_tblcollapse_universedfdr_accepteddfdr_alert_basisdfdr_bh_diagnosticsdfdr_bh_elasticitydfdr_check_cv_benchmarkdfdr_curve_stabilitydfdr_elasticitydfdr_entrapmentdfdr_entrapment_discordantdfdr_entrapment_size_ratiodfdr_equal_chance_qbandsdfdr_headlinedfdr_ipedfdr_is_entrapment_groupdfdr_label_rule_auditdfdr_local_taildfdr_p_calibrationdfdr_p_interpretationdfdr_p_summarydfdr_pep_decoy_sanitydfdr_pep_interpretationdfdr_pep_reliabilitydfdr_pep_reliability_tdcdfdr_pep_summarydfdr_pi0_storeydfdr_picked_proteindfdr_plot_bh_elasticitydfdr_plot_cvdfdr_plot_dalphadfdr_plot_dwindfdr_plot_elasticitydfdr_plot_equal_chancedfdr_plot_fdrhat_pi0dfdr_plot_p_calibrationdfdr_plot_p_calibration2dfdr_plot_p_density_by_decoydfdr_plot_pep_density_by_decoydfdr_plot_pep_reliabilitydfdr_plot_pep_reliability_tdcdfdr_plot_pi0dfdr_plot_scope_disagreement_matrixdfdr_plot_score_distributionsdfdr_realised_fdpdfdr_render_reportdfdr_run_alldfdr_run_jaccarddfdr_scope_disagreementdfdr_simulate_tdcdfdr_summary_headlinedfdr_sumpepdfdr_write_manifestdfdr_write_readmedfdr_write_reportdiann_entrapment_idsdiann_global_minrunqdiann_global_precursordiann_global_proteingroupdiann_runxprecursorflag_headlinelabel_is_intrinsicmokapot_competed_universeread_dfdr_maxquant_msmsread_dfdr_mzidread_diann_parquetread_fasta_accessionsread_mokapot_psmsread_spectronautread_spectronaut_efficientscore_to_pvaluespectronaut_runxprecursor

Dependencies:backportsbase64encBiobaseBiocGenericsbitbit64broombslibcachemclicliprcodetoolscp4pcpp11crayondata.tabledigestdplyrevaluatefarverfastmapfontawesomefontBitstreamVerafontLiberationfontquiverforcatsforeachfsgdtoolsgeeMgeepackgenericsggformulaggiraphggplot2ggridgesglmnetgluegtablehavenhighrhmshtmltoolshtmlwidgetsisobanditeratorsjquerylibjsonlitekinship2knitrlabelinglabelledlatticelifecyclelimmamagrittrMASSMatrixmemoiseMESSmimemosaicCoremulttestmvtnormpillarpkgconfigplyrprettyunitsprogresspurrrquadprogqvalueR6rappdirsRColorBrewerRcppRcppArmadilloRcppEigenRcppParallelreadrreshape2rlangrmarkdownS7sassscalesshapestatmodstringistringrsurvivalsystemfontstibbletidyrtidyselecttinytextzdbutf8vctrsviridisLitevroomwithrxfunxml2yaml

diagFDR quick start: scope, calibration, stability and entrapment on a simulated list
1. Headline support and the FDP-CV benchmark | 2. Stability across thresholds | 3. Calibration: PEP concordance and equal chance | 4. What a misspecified decoy model looks like | 5. Label propagation at protein-group level | 6. External validation by entrapment | 7. Report

Last update: 2026-10-28
Started: 2026-10-28

diagFDR: DIA-NN diagnostics from report.parquet
Recommended DIA-NN export settings | Runnable toy example (no DIA-NN files required) | Headline stability at 1% | Tail support and stability versus threshold | Local boundary support | Threshold elasticity (list sensitivity to changing alpha) | Equal-chance plausibility by q-band | Real DIA-NN parquet workflow | Interpretation notes

Last update: 2026-10-19
Started: 2026-03-13

diagFDR: MaxQuant diagnostics from msms.txt
Runnable toy example (no external files required) | Headline stability at 1% | Decoy tail support and stability proxy | Local boundary support and elasticity | Equal-chance plausibility by q-band | Real MaxQuant workflow (msms.txt) | Optional: other way to get p-value / pseudo-p-value diagnostics from MaxQuant scores | Interpretation notes

Last update: 2026-10-19
Started: 2026-03-13

diagFDR: mokapot diagnostics (competed winners)
Runnable toy example (no external files required) | Headline stability at 1% | Decoy tail support and stability proxy | Local boundary support and elasticity | Equal-chance plausibility by q-band (internal check) | PEP reliability and expected errors (ΣPEP) | Real mokapot workflow (targets + decoys text exports) | Interpretation notes

Last update: 2026-10-19
Started: 2026-03-13

diagFDR: generic PSM diagnostics from mzIdentML (.mzid)
Runnable toy example (no external files required) | Headline stability at 1% | Tail support and stability versus threshold | Local boundary support and elasticity | Equal-chance plausibility by q-band | Real mzIdentML workflow (.mzid) | Optional: pseudo-p-values from the decoy score tail | Interpretation notes / common pitfalls

Last update: 2026-04-07
Started: 2026-03-13

diagFDR: generic diagnostics from Spectronaut exports
Runnable toy example (no external files required) | Headline stability at 1% | Tail support and stability versus threshold | Local boundary support and elasticity | Equal-chance plausibility by q-band | Application to Spectronaut

Last update: 2026-03-13
Started: 2026-03-13

Readme and manuals

Help Manual

Help pageTopics
Create a 'dfdr_tbl'as_dfdr_tbl
Collapse exported rows to reported units under an explicit label-propagation rulecollapse_universe
Accepted target identifiers of a list at a thresholddfdr_accepted
Evidential basis of each review alertdfdr_alert_basis
BH diagnostics at a headline alpha (threshold, discoveries, boundary support)dfdr_bh_diagnostics
BH list elasticity (Jaccard) across alpha valuesdfdr_bh_elasticity
Monte Carlo check of the FDP-CV benchmarkdfdr_check_cv_benchmark
Stability curve across alpha valuesdfdr_curve_stability
Threshold elasticity (list stability to cutoff perturbation)dfdr_elasticity
Entrapment-based FDP estimate of an accepted listdfdr_entrapment
Entrapment FDP on the discordant and shared parts of two accepted listsdfdr_entrapment_discordant
Entrapment-to-target size ratio rdfdr_entrapment_size_ratio
Equal chance under paired target-decoy competition, by q-value bandsdfdr_equal_chance_qbands
Headline stability diagnostics at a given alphadfdr_headline
Internal PEP calibration error (IPE) with the target-decoy comparatordfdr_ipe
Entrapment status of protein-group stringsdfdr_is_entrapment_group
Audit the dependence of a reported list on the label-propagation ruledfdr_label_rule_audit
Local tail support near the cutoffdfdr_local_tail
P-value calibration diagnostic (ECDF vs uniform; stratified)dfdr_p_calibration
Plain-language interpretation of the p-value diagnosticsdfdr_p_interpretation
Summary of the p-value diagnostics: pi0 estimates and FDR thresholdsdfdr_p_summary
Decoy PEP sanity checksdfdr_pep_decoy_sanity
Plain-language interpretation of PEP concordancedfdr_pep_interpretation
PEP reliability against the pooled decoy fractiondfdr_pep_reliability
Target-focused PEP reliability using a TDC-style error proxydfdr_pep_reliability_tdc
Summary of PEP concordance with the decoy-derived referencedfdr_pep_summary
Storey pi_0(lambda) tail-uniformity diagnosticdfdr_pi0_storey
Picked-protein competition on a target/decoy listdfdr_picked_protein
Plot BH elasticity (Jaccard) vs alphadfdr_plot_bh_elasticity
Plot the decoy-support index versus 'alpha'dfdr_plot_cv
Plot decoy support D_alpha versus 'alpha'dfdr_plot_dalpha
Plot local decoy support 'D_alpha_win' versus 'alpha'dfdr_plot_dwin
Plot threshold elasticity (Jaccard) versus 'alpha'dfdr_plot_elasticity
Plot equal-chance plausibility by q-value bandsdfdr_plot_equal_chance
Plot Storey-style estimated FDR curve: \hatpi_0 m t / R(t)dfdr_plot_fdrhat_pi0
Plot p-value calibration (ECDF minus uniform)dfdr_plot_p_calibration
P-value calibration plot (cp4p-style), with multiple pi0 reference curvesdfdr_plot_p_calibration2
Plot (pseudo-)p-value density by decoy/targetdfdr_plot_p_density_by_decoy
Plot PEP density by decoy/targetdfdr_plot_pep_density_by_decoy
Plot PEP reliabilitydfdr_plot_pep_reliability
Plot target-focused PEP reliability (TDC-style)dfdr_plot_pep_reliability_tdc
Plot Storey pi_0(lambda) curvedfdr_plot_pi0
Plot scope disagreement as a Jaccard overlap heatmapdfdr_plot_scope_disagreement_matrix
Plot target vs decoy score distributionsdfdr_plot_score_distributions
Realised FDP of a simulated listdfdr_realised_fdp
Render a human-readable HTML report from 'dfdr_run_all' outputdfdr_render_report
Run a standard set of FDR QC diagnosticsdfdr_run_all
Inter-run Jaccard overlap matrix at a fixed thresholddfdr_run_jaccard
Scope disagreement between two listsdfdr_scope_disagreement
Simulate a competed target/decoy list with known ground truthdfdr_simulate_tdc
Build a headline summary table (one row per list)dfdr_summary_headline
Expected number of false targets among accepted identificationsdfdr_sumpep
Write a manifest file describing parameters, list metadata, and warningsdfdr_write_manifest
Write a human-readable 'README.md' reportdfdr_write_readme
Write diagnostic outputs to a folderdfdr_write_report
Entrapment identifiers of a DIA-NN reportdiann_entrapment_ids
DIA-NN: global precursor list built by minimum run-wise q across runsdiann_global_minrunq
DIA-NN -> global precursor universe (deduplicated by 'Precursor.Id')diann_global_precursor
Build a DIA-NN protein-group universe with an explicit label rulediann_global_proteingroup
DIA-NN -> run-by-precursor universe (deduplicated within run)diann_runxprecursor
Flag headline diagnostics as review alertsflag_headline
Is the target/decoy label intrinsic to the grouping key?label_is_intrinsic
Create a competed-winner universe from mokapot PSM outputsmokapot_competed_universe
Print a 'dfdr_tbl'print.dfdr_tbl
Read MaxQuant 'msms.txt' into a 'dfdr_tbl' (PSM-level; reconstructed TDC q-values)read_dfdr_maxquant_msms
Read mzIdentML into a 'dfdr_tbl' (generic; score-based TDC q-values)read_dfdr_mzid
Read a DIA-NN 'report.parquet'read_diann_parquet
Accessions of a FASTA fileread_fasta_accessions
Read mokapot PSM text outputs (targets + decoys) and combineread_mokapot_psms
Read a Spectronaut TSV reportread_spectronaut
Read Spectronaut efficiently with column selectionread_spectronaut_efficient
Convert identification scores to p-values or pseudo-p-valuesscore_to_pvalue
Simulated competed target/decoy list (example data)sim_tdc_example
Spectronaut -> run-by-precursor universe (deduplicated within run by 'EG.PrecursorId')spectronaut_runxprecursor