
Mjlab
- Updated May 14, 2026
- miller-jensen-lab/claude-code-marketplace
mjlab is a Claude Code skill in the Python category. Miller-Jensen lab skills: Python, R, single-cell secretion, flow cytometry, live-cell imaging, smFISH, stochastic gene expression, scRNA-seq QC, plotting, and lab data hygiene.
Key points
- mjlab
- Python
- AI-coding skill
Mjlab by the numbers
- Data as of Jul 7, 2026 (Skillselion catalog sync)
/plugin marketplace add miller-jensen-lab/claude-code-marketplace/plugin install mjlab@miller-jensen-labAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Last updated | May 14, 2026 |
|---|---|
| Repository | miller-jensen-lab/claude-code-marketplace ↗ |
What it does
Miller-Jensen lab skills: Python, R, single-cell secretion, flow cytometry, live-cell imaging, smFISH, stochastic gene expression, scRNA-seq QC, plotting, and lab data hygiene.
README.md
Miller-Jensen Lab — Claude Code Marketplace
A Claude Code plugin marketplace of skills for the Miller-Jensen lab at Yale. Once installed, Claude Code loads the right skill on demand when you ask it to do something lab-shaped — write an analysis script, fit a bursting model, gate a flow file, refactor a notebook, etc.
Two pillars:
- Be reproducible. Lockfiles, seeds, raw-data-never-edited, plain-text everything.
- Be skillful. Get the analysis done correctly and figure-worthy on the first try.
Install
You need Claude Code installed. Inside Claude Code:
/plugin marketplace add miller-jensen-lab/claude-code-marketplace
/plugin install mjlab@miller-jensen-lab
Update later with /plugin marketplace update miller-jensen-lab.
Aside: Anthropic ships a life-sciences marketplace with various MCP connectors and skills. Most of it targets pharma/clinical workflows; the few pieces relevant to a basic-research lab we cover ourselves with calibration tuned to the lab. Browse it if curious.
Using it
You don't invoke skills directly. Claude Code loads them automatically when your conversation matches their triggers — file types you mention, libraries you ask about, analysis modalities you're working on. Just talk to it normally:
- "Help me set up a new project for an RNA-seq experiment." — loads
coding-in-python,bio-data-hygiene,tabular-data. - "I have a
.fcsfile from yesterday's flow run — how do I gate this reproducibly?" — loadsflow-cytometry. - "My UMAP looks weird. Walk me through QC on this 10x dataset." — loads
scrna-qc,bio-stats. - "Review my volcano plot script before I commit." — loads
plotting,code-review.
The skills give the agent shared reference material; the agent still does the work and can still make mistakes — check its output.
Skills
| Skill | Purpose |
|---|---|
coding-in-python |
uv, ruff, pathlib, notebook-vs-script discipline, portable paths. |
coding-in-r |
renv, tidyverse, here::here() for portable paths, Bioconductor staples (DESeq2/Seurat/flowCore). |
tabular-data |
DuckDB SQL on CSV/XLSX/Parquet as the default; qsv, xlsx2csv, Polars for the cases where DuckDB isn't ideal. |
programming-and-coding |
Cross-language coding philosophy: KISS, smoke tests on real data, working code is the documentation. |
code-overview |
Five-minute walk to orient inside an unfamiliar lab repo before editing. |
code-review |
Self-review and AI review tuned for lab landmines (hardcoded paths, raw data staged, missing seeds). |
using-git-and-github |
Agent judgment for branches, commits, repo naming, big-file pushback, and the lab org. |
zotero |
Use the Zotero local API to search, cite, and export bibliographies; manuscript citekey workflow. |
literature-search |
Live-oracle search across PubMed/OpenAlex/Crossref/Europe PMC/bioRxiv/Semantic Scholar/arXiv/Unpaywall + Ai2 Asta. |
local-lit-search |
Build a reproducible local SQLite FTS5 corpus from PubMed/PMC; answer questions with grounded [PMID:…] citations. Ships uv-PEP-723 scripts with download safeguards. |
cell-cell-communication |
Ligand-receptor inference pointer skill — LIANA consensus, CellChat v2, NicheNet. |
single-cell-secretion |
Microfluidic multiplex cytokine analysis; polyfunctionality / PSI; thin-ecosystem honesty. |
flow-cytometry |
flowCore/openCyto/ggcyto cytoverse (R primary), FlowKit (Python); reproducible gating, transforms, compensation. |
live-cell-imaging |
Reporter time-lapse (NF-κB / IRF / STAT) — bioio, cellpose, btrack, TrackMate, napari. |
smfish |
Per-cell transcript counts — big-fish, FISH-quant v2, RS-FISH; feeds bursting models. |
stochastic-gene-expression |
Telegraph / Beta-Poisson / NB fits, GillesPy2 SSA, FSP for the CME, txburst. |
bio-data-hygiene |
Sample sheets as source of truth, naming convention, donor anonymization, GEO/SRA prep. |
bio-stats |
Pseudobulk for scRNA-seq DE, mixed models for matched donors, FDR, effect sizes. |
plotting |
Publication-quality plotting (Python + R, in depth) — Okabe-Ito / viridis defaults, journal-spec dimensions, SuperPlot recipe, common-mistake catalog. |
scrna-qc |
Per-sample QC for droplet scRNA-seq — MAD filtering, scDblFinder doublets, SoupX/CellBender ambient RNA, macrophage-specific common mistakes. |
Repository layout
.claude-plugin/
└── marketplace.json # marketplace manifest
plugins/mjlab/
├── .claude-plugin/
│ └── plugin.json # plugin manifest (bump version on release)
└── skills/<name>/SKILL.md # one directory per skill
A skill is a single SKILL.md with YAML frontmatter and a directive playbook body. Claude Code's skill loader reads the frontmatter to decide when to load each skill into context.
Contributing
If a skill is wrong, missing a step, or could use a lab-specific example, contribute. The mechanics:
- Easiest: ask your agent. Tell Claude Code "fix the bit in
flow-cytometryabout biexponential cofactors — here's what's wrong" and it can edit the file, commit it on a branch, push, and open a pull request (a PR — GitHub's way of proposing a change for review) against this repo. You don't have to rungityourself. - If you're not ready to write the fix: file an issue. "This skill says X but the right answer is Y" is enough.
- Kathryn and Kyle have to approve before changes merge into
main. Anyone in the lab can push to a branch and open the PR.
Skill acceptance criteria
Every skill should:
- Have YAML frontmatter:
name,description,related,updated. - Have a
descriptionwith aTRIGGER when …clause naming concrete signals (file extension, library name, analysis modality). This stops the skill from firing on unrelated work. - Be directive and agent-usable: rules, not essay prose.
- Include copy-paste code examples with language-tagged fences.
- Cross-link related skills with relative paths.
- Set seeds in any stochastic example (
np.random.default_rng(42),set.seed(42)). - Never commit raw data, large outputs, or notebook checkpoints. Mention
.gitignorepatterns where relevant. - End with a short checklist and a
## Further readingsection.
License
Released into the public domain under The Unlicense.