[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DTMJ6WBQ006AF100S7QTQ1":3,"skill-same:01M6DTMJ6WBQ006AF100S7QTQ1":118},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M6DTMJ6WBQ006AF100S7QTQ1","spatial-domains",null,"Load when detecting tissue domains \u002F niches on a preprocessed spatial AnnData via Leiden \u002F Louvain (spatial-weighted) or graph-neural backends (SpaGCN \u002F STAGATE \u002F GraphST \u002F BANKSY \u002F CellCharter). Skip when ranking spatially variable genes (use spatial-genes); spot-level cell-type annotation (use spatial-annotate).","TianGzlab\u002FOmicsClaw","TianGzlab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F150978281?v=4","01M6DT9WNJJ470ADHPSMFAA02Y","01M6DT9WSN09C5K65GB6RK18R9",161,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"spatial domains","Spatial","louvain","cellcharter","banksy","graphst","stagate","spagcn","niches","domains","via","use","leiden","identification","ranking","type","spot","domain","annotate","Neural","2026-11-10 10:12:30",false,"---\nname: spatial-domains\ndescription: Load when detecting tissue domains \u002F niches on a preprocessed spatial AnnData via Leiden\n  \u002F Louvain (spatial-weighted) or graph-neural backends (SpaGCN \u002F STAGATE \u002F GraphST \u002F BANKSY \u002F CellCharter).\n  Skip when ranking spatially variable genes (use spatial-genes); spot-level cell-type annotation (use\n  spatial-annotate).\ntrigger: spatial domain, tissue region, niche, spatial niche, niche identification, niche detection, SpaGCN, STAGATE, CellCharter\ntags:\n- spatial\n- domains\n- niches\n- spagcn\n- stagate\n- graphst\n- banksy\n- cellcharter\n- leiden\n- louvain\n---\n\n# spatial-domains\n\n## When to use\n\nFind tissue domains from expression and coordinates. Use spatial-annotate for named cell labels and spatial-genes for variable genes.\n\n## Use from a step\n\n```python\nfrom skills._sdk.notebook import load_skill, read_input, write_output\nlibrary = load_skill(\"spatial-domains\")\ndata = read_input(\"input.h5ad\")\ndata = library.identify(data, method=\"leiden\", spatial_weight=0.3)\nwrite_output(library.domain_counts(data), \"tables\u002Fresults.csv\")\n```\n\nRun [examples\u002Fexample_step.py](examples\u002Fexample_step.py) through the step runner.\n\n## API\n\n\u003C!-- api:begin generated from _api.py; regenerate with run.py api \u003Cskill dir> --write -->\n\n### `identify(adata, *, method: str='leiden', resolution: float=1.0, spatial_weight: float=0.3, refine: bool=False, random_state: int | None=None, **parameters)`\n\nIdentify domains in place and return the same AnnData.\n\nReads log-normalized X, X_pca and spatial coordinates; graph methods reuse\nexisting expression neighbors. SpaGCN, STAGATE and BANKSY results vary\nbetween runs because their training wrappers do not expose every RNG.\n\n:param adata: Preprocessed spatial AnnData; expression values are retained.\n:param method: CLI default leiden, or louvain\u002Fspagcn\u002Fstagate\u002Fgraphst\u002Fbanksy\u002Fcellcharter.\n:param resolution: Graph-clustering resolution, CLI default 1.0.\n:param spatial_weight: Spatial graph weight for Leiden\u002FLouvain, CLI default 0.3.\n:param refine: False by default; True smooths labels using spatial KNN.\n:param random_state: None preserves CLI defaults: backend seed 42 for STAGATE,\n    GraphST and CellCharter, otherwise 0; PCA uses 0. An explicit integer\n    overrides both PCA and supported backend seeds. Existing PCA is reused.\n:param parameters: Backend options listed in references\u002Fparameters.md;\n    fixed-K methods use n_domains=7 unless supplied.\n:returns: The same AnnData with spatial_domain and JSON run diagnostics.\n:raises ValueError: Unsupported method or invalid graph parameters.\n:raises ImportError: A backend is missing; use install_skill_deps with the named package.\n\n### `run_info(adata, *, keep: bool=True) -> dict`\n\nRead the method, domain sizes, refinement status and effective seeds.\n\npca_random_state is None when identify reused existing PCA coordinates.\n\n:param adata: AnnData returned by identify.\n:param keep: True retains diagnostics; False removes them before CLI serialization.\n:returns: Diagnostic dict, or an empty dict before analysis.\n\n### `domain_counts(adata)`\n\nCount observations and percentages per domain.\n\n:param adata: AnnData with spatial_domain labels; X is not read.\n:returns: DataFrame with domain, n_cells and proportion (percent).\n:raises KeyError: Domain labels are absent.\n\n### `domain_figure(adata)`\n\nPlot domain labels in spatial coordinates.\n\n:param adata: AnnData with spatial_domain and spatial coordinates; X is not read.\n:returns: A matplotlib Figure without writing files.\n:raises KeyError: Domain labels are absent.\n\n\u003C!-- api:end -->\n\n## Methods and parameters\n\nLeiden\u002FLouvain combine expression and spatial graphs. SpaGCN, STAGATE, GraphST, BANKSY and CellCharter remain optional. Fixed-K methods default to seven domains.\nSee [parameters](references\u002Fparameters.md) and [methodology](references\u002Fmethodology.md).\n\n## Gotchas\n\n- `identify` reuses expression neighbors. SpaGCN, STAGATE and BANKSY results vary between runs. `spatial_weight=0` uses expression-only graph clustering.\n- `run_info(keep=False)` removes library diagnostics before CLI serialization.\n\n## Inputs and outputs\n\nThe library returns AnnData, DataFrames or Figures without file writes. The CLI\nkeeps reports, result.json, tables and conditional gallery outputs. See the\ncomplete [output contract](references\u002Foutput_contract.md) for filenames and conditions.\n\n## CLI\n\n```bash\npython skills\u002Fspatial\u002Fspatial-domains\u002Fspatial_domains.py --input data.h5ad --output results\u002Fspatial-domains\n```\n\n## See also\n\n- [Methodology](references\u002Fmethodology.md)\n- [Parameters](references\u002Fparameters.md)\n- [Output contract](references\u002Foutput_contract.md)\n\n## Dependencies\n\n`anndata`, `cellcharter`, `GraphST`, `igraph`, `louvain`, `matplotlib`, `numpy`, `pandas`, `pybanksy`, `scanpy`, `scikit-learn`, `scipy`, `seaborn`, `SpaGCN`, `squidpy`, `STAGATE-pyG`, `torch`\n","# spatial-domains\n\n## When to use\n\nFind tissue domains from expression and coordinates. Use spatial-annotate for named cell labels and spatial-genes for variable genes.\n\n## Use from a step\n\n```python\nfrom skills._sdk.notebook import load_skill, read_input, write_output\nlibrary = load_skill(\"spatial-domains\")\ndata = read_input(\"input.h5ad\")\ndata = library.identify(data, method=\"leiden\", spatial_weight=0.3)\nwrite_output(library.domain_counts(data), \"tables\u002Fresults.csv\")\n```\n\nRun [examples\u002Fexample_step.py](examples\u002Fexample_step.py) through the step runner.\n\n## API\n\n\u003C!-- api:begin generated from _api.py; regenerate with run.py api \u003Cskill dir> --write -->\n\n### `identify(adata, *, method: str='leiden', resolution: float=1.0, spatial_weight: float=0.3, refine: bool=False, random_state: int | None=None, **parameters)`\n\nIdentify domains in place and return the same AnnData.\n\nReads log-normalized X, X_pca and spatial coordinates; graph methods reuse\nexisting expression neighbors. SpaGCN, STAGATE and BANKSY results vary\nbetween runs because their training wrappers do not expose every RNG.\n\n:param adata: Preprocessed spatial AnnData; expression values are retained.\n:param method: CLI default leiden, or louvain\u002Fspagcn\u002Fstagate\u002Fgraphst\u002Fbanksy\u002Fcellcharter.\n:param resolution: Graph-clustering resolution, CLI default 1.0.\n:param spatial_weight: Spatial graph weight for Leiden\u002FLouvain, CLI default 0.3.\n:param refine: False by default; True smooths labels using spatial KNN.\n:param random_state: None preserves CLI defaults: backend seed 42 for STAGATE,\n    GraphST and CellCharter, otherwise 0; PCA uses 0. An explicit integer\n    overrides both PCA and supported backend seeds. Existing PCA is reused.\n:param parameters: Backend options listed in references\u002Fparameters.md;\n    fixed-K methods use n_domains=7 unless supplied.\n:returns: The same AnnData with spatial_domain and JSON run diagnostics.\n:raises ValueError: Unsupported method or invalid graph parameters.\n:raises ImportError: A backend is missing; use install_skill_deps with the named package.\n\n### `run_info(adata, *, keep: bool=True) -> dict`\n\nRead the method, domain sizes, refinement status and effective seeds.\n\npca_random_state is None when identify reused existing PCA coordinates.\n\n:param adata: AnnData returned by identify.\n:param keep: True retains diagnostics; False removes them before CLI serialization.\n:returns: Diagnostic dict, or an empty dict before analysis.\n\n### `domain_counts(adata)`\n\nCount observations and percentages per domain.\n\n:param adata: AnnData with spatial_domain labels; X is not read.\n:returns: DataFrame with domain, n_cells and proportion (percent).\n:raises KeyError: Domain labels are absent.\n\n### `domain_figure(adata)`\n\nPlot domain labels in spatial coordinates.\n\n:param adata: AnnData with spatial_domain and spatial coordinates; X is not read.\n:returns: A matplotlib Figure without writing files.\n:raises KeyError: Domain labels are absent.\n\n\u003C!-- api:end -->\n\n## Methods and parameters\n\nLeiden\u002FLouvain combine expression and spatial graphs. SpaGCN, STAGATE, GraphST, BANKSY and CellCharter remain optional. Fixed-K methods default to seven domains.\nSee [parameters](references\u002Fparameters.md) and [methodology](references\u002Fmethodology.md).\n\n## Gotchas\n\n- `identify` reuses expression neighbors. SpaGCN, STAGATE and BANKSY results vary between runs. `spatial_weight=0` uses expression-only graph clustering.\n- `run_info(keep=False)` removes library diagnostics before CLI serialization.\n\n## Inputs and outputs\n\nThe library returns AnnData, DataFrames or Figures without file writes. The CLI\nkeeps reports, result.json, tables and conditional gallery outputs. See the\ncomplete [output contract](references\u002Foutput_contract.md) for filenames and conditions.\n\n## CLI\n\n```bash\npython skills\u002Fspatial\u002Fspatial-domains\u002Fspatial_domains.py --input data.h5ad --output results\u002Fspatial-domains\n```\n\n## See also\n\n- [Methodology](references\u002Fmethodology.md)\n- [Parameters](references\u002Fparameters.md)\n- [Output contract](references\u002Foutput_contract.md)\n\n## Dependencies\n\n`anndata`, `cellcharter`, `GraphST`, `igraph`, `louvain`, `matplotlib`, `numpy`, `pandas`, `pybanksy`, `scanpy`, `scikit-learn`, `scipy`, `seaborn`, `SpaGCN`, `squidpy`, `STAGATE-pyG`, `torch`\n",{"name":5,"tags":43,"trigger":45,"description":7},[44,27,26,25,24,23,22,21,30,20],"spatial","spatial domain, tissue region, niche, spatial niche, niche identification, niche detection, SpaGCN, STAGATE, CellCharter","main","90a3bec3e6549bc33dddbf67e4b23869736c49d1","skills\u002Fspatial\u002Fspatial-domains",27,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw","https:\u002F\u002FTianGzlab.github.io\u002FOmicsClaw\u002F","https:\u002F\u002Fgithub.com\u002FTianGzlab","2026-10-08 01:36:11",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add TianGzlab\u002FOmicsClaw --skill spatial-domains",{"tool":60,"command":61},"bunx","bunx skills add TianGzlab\u002FOmicsClaw --skill spatial-domains",{"tool":63,"command":64},"pnpm","pnpm dlx skills add TianGzlab\u002FOmicsClaw --skill spatial-domains","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002FSKILL.md",true,[68,74,78,84,90,94,98,102,106,110,114],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"_api.py","SCRIPT","脚本",6194,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002F_api.py",{"path":75,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":76,"sourceHtmlUrl":77},"examples\u002Fexample_step.py",713,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Fexamples\u002Fexample_step.py",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"r_visualization\u002Fdomains_publication_template.R","OTHER","其他",1578,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Fr_visualization\u002Fdomains_publication_template.R",{"path":85,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":88,"sourceHtmlUrl":89},"r_visualization\u002FREADME.md","REFERENCE","参考文档",1408,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Fr_visualization\u002FREADME.md",{"path":91,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fmethodology.md",16605,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Freferences\u002Fmethodology.md",{"path":95,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Foutput_contract.md",1696,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Freferences\u002Foutput_contract.md",{"path":99,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fparameters.md",4417,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Freferences\u002Fparameters.md",{"path":103,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":104,"sourceHtmlUrl":105},"spatial_domains.py",43493,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Fspatial_domains.py",{"path":107,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":108,"sourceHtmlUrl":109},"tests\u002F__init__.py",0,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Ftests\u002F__init__.py",{"path":111,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":112,"sourceHtmlUrl":113},"tests\u002Ftest_api.py",5897,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Ftests\u002Ftest_api.py",{"path":115,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":116,"sourceHtmlUrl":117},"tests\u002Ftest_spatial_domains.py",12822,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-domains\u002Ftests\u002Ftest_spatial_domains.py",[119,137,148,165,189,212],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":130,"publishedAt":38},"01M6DTP4X225Q92RMY8XXHPCTT","demo-skill","A fixture skill for the skill environment tests. Use it for nothing else.","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Ftests\u002Fskillenv\u002Ffixtures\u002Fskills\u002Fdemo\u002Fdemo-skill\u002FSKILL.md",[125],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[131,132,133,134,135,29,136],"demo skill","demo","tests","fixture","fixture skill","environment",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":38},"01M6DTP28JTWQK3HHXDNQV8BBV","fake-domains","Test fixture for the golden deployment in tests\u002Fentry. Load never; it has no script.","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Ftests\u002Fentry\u002Ffake_skills\u002Fspatial\u002Ffake-domains\u002FSKILL.md",[],[27,144,145,133,134,146,147],"fake domains","deployment","never","test",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":38},"01M6DTNZ4AMWKTME1T18K5C643","replace-me-skill","Load when copying this directory to bootstrap a new OmicsClaw skill. Skip when an existing skill already covers the request.","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Ftemplates\u002Fskill\u002FSKILL.md",[154],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},[156,157,158,159,160,161,162,163,164],"me","replace me skill","template","directory","skill template","existing skill","new skill","bootstrap","scaffold",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":38},"01M6DTNV63MTD0Q6YRC52F0B1Y","spatial-velocity","Load when estimating RNA velocity on a spatial AnnData with `layers[\"spliced\"]` + `layers[\"unspliced\"]` via scVelo (stochastic \u002F deterministic \u002F dynamical) or veloVI (deep generative). Skip when input lacks the spliced\u002Funspliced layers (must be quantified upstream by velocyto \u002F kb-python \u002F STARsolo); non-spatial scRNA velocity (use sc-velocity).","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-velocity\u002FSKILL.md",[],[172,173,19,174,175,176,177,178,179,180,28,181,182,183,184,185,186,29,187,188],"velocity","spatial velocity","scvelo","input","starsolo","time","deep","RNA","kb-python","velocyto","rna-velocity","velovi","dynamics","upstream","kb","python","deterministic",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":195,"publishedAt":38},"01M6DTNPMR227NAT8QFY620YDW","spatial-trajectory","Load when inferring pseudotime \u002F lineage trajectories on a preprocessed spatial AnnData via DPT (default — diffusion pseudotime), CellRank (terminal-state + fate-probability), or Palantir (waypoint branch probabilities). Skip when the data has spliced\u002Funspliced layers and you want velocity-driven dynamics (use spatial-velocity); non-spatial scRNA pseudotime (use sc-pseudotime).","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-trajectory\u002FSKILL.md",[],[19,196,197,198,199,200,201,202,28,203,204,205,206,207,172,208,29,209,210,211],"trajectory","spatial trajectory","state","terminal","lineage","diffusion","cellrank","palantir","dpt","pseudotime","probability","cell","default","branch","anndata","data",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":218,"publishedAt":38},"01M6DTNJEYFT33P84DGHDNXW95","spatial-statistics","Load when running spatial autocorrelation \u002F hotspot \u002F co-occurrence \u002F neighbourhood-enrichment \u002F 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).","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002FSKILL.md",[],[219,220,19,28,221,222,223,224,225,226,27,32,227,228,35,29,210,229,230,231],"spatial statistics","statistics","nhood-enrichment","co-occurrence","ripley","geary","moran","neighbourhood","autocorrelation","local","detection","enrichment","stats"]