Agent skill

Bio Spatial Transcriptomics Spatial Statistics

by GPTomics in GPTomics/bioSkills

Detects spatially variable genes, spatial autocorrelation, and cell-type colocalization for spatial transcriptomics using Squidpy with PySAL/esda for local statistics.

MITAuto-check passedData & Analytics

Install Bio Spatial Transcriptomics Spatial Statistics

skills CLI
$ npx skills add GPTomics/bioSkills --skill bio-spatial-transcriptomics-spatial-statistics -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install GPTomics/bioSkills bio-spatial-transcriptomics-spatial-statistics --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/spatial-transcriptomics/spatial-statistics .claude/skills/bio-spatial-transcriptomics-spatial-statistics && rm -rf skills-src

Use ~/.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/

Facts

Skill name
bio-spatial-transcriptomics-spatial-statistics
GitHub stars
1.2k
Used in
1 other repo
Token cost
~4.7k tokens
SKILL.md length
2,094 words
Files
3
Skills in repo
553
Repo updated
First seen
Licence
MIT

At a glance

Detects spatially variable genes, spatial autocorrelation, and cell-type colocalization for spatial transcriptomics using Squidpy with PySAL/esda for local statistics.

  • Separating genes that are spatially variable because of cell-type composition from genes regulated within a cell type
  • SKILL.md covers Version Compatibility, Governing Principle, Choosing an SVG Method and Computing Spatial…, plus 5 more sections
  • Runs Python scripts from its folder; calls pip
  • Choosing the right autocorrelation statistic (global Moran/Geary vs Getis-Ord hot/cold spots vs local LISA and its FDR trap)

What it does

Bio Spatial Transcriptomics Spatial Statistics is an agent skill from GPTomics/bioSkills. Detects spatially variable genes, spatial autocorrelation, and cell-type colocalization for spatial transcriptomics using Squidpy with PySAL/esda for local statistics. Use when choosing an SVG method by its null and scaling (SpatialDE/SPARK GP variance-component vs SPARK-X/nnSVG linear vs Moran/Geary graph autocorrelation); separating genes that are spatially variable because of cell-type composition from genes regulated within a cell type; choosing the right autocorrelation statistic (global Moran/Geary vs…

Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `examples/spatial_autocorr.py` and `usage-guide.md`).

It sits in Data & Analytics, covering Statistics and Bioinformatics. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.

When your agent uses it

  • Separating genes that are spatially variable because of cell-type composition from genes regulated within a cell type
  • Choosing the right autocorrelation statistic (global Moran/Geary vs Getis-Ord hot/cold spots vs local LISA and its FDR trap)
  • Choosing a colocalization null strong enough to defeat the abundance/compartment confound (conditional
  • Toroidal vs the weak Squidpy default permutation)

Example prompts

  • “Use the bio-spatial-transcriptomics-spatial-statistics skill to detect spatially variable genes, spatial autocorrelation, and cell-type…”
  • “/bio-spatial-transcriptomics-spatial-statistics”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bio Spatial Transcriptomics Spatial Statistics loads about 4.7k tokens when it runs. Until then it costs about 195 tokens; SKILL.md has 2,094 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~195
When it runs · the whole SKILL.md, loaded when a task matches
~4.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 2,094 words, ~4,689 tokens.

Download SKILL.mdSave it as .claude/skills/bio-spatial-transcriptomics-spatial-statistics/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
bio-spatial-transcriptomics-spatial-statistics
description
Detects spatially variable genes, spatial autocorrelation, and cell-type colocalization for spatial transcriptomics using Squidpy with PySAL/esda for local statistics. Use when choosing an SVG method by its null and scaling (SpatialDE/SPARK GP variance-component vs SPARK-X/nnSVG linear vs Moran/Geary graph autocorrelation); separating genes that are spatially variable because of cell-type composition from genes regulated within a cell type; choosing the right autocorrelation statistic (global Moran/Geary vs Getis-Ord hot/cold spots vs local LISA and its FDR trap); and choosing a colocalization null strong enough to defeat the abundance/compartment confound (conditional or toroidal vs the weak Squidpy default permutation).
tool_type
python
primary_tool
squidpy

