Skip to content

Repository files navigation

jx — JUMP eXplore

An experiment in agent-driven scientific data exploration, built around JUMP Cell Painting — the largest public morphological profiling dataset (~116K compounds, ~8K CRISPR knockouts, ~15K gene overexpressions, 1.6 billion cells).

jx is a curated catalog of marimo vignettes for JUMP analysis, plus a thin skill that lets an agent compose new analyses from them. Each vignette is both a runnable demonstration and a source of pure functions other notebooks can import and reuse directly. Given a new biological question, the agent picks relevant vignettes, composes their functions into a new notebook, executes it in a live kernel, and hands back a self-contained, re-runnable result.

For the hypothesis, the catalog walkthrough, and the project roadmap, see PLAN.md.

The catalog

Each notebook ships with a committed session snapshot under notebooks/__marimo__/session/ so the molab preview renders cell outputs without re-executing.

Notebook Role Preview
nb01_retrieve_profiles.py Pull JUMP morphological profiles by perturbation Open in molab
nb02_add_metadata.py Annotate profiles with plate, well, and perturbation metadata Open in molab
nb03_calculate_activity.py Score morphological activity via mAP (copairs) Open in molab
nb04_display_images.py Fetch and display Cell Painting site images Open in molab
nb05_explore_similarity.py Cosine-similarity search over JUMP profiles Open in molab
nb06_query_genes.py Translate gene / compound identifiers via broad-babel Open in molab
nb07_compound_neighborhood.py Composition demo: compound -> similar perturbations -> annotated neighborhood with images Open in molab
nb08_panel_similarity.py Resolve mixed perturbation panels, annotate activity, and compare morphology across modalities Open in molab

Related public catalogs of the same pattern: fgx for FinnGenie human genetics, prx for PROSPECT chemical genetics, and dmx for DepMap Breadbox.

Getting started

This catalog follows the vignette-catalog-skills pattern. The installed skill stores are gitignored, so a fresh clone has skills-lock.json plus the repo-local compose-query skill (see below); restore the installed skill content first:

uv --version  # or: curl -LsSf https://astral.sh/uv/install.sh | sh
npx skills@1.5.20 add carpenter-singh-lab/vignette-catalog-skills -s vignette-catalog-compose-notebook -s vignette-catalog-scaffold -a claude-code -a codex -y
npx skills@1.5.20 add marimo-team/skills -s marimo-notebook -a claude-code -a codex -y
npx skills@1.5.20 add marimo-team/marimo-pair -s marimo-pair -a claude-code -a codex -y

Then open Claude Code or Codex in this repo and ask to get started. The vignette-catalog-compose-notebook skill launches nb07_compound_neighborhood in a live marimo kernel and handles later analysis in the same workflow.

jx also ships a repo-local compose-query skill (tracked under .claude/skills/compose-query/) for the parallel ggsql catalog under queries/ - pure SQL + chart questions against the JUMP metadata DuckDB that don't need a marimo notebook.

License

BSD 3-Clause — see LICENSE.

About

JUMP eXplore - agent-composable marimo notebooks over JUMP Cell Painting data

Resources

Code of conduct

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages