sciagent-skill-creator
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md…
Deep generative models for single-cell omics: probabilistic batch correction (scVI), semi-supervised annotation (scANVI), CITE-seq RNA+protein (totalVI), transfer learning (scARCHES), and DE with uncertainty. Unified setup→train→extract API on AnnData. Use
Claude Code
$ npx -y skills add jaechang-hits/SciAgent-Skills --skill scvi-tools-single-cell --agent claude-code
Codex
$ npx skills add jaechang-hits/SciAgent-Skills --skill scvi-tools-single-cell -a codex -y
Cursor
$ npx skills add jaechang-hits/SciAgent-Skills --skill scvi-tools-single-cell -a cursor -y
Gemini CLI
$ npx skills add jaechang-hits/SciAgent-Skills --skill scvi-tools-single-cell -a gemini-cli -y
GitHub Copilot
$ npx skills add jaechang-hits/SciAgent-Skills --skill scvi-tools-single-cell -a github-copilot -y
OpenCode
$ npx skills add jaechang-hits/SciAgent-Skills --skill scvi-tools-single-cell -a opencode -y
Windsurf
$ npx skills add jaechang-hits/SciAgent-Skills --skill scvi-tools-single-cell -a windsurf -y
name: "scvi-tools-single-cell" description: "Deep generative models for single-cell omics: probabilistic batch correction (scVI), semi-supervised annotation (scANVI), CITE-seq RNA+protein (totalVI), transfer learning (scARCHES), and DE with uncertainty. Unified setup→train→extract API on AnnData. Use harmony-batch-correction for fast linear correction without deep learning; muon for multi-modal MuData workflows." license: "BSD-3-Clause"
scvi-tools is a probabilistic modeling framework for single-cell genomics built on PyTorch. It implements variational autoencoders (VAEs) that learn low-dimensional latent representations of cells while explicitly modeling batch effects, count noise distributions, and multi-modal data. All models share a unified API: `setup_anndata()` to register data, instantiate the model, `train()`, then extract latent representations, normalized expression, or differential expression results. Models operate on raw count data in AnnData format and return statistically grounded outputs with uncertainty estimates.
pip install scvi-tools scanpy # GPU acceleration (recommended for >50k cells) pip install "scvi-tools[cuda12]" # or scvi-tools[cuda11]
Settle these with the user before writing any analysis code.
decisions:
- id: D1
param: modelChoice
kind: required
source: user
ask: "What should the model do - integrate and denoise unlabelled cells, transfer labels from a reference, or jointly model protein and RNA?"
default: null
- id: D2
param: batchKey
kind: required
source: data
ask: "Which variable separates samples that were processed apart, so the model can hold it out of the latent space?"
default: null
- id: D3
param: rawCountsLayer
kind: required
source: data
ask: "Which layer holds raw integer counts? These models require counts, not normalized values."
default: null
- id: D4
param: latentDimensions
kind: required
source: user
ask: "How many latent dimensions should the cell state be compressed into?"
default: 10
- id: D5
param: geneLikelihood
kind: optional
source: data
ask: "Which count distribution fits this assay - zero-inflated, plain negative binomial, or Poisson?"
default: "zero-inflated negative binomial"
- id: D6
param: trainingSchedule
kind: optional_conditional
source: data
ask: "How long should training run, and should it stop early when validation loss plateaus?"
default: "400 epochs, no early stopping"
- id: D7
param: deEffectSizeThreshold
kind: optional
source: user
ask: "What fold change should the differential expression test treat as the null it must beat?"
default: 0.25
- id: D8
param: networkArchitecture
kind: never_ask
source: user
reason: "Layer count and hidden width are capacity settings whose defaults are validated across datasets; changing them is a methods decision the user has not raised"
default: "1 layer, 128 hidden units"D3 is the failure that looks like success: handing log-normalized values to a count model trains it on the wrong noise structure, and it still returns a latent space, a UMAP and a cluster set. D2 decides what the latent space is allowed to forget, so a batch variable confounded with the condition removes the effect being studied.
Minimal scVI batch integration on a built-in example dataset:
import scvi
import scanpy as sc
# Load example data with batch labels
adata = scvi.data.heart_cell_atlas_subsampled()
# Preprocessing: filter genes, select HVGs (subset to save training time)
sc.pp.filter_genes(adata, min_counts=3)
adata.layers["counts"] = adata.X.copy() # preserve raw counts
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key="cell_source", subset=True)
# Register data, train, extract
scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="cell_source")
model = scvi.model.SCVI(adata, n_latent=30)
model.train(max_epochs=200, early_stopping=True)
adata.obsm["X_scVI"] = model.get_latent_representation()
sc.pp.neighbors(adata, use_rep="X_scVI")
sc.tl.umap(adata)
sc.tl.leiden(adata, resolution=0.5)
sc.pl.umap(adata, color=["cell_source", "leiden"])
print(f"Latent shape: {adata.obsm['X_scVITurn your AI coding agent into a life sciences expert — 199 bioinformatics skills for Claude Code covering RNA-seq, single-cell analysis, genomics, proteomics, drug discovery, and more. Boosted BixBench from 65% to 92%. Open source.
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md…
Bayesian modeling with PyMC 5: priors, likelihood, NUTS/ADVI sampling, diagnostics (R-hat, ESS), LOO/WAIC comparison, prediction.…
Time-to-event modeling with scikit-survival: Cox PH (elastic net), Random Survival Forests, Boosting, SVMs for censored data.…
Guided statistical analysis: test choice, assumption checks, effect sizes, power, APA reporting. Pick tests, verify assumptions,…
Python statistical modeling: regression (OLS, WLS, GLM), discrete (Logit, Poisson, NegBin), time series (ARIMA, SARIMAX, VAR),…
DL cell/nucleus segmentation for fluorescence and brightfield microscopy. Pre-trained models (cyto3, nuclei, tissuenet) and a…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.