Version Compatibility

Reference examples tested with: squidpy 1.4+, scanpy 1.10+, anndata 0.10+, esda 2.5+, libpysal 4.9+ (SPARK, SPARK-X, and nnSVG are R/Bioconductor packages)

Before using code patterns, verify installed versions match. If versions differ:

  • Python: pip show <package> then help(module.function) to check signatures
  • R: packageVersion('<pkg>') then ?function_name to verify parameters

If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.

Spatial Statistics

"Find spatially variable genes / run Moran's I / test which cell types colocalize" -> Quantify spatial structure in expression or in cell-type arrangement against an explicit null model.

  • Python: squidpy.gr.spatial_autocorr (Moran/Geary), squidpy.gr.nhood_enrichment, squidpy.gr.co_occurrence, esda.Moran_Local/esda.getisord.G_Local (LISA, Getis-Ord)
  • R: SPARK / SPARK-X / nnSVG (SVG), spdep (Moran/Geary/Getis-Ord/LISA)

Governing Principle

Two reframes decide whether a spatial-statistics result means anything. Both are silent failures: the code runs, the numbers look clean, and the interpretation is wrong.

A "spatially variable gene" is not necessarily spatially REGULATED. Moran's I, Geary's C, SPARK-X, and SpatialDE all detect that a gene's expression is spatially autocorrelated -- but a gene that is simply a marker of a spatially clustered cell type scores as "spatially variable" with zero cell-intrinsic spatial regulation, purely because the CELL TYPE is spatially organized. A hepatocyte gene in zonated liver, MAG in white matter, KRT17 in epithelium: all top SVGs, none of them regulated in space. This cell-type-driven signal swamps the genuinely interesting cell-type-INDEPENDENT signal (a gene graded across a niche WITHIN one cell type). Sample-wide SVG lists therefore largely re-derive marker genes and overlap heavily with HVGs -- if the SVG list is roughly the HVG list, the spatial test added almost nothing. The interesting question (within-type spatial regulation) needs cell-type-aware methods (C-SIDE, CTSV, CELINA/Celina), which are themselves unsettled and carry their own false positives. Decision: if the question is "where is tissue organized," sample-wide SVG is correct (the cell-type structure IS the answer); if the question is "which genes are regulated beyond cell identity," sample-wide SVG is the WRONG tool -- test within cell type or regress out composition first.

The null and the graph define the result. Every spatial statistic is computed on a neighbor graph (a weights matrix W) against a null distribution, and both are researcher choices, not properties of the tissue. Change kNN k from 6 to 30 and Moran's I, the enrichment z-scores, and the SVG ranking all move. Change the colocalization null from global label-shuffle to within-compartment and most "A is near B" claims evaporate. SVG methods disagree heavily across the literature precisely because each tests a DIFFERENT null (variance-component-zero vs covariance-independence vs graph-autocorrelation-zero) -- that disagreement is expected, not a bug. The honest workflow names the null, names the graph (cross-ref spatial-neighbors), and reports whether a hit survives a second graph or a stronger null.

Choosing an SVG Method

Goal: Pick a spatially-variable-gene test whose null hypothesis and computational scaling match the platform and the biological question.

Approach: Match GP variance-component methods to small Gaussian/count data, linear-scaling methods to single-cell-resolution data, and treat the SVG list as method-conditional -- cross-method intersection is more trustworthy than any single ranking, though it is small.

