Every file in the deposit and what it is. Generated by eval/build_manifest.py.
| file | what it is |
|---|---|
README.md |
Start here: what the benchmark is, how to run it |
LICENSE |
GNU General Public License v3.0 |
CITATION.cff |
Citation metadata (fill in DOI and author list before publishing) |
config.sh |
Every path the pipeline uses; the only place absolute paths live |
config.local.sh.example |
Example site overrides (the original cluster's settings); copy to config.local.sh and edit |
.gitignore |
Ignores simulation output, site config and rebuildable inputs |
MANIFEST.md |
This file |
| file | what it is |
|---|---|
interaction_forms.R |
CIDER simulation -- interaction forms |
simulate_cider_gam.R |
CIDER simulation -- nonlinear regime |
| file | what it is |
|---|---|
build_gtex_wholeblood_input.py |
Rebuild the stage-2/4 GTEx whole-blood expression input + annotation. |
simulate_cider_linear.py |
20 independent standard-normal TFs (identity covariance). |
| file | what it is |
|---|---|
benchmark_CIDER_discrete.R |
CIDER_discrete: the CIDER linear interaction model run on the median-binarized |
benchmark_CIDER_discrete_gam.R |
CIDER_discrete (nonlinear stages): the CIDER-GAM run on the median-binarized trait used by the |
benchmark_DGCA.R |
Benchmark: DGCA (differential gene correlation analysis, Pearson). |
benchmark_DINGO.R |
Benchmark: DINGO (iDINGO), partial-correlation differential network. |
benchmark_DiffCorr.R |
Benchmark: DiffCorr-style parametric differential correlation. |
benchmark_discordant.R |
Benchmark: discordant (mixture-model differential correlation). |
| file | what it is |
|---|---|
cells.tsv |
Every benchmark cell (256) with the runner, preset, input cell, method arguments and grid that produce it |
simulation_grid.txt |
Full grid, 1,000 settings (10 sample sizes x 10 effect sizes x 10 noise levels); stages 1 and 3, n up to 1000 |
simulation_grid_DINGO.txt |
(runid, repid) pairs over the full grid — DINGO runs one replicate per job |
simulation_grid_DINGO_stage1_subset.txt |
(runid, repid) pairs over the core subset, simulated-TF stages |
simulation_grid_DINGO_stage4_subset.txt |
(runid, repid) pairs over the core subset, real-TF stages |
simulation_grid_beta_ratios.txt |
Interaction-to-main effect ratio sweep: main_effect fixed, interaction_effect varied |
simulation_grid_gam_diagnostics.txt |
Small grid carrying a k column, for the GAM basis-dimension sweep |
simulation_grid_stage4.txt |
Full grid for the real-TF stages 2 and 4; identical to simulation_grid.txt except the top sample tier is 803, the number of GTEx whole-blood donors |
simulation_grid_subset.txt |
Core subset, 90 settings = 10 sample sizes x the central 3x3 of (beta, noise); stages 1 and 3 |
simulation_grid_subset_stage4.txt |
Core subset for the real-TF stages 2 and 4 |
| file | what it is |
|---|---|
run_benchmark.sbatch |
SLURM array job: a benchmark consumer (DGCA, DiffCorr, discordant or |
run_cider_gam.sbatch |
SLURM array job: CIDER-GAM generator (nonlinear stages 3 and 4). |
run_cider_linear.sbatch |
SLURM array job: CIDER linear generator (stages 1 and 2, Python). |
run_dingo.sbatch |
SLURM array job: DINGO. One array task per (runid, repid) pair rather than |
| file | what it is |
|---|---|
accept_fig2_delta.py |
Per-cell MAP straight from the existing Figure 2 code path. |
acceptance_block_internals.py |
Acceptance tests for the per-block signed-rank internals + pooled rank-biserial. |
aggregate_cell.py |
runid (4-digit str) -> {samples, betas, noise} from the given grid. |
analyze_cider_decomposition.py |
Decompose CIDER's advantage into a dichotomization cost and a model effect. |
analyze_cider_vs_best.py |
CIDER vs the BEST alternative, per (beta x noise) design cell, for all four simulation stages, |
analyze_stage1_cider_vs_best.py |
Stage-1: is CIDER better than the BEST alternative, per (beta x noise) design cell? |
audit_coverage.py |
Audit core-subset coverage across all CIDER simulation target cells. |
bench_stage1_runtime.R |
Supplementary Table S1: single-replicate runtime of each alternative method, stage 1. |
bench_stage1_runtime_cider.py |
Supplementary Table S1: single-replicate CIDER runtime, stage 1. |
build_cell_manifest.py |
Derive sim/grids/cells.tsv -- the declarative list of every (stage, method, |
build_manifest.py |
Regenerate MANIFEST.md: every file in the deposit and what it is. |
cider_ksweep_experiment.R |
|
compare_methods_within_stage.py |
{(arm, n, beta, sigma): MAP} using the existing Figure 2 definition. |
dingo_lowdim_experiment.R |
|
dingo_lowdim_experiment_fast.R |
|
evaluate_stage3_cider_logp.R |
Dependencies |
evaluate_stage4_cider_logp.R |
Dependencies |
k_default_vs_k5_check.R |
Does the basis-dimension discrepancy between the stage-3/_boot scripts (k=5 on ALL three |
k_default_vs_k5_check_r10.R |
Does the basis-dimension discrepancy between the stage-3/_boot scripts (k=5 on ALL three |
make_table_s3_within_group_cor.py |
Supplementary Table S3: within-trait-half Pearson correlation between TF and target, |
pilot_discordant_signflip.R |
PILOT: does adding negative-sign regulatory effects rescue discordant's EM? |
signed_rank_blocks.py |
Internals for one (focal, comparator) block. focal_ap/comp_ap: {repid: AP}. d = focal-comp. |
simulate_stage4_map_cider_evaluate.R |
Dependencies |
stage4_tanh_cider_diagnostics.R |
|
submit_missing.sh |
Submit a SLURM array over ONLY the missing runids of one cell. |
submit_missing_dingo.sh |
Submit a SLURM array for the missing runids of a DINGO cell. |
tanh_logp_diag.R |
|
tanh_tie_diag.R |
| file | what it is |
|---|---|
make_discrete_map_figures.py |
MAP figures with CIDER-discrete added as an extra series, written to plots/discrete/. |
make_fig1A_candidates.py |
Panel A representation bake-off for CIDER Fig 1. |
make_fig1_extra_panels.py |
Two additional Figure-1 panels: |
make_fig1_panels.py |
Figure 1 panels for the CIDER methods paper — one vector file per subpanel. |
make_fig1_reframe.py |
Fig 1 reframe panel: three estimators of beta(T) = TF->target slope vs trait. |
make_fig1_reframe_scatter.py |
Companion 'before' panel for the Fig1A reframe: raw G vs X scatter colored by trait, |
make_fig1_typology.py |
Straight beta(T) hitting y_lo at T_LO and y_hi at T_HI. |
make_figure2_delta_panels.py |
Two replacement panels for Figure 2, built from the ALREADY-COMPUTED stage-1 and |
make_figure2_panels.py |
Figure 2 (linear simulation results) — 12 individual panels, one SVG each, in plots/figure2/. |
make_figure2_separability_panel.py |
Figure 2 candidate panel: the high- vs low-trait-separability distributions. |
make_slide_cell_panels.py |
MAP, bootstrap SE, and convergence fraction for one (n, beta, noise) cell. |
make_table_s3_within_group_cor.py |
Supplementary Table S3: within-trait-half Pearson correlation between TF and target, |
plot_aggregate_map.py |
Aggregate mean-MAP curves for stage 1 and stage 2 — NO uncertainty bands. |
plot_cellgrid_se.py |
3x3 (beta x noise) grid of MAP vs sample size, for stage 1 and stage 2. |
plot_cider_discrete_ablation.py |
CIDER_discrete ablation: the CIDER interaction model run on the median-binarized |
plot_cider_replicates.py |
Single-cell diagnostic: CIDER's 50 individual replicate APs vs sample size, stage 2. |
plot_dgca_diffcorr_equivalence.py |
Supplementary figure: DGCA and DiffCorr are near-interchangeable on the LINEAR stages. |
plot_dgca_scoring_supp.py |
Supplementary: DGCA scoring artifact at stage 2 (real TF, linear). |
plot_discordant_replicates.py |
Single-cell diagnostic: Discordant's 50 individual replicate APs vs sample size. |
plot_figure3A_surfaces.py |
Figure 3 panel A: 3D surface plots of the four nonlinear true-positive interaction forms. |
plot_figure3B_stage3_aggregate.py |
Figure 3 panel B: stage-3 aggregate MAP by interaction form, HIGH trait separability (v1) only, |
plot_figure3CF_stage3_retention.py |
Figure 3 panels C-F: stage-3 high-vs-low trait-separability robustness, ONE PANEL PER FORM, |
plot_figure3G_stage4_aggregate.py |
Figure 3 panel G: stage-4 aggregate MAP by interaction form, HIGH trait separability (v1) only, |
plot_figure3HK_stage4_retention.py |
Figure 3 panels H-K: stage-4 high-vs-low trait-separability robustness, ONE PANEL PER FORM, |
plot_interaction_surfaces.py |
3D surface plots of the nonlinear true-positive interaction forms. |
plot_nonlinear_aggregate_map.py |
Aggregate mean-MAP panels for the nonlinear stages (3 and 4), one panel per form. |
plot_nonlinear_cellgrid_se.py |
3x3 (beta x noise) MAP grids for the nonlinear stages — one figure per interaction form. |
plot_nonlinear_figures.py |
Nonlinear results: method comparison faceted by functional form, for stage 3 |
plot_retention_ratio_nonlinear.py |
Retention-ratio curves (panel-B style) for the nonlinear stages, one panel per form. |
plot_separability_nonlinear.py |
Trait-separability figures for the nonlinear stages (3 & 4), faceted by form. |
plot_separability_prototype.py |
PROTOTYPE: how to present the effect of trait separability (v1 high vs v2 low). |
plot_separability_retention_linear.py |
Trait-separability robustness for the LINEAR stages (1 and 2). One 2x2 figure per stage, |
plot_separability_retention_nonlinear.py |
Trait-separability robustness for the nonlinear stages (3 and 4), per interaction form. |
plot_stage1_cellgrid_se.py |
Stage-1 figure panel: 3x3 grid of MAP vs sample size, one panel per (beta x noise) cell. |
plot_stage1_discordant_replicates.py |
Single-cell diagnostic: Discordant's 50 individual replicate APs vs sample size. |
plot_stage1_figure1.py |
returns sorted sample sizes, means, sds — impute missing core runids as 0. |
plot_stage1_figures.py |
Stage-1 (linear simulated interactions) figures for the main results. |
plot_stage1_grouped_box.py |
Stage-1 grouped boxplot: all methods on ONE axis, dodged within each sample |
plot_stage1_r50_uncertainty.py |
[SUPERSEDED 2026-07-23 — DO NOT USE] Kept only for reference. |
plot_stage1_uncertainty.py |
Stage-1 uncertainty figures that replace the misleading +/-1 SD bands. |
plot_stage2_cellgrid_se.py |
Stage-1 figure panel: 3x3 grid of MAP vs sample size, one panel per (beta x noise) cell. |
plot_stage2_figures.py |
Stage-1 (linear simulated interactions) figures for the main results. |
plot_stage2_r50_uncertainty.py |
[SUPERSEDED 2026-07-23 — DO NOT USE] Kept only for reference. |
plot_stage4_tanh_logp.py |
Updated stage-4 tanh figures: CIDER-GAM scored on log-p (no p-value underflow). |
| file | what it is |
|---|---|
README.md |
Tests |
| file | what it is |
|---|---|
cr_knot_placement.R |
|
mgcv_basis_defaults.R |
|
mgcv_penalty_structure.R |
|
ti_nullspace_is_bilinear.R |
| file | what it is |
|---|---|
CONSOLIDATION.md |
Consolidation notes |
DATA.md |
Data |
DISCORDANT_CEILING.md |
Discordant method non-convergence ceiling |
benchmark_methods_code_check.md |
Benchmark Methods — code cross-check (for the Methods section) |
cider_model_methods.md |
The CIDER interaction model and its nonlinear GAM extension — Methods reference |
cider_vs_best_alternative_test.md |
Testing whether CIDER outperforms the best alternative |
coverage_audit_20260712_final.txt |
Final coverage audit: 92 of 100 canonical cells complete; the 8 partials are all discordant non-convergence |
discordant_failure_mechanism.md |
Discordant failure modes in the CIDER benchmark |
gam_smooth_specification.md |
The CIDER GAM smooths: what the code fits, and equations for the Methods section |
nonlinear_forms_correlation_survival.md |
Nonlinear forms: is there a "correlation-survival gradient"? |
separability_analysis.md |
Trait-separability robustness analysis |
simulation_design_methods.md |
Simulation design — Methods reference |
simulation_study_reference.md |
CIDER Simulation Study — Reference Document |
| file | what it is |
|---|---|
environment.yml |
Python environment for the linear-stage generators, the aggregation tooling |
install_r_packages.R |
Install the R dependencies of the CIDER simulation benchmark. |
versions.txt |
Software versions observed on the machine used for the benchmark |
256 gzipped per-cell average-precision tables (<cell>.txt.gz). Columns: runid, repid, AP, MAP, samples, betas, noise. Decompress these to regenerate every figure without re-running the grid — see docs/DATA.md.