Note
Part of the jx experiment - not an official FinnGen or GeneGenie project.
An experiment in agent-driven scientific data exploration, built around FinnGen and partner human-genetics datasets exposed through the GeneGenie results API — FinnGen R14 + UK Biobank + MVP meta-analyses, eQTL Catalogue R8, Open Targets 25.12, GTEx, Genebass, GenCC, Monarch (29 datasets at last count).
fgx is a curated catalog of marimo notebooks for human-genetics analysis, plus a thin skill that lets an agent compose new analyses from them. Each notebook is both a runnable demonstration and a source of pure functions other notebooks can import and reuse directly. Given a new human-genetics question, the agent picks relevant notebooks, composes their functions into a new notebook, executes it in a live kernel, and hands back a self-contained, re-runnable result.
GeneGenie ships https://genegenie.broadinstitute.org/api/v1/* with bearer auth, predictable paths, and TSV by default — that collapses the data-access layer to httpx.get, so there is no Python SDK, no MCP server, no schema cache.
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_pcsk9_walkthrough.py |
Gene -> credible sets -> lead variant -> colocalization | |
nb02_variant_phewas.py |
Variant PheWAS across endpoints | |
nb03_phenotype_locus_zoom.py |
Phenotype-driven locus zoom | |
nb04_gene_exome_burden.py |
Gene-based exome burden results | |
nb05_pign_cdg.py |
Gene -> exome + curated gene_disease -> recessive-Mendelian companion to nb04 (PIGN-CDG / MCAHS1); imports prepare_deleterious from nb04 |
|
nb06_variant_pqtl_function.py |
Variant -> pQTL credible sets -> direction-of-effect across proteins (ADAM17 / IBD demo replay) | |
nb07_data_catalog.py |
Catalog introspection (/datasets, /resources, /resource_metadata) for "what's available?" |
|
nb08_genetics_primer.py |
Educational walkthrough from GWAS and fine-mapping through colocalization, exome results, molecular QTLs, and gene-disease curation | |
nb09_polygenic_heart_disease.py |
Polygenic coronary heart disease: locus landscape, effect sizes, colocalization, pathways, and exome evidence | |
nb10_diabetes_susceptibility.py |
Type 2 diabetes susceptibility: locus landscape, effect sizes, TCF7L2 colocalization, and MODY gene curation | |
nb11_protective_cancer_variants.py |
Protective cancer variants across resources, with locus clustering and PheWAS classification of clean protection versus disease trade-offs |
The machine-readable catalog table is catalog.toml's [[vignette]] blocks - each notebook, its reusable helpers, and what it does - which the vignette-catalog-compose-notebook skill reads.
Related public catalogs of the same pattern: jx for JUMP Cell Painting, prx for PROSPECT chemical genetics, and dmx for DepMap Breadbox.
Create an API key at genegenie.broadinstitute.org (MCP/API KEYS -> Create key), then cp .env.example .env and paste your key in.
This catalog follows the vignette-catalog-skills pattern.
The skill stores are gitignored, so a fresh clone has only skills-lock.json; restore the on-disk 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 -yThen open Claude Code or Codex in this repo and ask to get started.
The vignette-catalog-compose-notebook skill launches nb01_pcsk9_walkthrough in a live marimo kernel and handles later analysis in the same workflow.
BSD 3-Clause — see LICENSE.