MethodNull it testsScalingBest whenFails when
SpatialDE (GP)spatial variance component = 0 at the tested length scaleO(n^3); infeasible past ~1e4 locationsSmall Visium-scale, Gaussian on log-normalizedSparse/low counts violate Gaussian; fixed length-scale grid misses other scales
SPARK (count GLSM)no pattern matching any of 10 fixed kernelsO(n^3)-ish (PQL); slow at large nSmall count data; want Poisson model, not GaussianPattern unlike its 10 kernels; still cell-type-confounded
SPARK-Xexpression covariance independent of location covarianceLINEAR in n and genes1e4-1e6 cells (MERFISH/Xenium/CosMx) needing scalabilityFixed location kernels miss unusual length scales; low power on small focal hotspots
nnSVG (NNGP)spatial variance = 0, with a per-gene length scaleLINEAR in nLength scales genuinely differ across genes; large single-cell dataStill cell-type-confounded; more compute per gene than SPARK-X; needs adequate counts
Moran's I / Geary's Cno autocorrelation on graph WFast (sparse W)Quick screen on an existing neighbor graphSingle fixed scale (the graph); misses multi-focal/small hotspots

There is no uniformly best SVG method; power is pattern-specific (SPARK-X, nnSVG, and Moran's I all have LOW power for genes high in small focal areas). Methods evolve fast -- verify the current benchmark before committing. Threshold on EFFECT SIZE (fraction of spatial variance), not p alone: with thousands of cells, trivial autocorrelation reaches tiny p-values.

Computing Spatial Autocorrelation with Squidpy

Goal: Rank genes by graph-based spatial autocorrelation as a fast SVG screen.

Approach: Build a neighbor graph, run Moran's I (or Geary's C) per gene with a permutation/analytic p-value and FDR, then read effect size before significance.

python
import squidpy as sq
import scanpy as sc

# The graph IS the model: k, coord_type, and units all change the result (see spatial-neighbors)
sq.gr.spatial_neighbors(adata, coord_type='generic', n_neighs=6)   # 6 mimics the Visium hex lattice

# genes=None defaults to highly_variable if present; n_perms adds a permutation null, corr_method applies FDR
sq.gr.spatial_autocorr(adata, mode='moran', n_perms=100, corr_method='fdr_bh')   # statsmodels name, not 'benjamini-hochberg'
moran = adata.uns['moranI']                  # columns: I, pval_norm, pval_norm_fdr_bh, ...

# Threshold on effect size (I) AND FDR, not p alone -- large n makes trivial autocorrelation 'significant'
svg = moran[(moran['I'] > 0.1) & (moran['pval_norm_fdr_bh'] < 0.05)].sort_values('I', ascending=False)

A top-ranked SVG here is a hypothesis about spatial structure, NOT evidence of spatial regulation. Before interpreting, compare the SVG list to the HVG list: the overlap is cell-type marker genes; the SVG-not-HVG subset (modest-amplitude gradients) is where spatial information actually lives.

Choosing an Autocorrelation Statistic

Goal: Match the statistic to the spatial question -- "is this gene clustered" is a different question from "where is it HIGH" and from "is THIS region a cluster."

Approach: Use a global statistic for one tissue-wide number, Getis-Ord when the sign (hot vs cold) matters, and local LISA for non-stationary tissue -- but pay the local multiple-testing tax correctly.

StatisticGlobal / localHot vs cold?Use when
Moran's IglobalNO (clustering of like values only)One number: is this gene spatially structured across the whole section
Geary's CglobalNOSame as Moran but more sensitive to LOCAL/short-range differences; disagreement with Moran is informative
Getis-Ord Gi*localYES -- separates high-clusters from low-clusters"Where is this gene HIGH" -- hot/cold spot mapping
Local Moran / LISAlocalpartial (HH/LL/HL/LH quadrants)Non-stationary tissue: per-location clusters and spatial outliers

Moran's I and Geary's C cannot tell a hot spot from a cold spot -- both flag "similar values cluster" regardless of high or low. Choosing Moran when the question is "where is this gene HIGH" is a category error; use Getis-Ord Gi*. A non-significant GLOBAL Moran's I does NOT mean "no spatial structure": over heterogeneous tissue, positive autocorrelation in one region cancels negative in another, so use local statistics for non-stationary sections.

python
from esda.getisord import G_Local
from esda.moran import Moran_Local
from libpysal.weights import KNN

coords = adata.obsm['spatial']
w = KNN.from_array(coords, k=6)
w.transform = 'r'                            # row-standardized; changes the value AND its variance vs binary W

