Skip to content

Node-fraction sweep (crc_232) and Celcomen baseline notebook - #59

Merged
Abdul-Moeed merged 2 commits into
mainfrom
node-fraction-celcomen
Oct 2, 2026
Merged

Abdul-Moeed merged 2 commits into
mainfrom
node-fraction-celcomen

Conversation

@dbdimitrov

@dbdimitrov dbdimitrov commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Requires: cellina with perturb_fraction support, PMBio/cellina#39.

Summary

  • notebooks/additional/node_fraction/run_node_fraction.py: inference-only worker that applies the tutorial 4.2 node perturbation to a random fraction of neighbour cells using a pre-trained k=200 within-domain checkpoint. Defaults now target slide 232 (crc_232.h5ad, 232_REF -> 232_CRC), data path resolved relative to the repo.
  • notebooks/additional/node_fraction/plot_per_ct.py: aggregates <results>/<ct>/frac*_seed*.json into the combined Pearson / L2 LaTeX tables, CSVs and the per-cell-type overlay figure. Defaults to results_232.
  • notebooks/additional/loo_metrics.py: shared scorer (imports metric implementations from scripts/counterfactual_analysis.py).
  • notebooks/additional/node_fraction/results_232/: the slide-232 results (5 seeds x 5 fractions x 5 cell types; fractions 0.1, 0.25, 0.5, 0.75, 1.0, with 0.0 and 0.05 omitted), rerun with cellina feat/perturb-fraction plus the generated tables/figure. Running plot_per_ct.py with no arguments reproduces the committed .tex tables byte-for-byte.
  • notebooks/additional/celcomen/celcomen_crc232.ipynb + environments/celcomen.yml: Celcomen run as released on the benchmark setting for crc_232. Documents the dense cell-by-cell trace(msg @ gex.T) allocation (42.6 GiB at 107k cells) that makes training infeasible on this slide.

Notes

  • run_node_fraction.py needs --ckpt-root pointing at the k200_seed{seed} checkpoints trained by the graph-sensitivity sweep with the same cell type held out. That training script and the run_232.sh driver are not part of this PR.
  • The graph-sensitivity checkpoints store condition_on_intrinsic=False in their init params, and cellina v1.1.1 / 33 concert in ood bench #39 no longer accepts that kwarg. For this rerun the key was dropped from scratch copies of the checkpoints. That is equivalent, because False is the only code path left.

🤖 Generated with Claude Code

dbdimitrov and others added 2 commits September 30, 2026 09:09
Node-perturbation fraction experiment: run_node_fraction.py (single-run
inference worker, defaults now point at slide 232) and plot_per_ct.py
(per-cell-type tables/figure, defaults to results_232), plus the shared
loo_metrics.py scorer and the slide-232 results (5 seeds x 7 fractions x
5 cell types).

Celcomen baseline notebook on crc_232 with its conda environment; it
documents the O(cells^2) memory requirement that prevents training on
this slide.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Rerun the slide-232 node-perturbation fraction sweep with cellina
feat/perturb-fraction (PR PMBio/cellina#39) over fractions 0.1, 0.25,
0.5, 0.75, 1.0 (0.0 and 0.05 dropped), 5 cell types x 5 seeds, and
regenerate the per-cell-type summary tables and figure.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Abdul-Moeed
Abdul-Moeed merged commit 6d57146 into main Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants