Skip to content
Docs menu

Workflow: what a rerun needs

L2 Rerunnable adds what a rerun needs: versions and identifiers, how inputs were prepared, which script makes which result, instructions that match the repository, and controlled randomness.

Last updated

L2 waits until the gap is fixed; the authors can point to the identifier, and a free re-check verifies it.
Level relationshipWhat L2 needs

Dependencies and versions are listed

What counts
Common gaps
How to fix

The exact code version is identified

What counts
Common gaps
How to fix
bash
git tag -a v1.0-paper -m "Code as submitted with the manuscript"
git push origin v1.0-paper

Versions of tools and models

What counts
Common gaps
How to fix

Data sources have stable identifiers

What counts
Common gaps
How to fix

Data preparation steps are documented

What counts
Common gaps
How to fix
Snakefile
rule filter_cells:
    input:  "data/raw/counts.h5ad"
    output: "data/processed/filtered.h5ad"
    params: min_genes=200
    shell:  "python -m pipeline.filter {input} {output} --min-genes {params.min_genes}"

rule train_model:
    input:  "data/processed/filtered.h5ad"
    output: "models/classifier.pt"
    shell:  "python -m pipeline.train {input} {output} --seed 0"

Code is linked to the paper’s results

What counts
Common gaps
How to fix
README.md
## Results

| Paper item | Command                            | Output                           |
|------------|------------------------------------|----------------------------------|
| Figure 2   | Rscript analysis/figure2.R         | results/figure2/figure2.csv      |
| Figure 3B  | python -m analysis.fig3 --panel b  | results/figure3/panel_b.csv      |
| Table 2    | python -m analysis.evaluate_cohort | results/claims/table2_auroc.json |

Instructions explain how to run the analysis

What counts
Common gaps
How to fix

Documented commands agree with the code

What counts
Common gaps
How to fix

Machine assumptions documented

What counts
Common gaps
How to fix
python
from pathlib import Path
import os

ROOT = Path(__file__).resolve().parents[1]   # repository root, from src/pipeline.py
DATA = Path(os.environ.get("DATA_DIR", ROOT / "data"))
counts = DATA / "raw" / "counts.h5ad"

Randomness of key results is controlled

What counts
Common gaps
How to fix

A tidy repository

What counts
Common gaps
How to fix

See where your project stands

Run the analysis on your paper or repository. Every finding names its area and links back here.