gene = adata[:, 'GENE1'].X.toarray().ravel()
gi = G_Local(gene, w, transform='B', star=True, permutations=999)   # star=True -> Gi* (includes self); binary weights for Getis-Ord
lisa = Moran_Local(gene, w, permutations=999)            # conditional-permutation local null
adata.obs['GENE1_hotspot'] = gi.Zs                       # positive Z = hot spot, negative = cold spot
adata.obs['GENE1_lisa_q'] = lisa.q                       # 1=HH, 2=LH, 3=LL, 4=HL

Local statistics carry a DOUBLE trap. There are n tests (one per location), so uncorrected LISA/Gi* maps are mostly false positives -- FDR is mandatory, and Anselin recommends stricter base cutoffs (0.01/0.005/0.001), not 0.05. Worse, the local statistics are themselves spatially autocorrelated (adjacent locations share neighbors, so adjacent I_i values are correlated), which violates the independence assumption of standard BH-FDR; the effective number of tests is far below n. Conditional permutation gives the correct local null but does not fix the cross-location dependence. Treat the cluster map as exploratory, not a set of independent discoveries.

Show full SKILL.md (977 more words)Show less

Testing Cell-Type Colocalization

Goal: Decide whether two cell types are SPECIFICALLY associated in space, not merely both abundant or both in the same compartment.

Approach: Choose a permutation null strong enough to defeat the abundance/compartment confound; the Squidpy default answers only the weak question, and a co-occurrence distance profile is more informative than a single z-score.

Null modelWhat it permutesControls forMisses
Global label permutation (Squidpy nhood_enrichment default)all labels over all positionsgraph topology, marginal countstissue compartmentalization -- two abundant co-compartment types pass trivially
Conditional / within-compartment permutationlabels within a region onlyshared-compartment forcingcross-compartment questions; the region choice is itself a degree of freedom
Toroidal shiftwhole label field translated (wrapped)each type's first-order density patternanisotropy; boundary realism (wrapping a bounded tissue is artificial)
Grid-tile shuffle across scales (CRAWDAD)labels within tiles of size sstructure above scale s -- isolates colocalization AT scale swithin-tile structure below s

The single most common error in spatial-omics papers is reading a positive nhood_enrichment z-score as a specific A-B interaction. Under the weak global-permutation null it usually reflects co-compartmentalization plus abundance: two stromal populations, or tumor plus tumor-associated macrophages both in the tumor bed, pass trivially. A specific-affinity claim must SURVIVE a stronger null (conditional/within-compartment, toroidal shift preserving each type's density, or CRAWDAD's scale-explicit tiles). Rare-type enrichment is the least trustworthy: few edges give high-variance, often spuriously large |z| -- be most skeptical exactly where the biology is most exciting (a rare type near the tumor).

For clustering as a function of distance rather than a single graph z, Ripley's K/L (squidpy.gr.ripley, mode 'L') counts within-cluster neighbors within radius r against a complete-spatial-randomness expectation, so it reads as clustering vs dispersion ACROSS scale per cell type (squidpy computes the univariate L per cluster; a true bivariate cross-K answering "are A and B closer than chance, at what radius" needs a dedicated point-process tool such as spatstat). Its assumptions are the geostatistics ones tissue violates: a bounded, holey, non-stationary window. EDGE CORRECTION is mandatory and usually omitted -- without it, counts near the tissue boundary or a necrotic hole are biased DOWN and read as false depletion, so an ROI with gaps needs an edge-corrected estimator (or restrict analysis to the interior).

python
sq.gr.spatial_neighbors(adata, coord_type='generic', delaunay=True)   # nhood_enrichment reuses this stored graph

# Global label-permutation null -- the WEAK question: more adjacent than complete spatial randomness?
sq.gr.nhood_enrichment(adata, cluster_key='cell_type', n_perms=1000)
z = adata.uns['cell_type_nhood_enrichment']['zscore']

