PyDESeq2 Differential Expression
davila7/claude-code-templates
Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.
Load when running spatial autocorrelation / hotspot / co-occurrence / neighbourhood-enrichment / Ripley K stats on a clustered spatial AnnData via squidpy.
$ npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TianGzlab/OmicsClaw spatial-statistics --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spatial/spatial-statistics .claude/skills/spatial-statistics && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "spatial-statistics" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/spatial/spatial-statistics into .claude/skills/spatial-statistics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spatial-statistics", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TianGzlab/OmicsClaw/tree/main/skills/spatial/spatial-statisticsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TianGzlab/OmicsClaw spatial-statistics --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spatial/spatial-statistics .agents/skills/spatial-statistics && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spatial-statistics" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/spatial/spatial-statistics into .agents/skills/spatial-statistics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spatial-statistics", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TianGzlab/OmicsClaw spatial-statistics --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spatial/spatial-statistics .cursor/skills/spatial-statistics && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "spatial-statistics" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/spatial/spatial-statistics into .cursor/skills/spatial-statistics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spatial-statistics", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TianGzlab/OmicsClaw.git --path skills/spatial/spatial-statistics--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TianGzlab/OmicsClaw spatial-statistics --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spatial/spatial-statistics .gemini/skills/spatial-statistics && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "spatial-statistics" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/spatial/spatial-statistics into .gemini/skills/spatial-statistics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spatial-statistics", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TianGzlab/OmicsClaw spatial-statisticsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spatial/spatial-statistics .github/skills/spatial-statistics && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "spatial-statistics" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/spatial/spatial-statistics into .github/skills/spatial-statistics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spatial-statistics", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TianGzlab/OmicsClaw spatial-statistics --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spatial/spatial-statistics .opencode/skills/spatial-statistics && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "spatial-statistics" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/spatial/spatial-statistics into .opencode/skills/spatial-statistics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spatial-statistics", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
spatial-statisticsLoad when running spatial autocorrelation / hotspot / co-occurrence / neighbourhood-enrichment / Ripley K stats on a clustered spatial AnnData via squidpy.
Spatial Statistics is an agent skill from TianGzlab/OmicsClaw. Load when running spatial autocorrelation / hotspot / co-occurrence / neighbourhood-enrichment / Ripley K stats on a clustered spatial AnnData via squidpy. Skip when ranking spatially variable genes (use spatial-genes); tissue domain detection (use spatial-domains).
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including reference files (for example `r_visualization/README.md`, `references/methodology.md` and `references/output_contract.md`).
It sits in Data & Analytics, covering Statistics. It works with AnnData. The repository describes itself as: Conversational & memory-enabled AI research partner for multi-omics analysis. CLI + Desktop App (installers in Releases). From biological idea to full research paper. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6fbd79f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python and R), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Spatial Statistics loads about 2.1k tokens when it runs, and up to ~7k if it reads all its reference files. Until then it costs about 71 tokens; SKILL.md has 485 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TianGzlab/OmicsClaw at commit 6fbd79f, republished under its MIT licence (© TianGzlab). 485 words, ~2,054 tokens.
.claude/skills/spatial-statistics/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.The user has a clustered spatial AnnData (obs[--cluster-key] for
cluster-aware analyses; obsm["spatial"] populated) and wants a
specific spatial-statistics analysis. Pick --analysis-type from
VALID_ANALYSIS_TYPES:
moran / geary — global spatial autocorrelation per gene.local_moran — per-spot LISA + GeoDa quadrants (--local-moran-geoda-quads).getis_ord — per-spot hotspot Z-scores.bivariate_moran — exactly two genes (--genes geneA,geneB).neighborhood_enrichment — squidpy NES between cluster pairs.ripley — Ripley K / L / G / F (--ripley-mode, --ripley-metric).co_occurrence — pairwise label co-occurrence at distance bins
(--coocc-interval, --coocc-n-splits).spatial_centrality — graph-centrality per spot.For per-gene SVG ranking use spatial-genes; for tissue-domain
detection use spatial-domains.
<!-- AUTO-GENERATED from skill.yaml (interface) — do not edit by hand. Regenerate: python scripts/generate_skill_md.py <skill_dir> -->
Inputs
.h5adX normalised, PCA/neighbours present)obsm: spatialOutputs
tables/analysis_results.csvtables/analysis_summary.csvtables/bivariate_moran_summary.csvtables/centrality_scores.csvtables/cluster_summary.csvtables/cooccurrence_curves.csvtables/cooccurrence_pairs.csvtables/neighborhood_counts.csvtables/neighborhood_pairs.csvtables/neighborhood_zscore.csvtables/network_per_cluster.csvtables/network_summary.csvtables/pair_summary.csvtables/per_cluster_metrics.csvtables/ripley_cluster_summary.csvtables/ripley_curves.csvtables/spot_statistics.csvtables/top_results.csvfigures/bivariate_moran_scatter.pngfigures/bivariate_moran_spatial.pngfigures/centrality_scores.pngfigures/centrality_scores_barplot.pngfigures/co_occurrence_curves.pngfigures/co_occurrence_distribution.pngfigures/co_occurrence_top_pairs.pngfigures/geary_pvalue_distribution.pngfigures/geary_ranking.pngfigures/geary_score_vs_significance.pngfigures/moran_pvalue_distribution.pngfigures/moran_ranking.pngfigures/moran_score_vs_significance.pngfigures/neighborhood_enrichment_heatmap.pngfigures/neighborhood_top_pairs.pngfigures/neighborhood_zscore_distribution.pngfigures/network_degree_histogram.pngfigures/network_per_cluster_degree.pngfigures/ripley_cluster_max_stat.pngfigures/ripley_curves.pngfigures/ripley_stat_distribution.pngprocessed.h5adreport.mdresult.jsonsaves_h5ad) — adds obs: local_moran_<gene>, local_moran_pval_<gene>, local_moran_q_<gene>, getis_ord_<gene>, getis_ord_pval_<gene>--input) or chain through spatial-preprocess --demo via subprocess (spatial_statistics.py:1499-1515).parser.error validates --analysis-type ∈ VALID_ANALYSIS_TYPES; per-analysis numeric ranges (lines :1558-1601).--cluster-key if unset; auto-leiden if no cluster column exists (with size guard at :1546).--stats-n-neighs / --stats-n-rings / --stats-n-perms.processed.h5ad, report.md, result.json.parser.error (exit code 2). spatial_statistics.py:1530 for missing --input; :1546 for too-small dataset to auto-leiden; :1558 for invalid --analysis-type; :1560-1601 for numeric / multi-value flag validation. Wrappers expecting ValueError need to catch exit-2.bivariate_moran requires exactly TWO genes. spatial_statistics.py:1601 raises parser.error("--analysis-type bivariate_moran requires exactly two genes via --genes geneA,geneB"). Pass them comma-separated, no spaces.spatial-preprocess via subprocess. spatial_statistics.py:1499 raises FileNotFoundError(f"spatial-preprocess not found at {preprocess_script}") if the sibling skill is missing; :1510 raises RuntimeError("spatial-preprocess --demo failed (exit ...)") on chained failure; :1515 raises FileNotFoundError(f"Expected {processed}") when the demo output isn't where expected.--cluster-key auto-leiden has a size guard. spatial_statistics.py:1546 raises parser.error("Dataset is too small to auto-compute leiden clusters.") when the auto-fallback can't run. Pass --cluster-key <existing-column> for small datasets.local_moran writes n_significant_spots; getis_ord writes n_hotspots. spatial_statistics.py:555 documents the value-column divergence. Downstream tools reading "spatially significant cell count" need to branch on --analysis-type.neighborhood_enrichment consumes <cluster_key>_nhood_enrichment from uns. Computed lazily within squidpy; if you re-run with a different --cluster-key, the previous uns key remains and won't be reused for the new cluster column. Clean adata.uns between runs or expect stale keys.spatial_centrality is graph-only. It produces per-spot centrality without any cluster-key dependency — useful when --cluster-key is unavailable.# Demo (chained from spatial-preprocess --demo)
python omicsclaw.py run spatial-statistics --demo --analysis-type moran --output /tmp/spatial_stats_demo
# Global Moran's I on a clustered AnnData
python omicsclaw.py run spatial-statistics \
--input clustered.h5ad --output results/ \
--analysis-type moran --cluster-key spatial_domain --stats-n-perms 100
# Local Moran with GeoDa quadrants
python omicsclaw.py run spatial-statistics \
--input clustered.h5ad --output results/ \
--analysis-type local_moran --local-moran-geoda-quads --n-top-genes 20
# Neighbourhood enrichment between clusters
python omicsclaw.py run spatial-statistics \
--input clustered.h5ad --output results/ \
--analysis-type neighborhood_enrichment --cluster-key spatial_domain
# Ripley K on a labelled object
python omicsclaw.py run spatial-statistics \
--input clustered.h5ad --output results/ \
--analysis-type ripley --ripley-mode K --ripley-n-simulations 100 --ripley-n-steps 50
# Co-occurrence at increasing distance bins
python omicsclaw.py run spatial-statistics \
--input clustered.h5ad --output results/ \
--analysis-type co_occurrence --cluster-key cell_type --coocc-interval 30 --coocc-n-splits 5
# Bivariate Moran between two genes
python omicsclaw.py run spatial-statistics \
--input clustered.h5ad --output results/ \
--analysis-type bivariate_moran --genes EGFR,BRCA1references/parameters.md — every CLI flag, per-analysis numeric rangesreferences/methodology.md — when each analysis-type wins; squidpy mappingreferences/output_contract.md — per-analysis table / obs / uns schemaspatial-preprocess (upstream — produces obsm["spatial"] + cluster column), spatial-domains / spatial-annotate (upstream — produce obs["spatial_domain"] / cell-type labels for --cluster-key), spatial-genes (parallel — per-gene SVG ranking, NOT statistics on labels), spatial-de (downstream — DE between clusters identified by neighbourhood-enrichment hotspots)© TianGzlab, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (references) in skills/spatial/spatial-statistics of TianGzlab/OmicsClaw.
Open the folder on GitHubat commit 6fbd79f
Spatial Statistics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Spatial Statistics this skillTianGzlab/OmicsClaw | 161 | — | ~2.1k | Automated safety check: Pass | MIT | |
| PyDESeq2 Differential Expressiondavila7/claude-code-templates | 32k | 12 repos | ~4k | Automated safety check: Pass | MIT | |
| Multiomics StatisticsVectorSpaceLab/AREX-Skill | 328 | — | ~1k | Automated safety check: Pass | GPL-3.0 | |
| Statistical Analysisspacering-net/codeg | 3.8k | 3 repos | ~5k | Automated safety check: Pass | MIT | |
| StatsmodelszLanqing/codex-claude-academic-skills | 4.6k | 16 repos | ~4.9k | Automated safety check: Pass | BSD-3-Clause | |
| AI Daily DigestvigorX777/ai-daily-digest | 1.6k | — | ~1.3k | Automated safety check: Pass | None |
davila7/claude-code-templates
Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.
VectorSpaceLab/AREX-Skill
A skill your agent uses for OmicVerse bulk RNA-seq, enrichment/signature scoring, metabolomics, proteomics, microbiome, and statistical table workflows.
spacering-net/codeg
Guided statistical analysis for research data - test selection, assumption checking, effect sizes, power analysis, Bayesian alternatives, and APA-formatted reporting.
zLanqing/codex-claude-academic-skills
Statistical models library for Python. An agent skill from zLanqing/codex-claude-academic-skills.
vigorX777/ai-daily-digest
Fetches RSS feeds from 90 top Hacker News blogs (curated by Karpathy), uses AI to score and filter articles, and generates a daily digest in Markdown with Chinese-translated titles, category…
spacering-net/codeg
Sample-size and statistical power calculations for planning studies.
TianGzlab/OmicsClaw
Load when removing batch effects from a multi-cohort bulk RNA-seq dataset using ComBat (R or Python implementation).
TianGzlab/OmicsClaw
Load when discovering gene co-expression modules and hub genes in a bulk RNA-seq cohort via WGCNA-style soft-thresholded networks.
TianGzlab/OmicsClaw
Load when comparing gene expression between two conditions in bulk RNA-seq count data.
TianGzlab/OmicsClaw
Load when estimating cell-type proportions in bulk RNA-seq samples from a single-cell or signature-matrix reference.
TianGzlab/OmicsClaw
Load when running pathway / GO term enrichment on a bulk RNA-seq DE result list.
TianGzlab/OmicsClaw
Load when converting gene identifiers between Ensembl, Entrez, and HGNC symbol in a bulk RNA-seq count matrix.
Works with
Categories
Load when running spatial autocorrelation / hotspot / co-occurrence / neighbourhood-enrichment / Ripley K stats on a clustered spatial AnnData via squidpy. Spatial Statistics is an agent skill from TianGzlab/OmicsClaw. Load when running spatial autocorrelation / hotspot / co-occurrence / neighbourhood-enrichment / Ripley K stats on a clustered spatial AnnData via squidpy.
Spatial Statistics fits situations like: tasks that involve Statistics.
Run `npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a claude-code`. Or copy the skill folder (skills/spatial/spatial-statistics in TianGzlab/OmicsClaw) into .claude/skills/spatial-statistics in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a codex`. Or copy the skill folder (skills/spatial/spatial-statistics in TianGzlab/OmicsClaw) into .agents/skills/spatial-statistics in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TianGzlab/OmicsClaw --skill spatial-statistics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spatial-statistics, .gemini/skills/spatial-statistics, .github/skills/spatial-statistics and .opencode/skills/spatial-statistics in your project.
Going by SKILL.md and its folder, Spatial Statistics needs Python and R for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Spatial Statistics is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Spatial Statistics: PyDESeq2 Differential Expression (davila7/claude-code-templates, 32k stars), Multiomics Statistics (VectorSpaceLab/AREX-Skill, 328 stars), Statistical Analysis (spacering-net/codeg, 3.8k stars) and Statsmodels (zLanqing/codex-claude-academic-skills, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TianGzlab (a GitHub organization) maintains it in TianGzlab/OmicsClaw, which has 161 GitHub stars. The repository holds 95 skills in this directory. The repository was last updated on July 28, 2026.
Source: TianGzlab/OmicsClaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.