# co_occurrence gives a DISTANCE PROFILE (at what scale colocalization appears/vanishes), unlike a single z
sq.gr.co_occurrence(adata, cluster_key='cell_type')

Cellular Neighborhoods (Schurch/Nolan: cluster per-cell windows of neighbor composition) have NO inferential null at all -- they are descriptive k-means clusters whose number and window size are user knobs. They are useful summaries but routinely over-read as tested findings; the number of neighborhoods is chosen, not discovered, and identity shifts with window size. Test them downstream (neighborhood composition vs outcome), do not report them as significant in themselves.

Common Errors

SymptomCauseFix
Top SVGs are all known cell-type markers; SVG list ~= HVG listSample-wide SVG re-derives markers of spatially clustered cell types (cell-type-driven, not regulated)Ask within-type: regress out cell-type composition or use ctSVG (C-SIDE/CTSV/CELINA); report the SVG-not-HVG subset
Moran's I finds "clustering" but cannot locate where the gene is HIGHMoran/Geary detect clustering of like values, blind to high vs lowUse Getis-Ord Gi* for hot/cold spots
LISA/Gi* map is mostly "significant"; thousands of hitsn tests, AND local statistics are spatially autocorrelated so naive BH-FDR is invalidFDR with stricter cutoffs (0.001); conditional permutation; treat map as exploratory, not independent discoveries
Confident "cell type A interacts with B" that vanishes on a second lookDefault nhood_enrichment global-permutation null only beats complete randomness; abundant co-compartment types pass triviallyDemand survival under a conditional/within-compartment or toroidal null; report abundances
Global Moran's I near zero but tissue is clearly structuredNon-stationarity: opposite-sign local regions cancel in one global numberUse local statistics (LISA/Gi*); stratify by region
SVG ranking changes completely between two runs/toolsDifferent graph (k, Delaunay vs kNN) or different null -- methods test different hypothesesName the graph and null; report graph-robust hits; expect cross-method intersection to be small
Radius/length-scale statistic gives nonsenseCoordinates in pixels/array units, parameter in microns; Visium array coords are not micronsConvert to microns via scale factors before any distance parameter (see spatial-neighbors)
Rare cell type shows a huge enrichment z-scoreFew edges -> high-variance estimate -> largez
  • spatial-neighbors - builds the graph W that every statistic here inherits; the choice propagates
  • spatial-domains - region-level structure; a domain is not a colocalization result
  • spatial-communication - ligand-receptor in space; the spillover/abundance confounds recur there
  • single-cell/markers-annotation - cell-type labels feeding colocalization, and the marker overlap that confounds SVG

References

  • Svensson V, Teichmann SA, Stegle O (2018) SpatialDE: identification of spatially variable genes. Nature Methods 15(5):343-346. DOI 10.1038/nmeth.4636
  • Sun S, Zhu J, Zhou X (2020) Statistical analysis of spatial expression patterns for spatially resolved transcriptomic studies (SPARK). Nature Methods 17(2):193-200. DOI 10.1038/s41592-019-0701-7
  • Zhu J, Sun S, Zhou X (2021) SPARK-X: non-parametric modeling enables scalable and robust detection of spatial expression patterns for large spatial transcriptomic studies. Genome Biology 22:184. DOI 10.1186/s13059-021-02404-0
  • Weber LM, Saha A, Datta A, Hansen KD, Hicks SC (2023) nnSVG for the scalable identification of spatially variable genes using nearest-neighbor Gaussian processes. Nature Communications 14:4059. DOI 10.1038/s41467-023-39748-z
  • Palla G, Spitzer H, Klein M, et al. (2022) Squidpy: a scalable framework for spatial omics analysis. Nature Methods 19(2):171-178. DOI 10.1038/s41592-021-01358-2
  • Schurch CM, Bhate SS, Barlow GL, et al. (2020) Coordinated cellular neighborhoods orchestrate antitumoral immunity at the colorectal cancer invasive front. Cell 182(5):1341-1359. DOI 10.1016/j.cell.2020.07.005
  • Dos Santos Peixoto R, Miller BF, Brusko MA, et al. (2025) Characterizing cell-type spatial relationships across length scales in spatially resolved omics data (CRAWDAD). Nature Communications 16:350. DOI 10.1038/s41467-024-55700-1
  • Moran PAP (1950) Notes on continuous stochastic phenomena. Biometrika 37(1/2):17-23. DOI 10.2307/2332142
  • Geary RC (1954) The contiguity ratio and statistical mapping. The Incorporated Statistician 5(3):115-145. DOI 10.2307/2986645
  • Getis A, Ord JK (1992) The analysis of spatial association by use of distance statistics. Geographical Analysis 24(3):189-206. DOI 10.1111/j.1538-4632.1992.tb00261.x
  • Anselin L (1995) Local indicators of spatial association -- LISA. Geographical Analysis 27(2):93-115. DOI 10.1111/j.1538-4632.1995.tb00338.x

© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in spatial-transcriptomics/spatial-statistics of GPTomics/bioSkills.

  • SKILL.md
  • examples/spatial_autocorr.py
  • usage-guide.md

Open the folder on GitHubat commit d91ed3d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Bio Spatial Transcriptomics 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.

Bio Spatial Transcriptomics Spatial Statistics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bio Spatial Transcriptomics Spatial Statistics this skillGPTomics/bioSkills1.2k1 repos~4.7kAutomated safety check: PassMIT
Gwas Databasedavila7/claude-code-templates32k10 repos~5kAutomated safety check: PassMIT
Biopython Phyloaipoch/medical-research-skills2k—~1.8kAutomated safety check: PassMIT
Scikit Bioaipoch/medical-research-skills2k—~1.4kAutomated safety check: PassMIT
PyDESeq2 Differential Expressiondavila7/claude-code-templates32k12 repos~4kAutomated safety check: PassMIT
Bio Sequence Statisticsmajiayu000/claude-skill-registry6662 repos~2.1kAutomated safety check: PassMIT

Similar skills

  • Gwas Database

    davila7/claude-code-templates

    Query NHGRI-EBI GWAS Catalog for SNP-trait associations. An agent skill from davila7/claude-code-templates.

    32k GitHub starsUsed in 10 repos~5k tokens
    Data & AnalyticsAuto-check passed
  • Biopython Phylo

    aipoch/medical-research-skills

    Use Bio.Phylo to read/write phylogenetic trees and perform visualization and statistics; use when tree parsing/conversion, pruning/rerooting, distance calculation, or plotting is required.

    2k GitHub stars~1.8k tokensUpdated 20 days ago
    Data & AnalyticsAuto-check passed
  • Scikit Bio

    aipoch/medical-research-skills

    A Python bioinformatics toolkit for sequence, phylogeny, and microbiome/community-ecology analysis; use it when you need to compute diversity/ordination/statistics from biological data and standard…

    2k GitHub stars~1.4k tokensUpdated 20 days ago
    Data & AnalyticsAuto-check passed
  • 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.

    32k GitHub starsUsed in 12 repos~4k tokens
    Research & ScienceAuto-check passed
  • Bio Sequence Statistics

    majiayu000/claude-skill-registry

    Calculate sequence statistics (N50, length distribution, GC content, summary reports) using Biopython.

    666 GitHub starsUsed in 2 repos~2.1k tokens
    Data & AnalyticsAuto-check passed
  • Bio Spatial Transcriptomics Spatial Statistics

    majiayu000/claude-skill-registry

    Compute spatial statistics for spatial transcriptomics data using Squidpy.

    666 GitHub starsUsed in 2 repos~1.4k tokens
    Data & AnalyticsAuto-check passed

More from GPTomics/bioSkills

All 553 skills in this repo
  • Bio Alignment Io

    GPTomics/bioSkills

    Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.

    1.2k GitHub starsUsed in 3 repos~4.9k tokens
    Auto-check passed
  • bioSkills Installer

    GPTomics/bioSkills

    Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.

    1.2k GitHub starsUsed in 1 repo~789 tokens
    Auto-check passed
  • Bio Write Sequences

    GPTomics/bioSkills

    Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.

    1.2k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Amplicon Primer Clipping

    GPTomics/bioSkills

    Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.

    1.2k GitHub starsUsed in 2 repos~2.2k tokens
    Auto-check passed
  • Bio Alignment Indexing

    GPTomics/bioSkills

    Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.

    1.2k GitHub starsUsed in 2 repos~2.4k tokens
    Auto-check passed
  • Bio Alignment Sorting

    GPTomics/bioSkills

    Sort alignment files by coordinate or read name using samtools and pysam.

    1.2k GitHub starsUsed in 2 repos~2.6k tokens
    Auto-check passed

Questions about Bio Spatial Transcriptomics Spatial Statistics

What does Bio Spatial Transcriptomics Spatial Statistics do?

Detects spatially variable genes, spatial autocorrelation, and cell-type colocalization for spatial transcriptomics using Squidpy with PySAL/esda for local statistics. Bio Spatial Transcriptomics Spatial Statistics is an agent skill from GPTomics/bioSkills. Detects spatially variable genes, spatial autocorrelation, and cell-type colocalization for spatial transcriptomics using Squidpy with PySAL/esda for local statistics.

When should I use Bio Spatial Transcriptomics Spatial Statistics?

Bio Spatial Transcriptomics Spatial Statistics fits situations like: separating genes that are spatially variable because of cell-type composition from genes regulated within a cell type; choosing the right autocorrelation statistic (global Moran/Geary vs Getis-Ord hot/cold spots vs local LISA and its FDR trap); choosing a colocalization null strong enough to defeat the abundance/compartment confound (conditional; toroidal vs the weak Squidpy default permutation).

How do I install Bio Spatial Transcriptomics Spatial Statistics in Claude Code?

Run `npx skills add GPTomics/bioSkills --skill bio-spatial-transcriptomics-spatial-statistics -a claude-code`. Or copy the skill folder (spatial-transcriptomics/spatial-statistics in GPTomics/bioSkills) into .claude/skills/bio-spatial-transcriptomics-spatial-statistics in your project. Claude Code loads it when a task matches its description.

How do I install Bio Spatial Transcriptomics Spatial Statistics in Codex?

Run `npx skills add GPTomics/bioSkills --skill bio-spatial-transcriptomics-spatial-statistics -a codex`. Or copy the skill folder (spatial-transcriptomics/spatial-statistics in GPTomics/bioSkills) into .agents/skills/bio-spatial-transcriptomics-spatial-statistics in your project. Codex loads it when a task matches its description.

Can I use Bio Spatial Transcriptomics Spatial Statistics in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-spatial-transcriptomics-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/bio-spatial-transcriptomics-spatial-statistics, .gemini/skills/bio-spatial-transcriptomics-spatial-statistics, .github/skills/bio-spatial-transcriptomics-spatial-statistics and .opencode/skills/bio-spatial-transcriptomics-spatial-statistics in your project.

What does Bio Spatial Transcriptomics Spatial Statistics need to run?

Going by SKILL.md and its folder, Bio Spatial Transcriptomics Spatial Statistics needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3.

Does Bio Spatial Transcriptomics Spatial Statistics access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Bio Spatial Transcriptomics Spatial Statistics safe to install?

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.

What licence does Bio Spatial Transcriptomics Spatial Statistics use?

Bio Spatial Transcriptomics Spatial Statistics is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bio Spatial Transcriptomics Spatial Statistics use?

About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bio Spatial Transcriptomics Spatial Statistics?

Skills that share tags, products or a category with Bio Spatial Transcriptomics Spatial Statistics: Gwas Database (davila7/claude-code-templates, 32k stars), Biopython Phylo (aipoch/medical-research-skills, 2k stars), Scikit Bio (aipoch/medical-research-skills, 2k stars) and PyDESeq2 Differential Expression (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bio Spatial Transcriptomics Spatial Statistics?

GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,215 GitHub stars. The repository holds 553 skills in this directory. The repository was last updated on August 15, 2026.

Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.