[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DTNJEYFT33P84DGHDNXW95":3,"skill-same:01M6DTNJEYFT33P84DGHDNXW95":124},{"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":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M6DTNJEYFT33P84DGHDNXW95","spatial-statistics",null,"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).","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-statistics\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"spatial statistics","Spatial","statistics","ranking","nhood-enrichment","co-occurrence","ripley","geary","moran","neighbourhood","domains","via","stats","autocorrelation","local","domain","use","anndata","detection","enrichment","2026-11-10 10:12:30",false,"---\nname: spatial-statistics\ndescription: Load when running spatial autocorrelation \u002F hotspot \u002F co-occurrence \u002F neighbourhood-enrichment\n  \u002F Ripley K stats on a clustered spatial AnnData via squidpy. Skip when ranking spatially variable genes\n  (use spatial-genes); tissue domain detection (use spatial-domains).\ntrigger: spatial statistics, Moran, Geary, Ripley, co-occurrence, Getis-Ord, local Moran, centrality\ntags:\n- spatial\n- statistics\n- moran\n- geary\n- ripley\n- co-occurrence\n- nhood-enrichment\n- getis-ord\n- squidpy\n---\n\n# spatial-statistics\n\n## When to use\n\nMeasure spatial enrichment, co-occurrence, autocorrelation or graph structure. Use spatial-genes for SVG ranking and spatial-domains for regions.\n\n## Use from a step\n\n```python\nfrom skills._sdk.notebook import load_skill, read_input, write_output\nlibrary = load_skill(\"spatial-statistics\")\ndata = read_input(\"input.h5ad\")\ndata = library.analyze(data, analysis_type=\"neighborhood_enrichment\", random_state=123)\nwrite_output(library.results_table(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### `analyze(adata, *, analysis_type: str='neighborhood_enrichment', random_state: int=123, **parameters)`\n\nRun one spatial analysis in place and return the same AnnData.\n\nGene analyses read X (log-normalized expression); cluster and network\nanalyses read labels, coordinates and spatial_connectivities. Existing\nspatial graphs are reused unless force_graph_rebuild=True.\nBivariate Moran's backend cannot be seeded: results vary between runs.\n\n:param adata: Spatial AnnData; cluster-aware methods require categorical labels.\n:param analysis_type: CLI default neighborhood_enrichment; also ripley,\n    co_occurrence, moran, geary, local_moran, getis_ord, bivariate_moran,\n    network_properties or spatial_centrality.\n:param random_state: Permutation\u002Fsimulation seed, matching CLI default 123.\n    Ignored by bivariate_moran; its run_info records this limitation.\n:param parameters: Method keyword options from references\u002Fparameters.md;\n    omitted values retain backend wrapper defaults. Unknown options raise.\n:returns: The same AnnData with JSON-encoded diagnostics and result tables.\n:raises ValueError: Unknown analysis or invalid input.\n:raises TypeError: An option does not belong to the chosen method.\n:raises ImportError: Missing backend; use install_skill_deps with squidpy,\n    esda, libpysal or networkx as reported in the error.\n\n### `run_info(adata, *, keep: bool=True) -> dict`\n\nRead the analysis diagnostics, including method-specific DataFrames.\n\n:param adata: AnnData returned by analyze.\n:param keep: True retains the record; False removes it before CLI serialization.\n:returns: Diagnostic dict; encoded tables are restored as DataFrames.\n\n### `results_table(adata, *, name: str='pair_summary_df')`\n\nReturn a method result table independently of the CLI gallery.\n\n:param adata: AnnData returned by analyze.\n:param name: Default pair_summary_df for enrichment; results_df for most\n    other methods, or zscore_df\u002Fcount_df\u002Fper_cluster_df when present.\n:returns: A DataFrame copy.\n:raises KeyError: The selected analysis has no table with this name.\n\n### `enrichment_figure(adata)`\n\nPlot the neighborhood enrichment z-score matrix.\n\n:param adata: AnnData after neighborhood_enrichment; expression is not read.\n:returns: A matplotlib Figure without saving it.\n:raises KeyError: No enrichment matrix is available.\n\n\u003C!-- api:end -->\n\n## Methods and parameters\n\nTen methods remain available through analysis_type; extra keywords use Python wrapper names documented in references\u002Fparameters.md. Existing spatial graphs are reused unless force_graph_rebuild=True.\nSee [parameters](references\u002Fparameters.md) and [methodology](references\u002Fmethodology.md).\n\n## Gotchas\n\n- `results_table` defaults to pair_summary_df; other methods often return results_df. `spatial_centrality` requires labels and returns cluster-level scores.\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-statistics\u002Fspatial_statistics.py --input data.h5ad --output results\u002Fspatial-statistics\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`, `esda`, `libpysal`, `matplotlib`, `networkx`, `numpy`, `pandas`, `scanpy`, `scipy`, `seaborn`, `squidpy`\n","# spatial-statistics\n\n## When to use\n\nMeasure spatial enrichment, co-occurrence, autocorrelation or graph structure. Use spatial-genes for SVG ranking and spatial-domains for regions.\n\n## Use from a step\n\n```python\nfrom skills._sdk.notebook import load_skill, read_input, write_output\nlibrary = load_skill(\"spatial-statistics\")\ndata = read_input(\"input.h5ad\")\ndata = library.analyze(data, analysis_type=\"neighborhood_enrichment\", random_state=123)\nwrite_output(library.results_table(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### `analyze(adata, *, analysis_type: str='neighborhood_enrichment', random_state: int=123, **parameters)`\n\nRun one spatial analysis in place and return the same AnnData.\n\nGene analyses read X (log-normalized expression); cluster and network\nanalyses read labels, coordinates and spatial_connectivities. Existing\nspatial graphs are reused unless force_graph_rebuild=True.\nBivariate Moran's backend cannot be seeded: results vary between runs.\n\n:param adata: Spatial AnnData; cluster-aware methods require categorical labels.\n:param analysis_type: CLI default neighborhood_enrichment; also ripley,\n    co_occurrence, moran, geary, local_moran, getis_ord, bivariate_moran,\n    network_properties or spatial_centrality.\n:param random_state: Permutation\u002Fsimulation seed, matching CLI default 123.\n    Ignored by bivariate_moran; its run_info records this limitation.\n:param parameters: Method keyword options from references\u002Fparameters.md;\n    omitted values retain backend wrapper defaults. Unknown options raise.\n:returns: The same AnnData with JSON-encoded diagnostics and result tables.\n:raises ValueError: Unknown analysis or invalid input.\n:raises TypeError: An option does not belong to the chosen method.\n:raises ImportError: Missing backend; use install_skill_deps with squidpy,\n    esda, libpysal or networkx as reported in the error.\n\n### `run_info(adata, *, keep: bool=True) -> dict`\n\nRead the analysis diagnostics, including method-specific DataFrames.\n\n:param adata: AnnData returned by analyze.\n:param keep: True retains the record; False removes it before CLI serialization.\n:returns: Diagnostic dict; encoded tables are restored as DataFrames.\n\n### `results_table(adata, *, name: str='pair_summary_df')`\n\nReturn a method result table independently of the CLI gallery.\n\n:param adata: AnnData returned by analyze.\n:param name: Default pair_summary_df for enrichment; results_df for most\n    other methods, or zscore_df\u002Fcount_df\u002Fper_cluster_df when present.\n:returns: A DataFrame copy.\n:raises KeyError: The selected analysis has no table with this name.\n\n### `enrichment_figure(adata)`\n\nPlot the neighborhood enrichment z-score matrix.\n\n:param adata: AnnData after neighborhood_enrichment; expression is not read.\n:returns: A matplotlib Figure without saving it.\n:raises KeyError: No enrichment matrix is available.\n\n\u003C!-- api:end -->\n\n## Methods and parameters\n\nTen methods remain available through analysis_type; extra keywords use Python wrapper names documented in references\u002Fparameters.md. Existing spatial graphs are reused unless force_graph_rebuild=True.\nSee [parameters](references\u002Fparameters.md) and [methodology](references\u002Fmethodology.md).\n\n## Gotchas\n\n- `results_table` defaults to pair_summary_df; other methods often return results_df. `spatial_centrality` requires labels and returns cluster-level scores.\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-statistics\u002Fspatial_statistics.py --input data.h5ad --output results\u002Fspatial-statistics\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`, `esda`, `libpysal`, `matplotlib`, `networkx`, `numpy`, `pandas`, `scanpy`, `scipy`, `seaborn`, `squidpy`\n",{"name":5,"tags":43,"trigger":47,"description":7},[44,20,26,25,24,23,22,45,46],"spatial","getis-ord","squidpy","spatial statistics, Moran, Geary, Ripley, co-occurrence, Getis-Ord, local Moran, centrality","main","90a3bec3e6549bc33dddbf67e4b23869736c49d1","skills\u002Fspatial\u002Fspatial-statistics",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":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add TianGzlab\u002FOmicsClaw --skill spatial-statistics",{"tool":62,"command":63},"bunx","bunx skills add TianGzlab\u002FOmicsClaw --skill spatial-statistics",{"tool":65,"command":66},"pnpm","pnpm dlx skills add TianGzlab\u002FOmicsClaw --skill spatial-statistics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002FSKILL.md",true,[70,76,80,86,92,96,100,104,108,112,116,120],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"_api.py","SCRIPT","脚本",4663,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002F_api.py",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"examples\u002Fexample_step.py",566,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Fexamples\u002Fexample_step.py",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"r_visualization\u002FREADME.md","REFERENCE","参考文档",1473,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Fr_visualization\u002FREADME.md",{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"r_visualization\u002Fstats_publication_template.R","OTHER","其他",3327,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Fr_visualization\u002Fstats_publication_template.R",{"path":93,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fmethodology.md",6382,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Freferences\u002Fmethodology.md",{"path":97,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Foutput_contract.md",2927,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Freferences\u002Foutput_contract.md",{"path":101,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fparameters.md",7680,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Freferences\u002Fparameters.md",{"path":105,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":106,"sourceHtmlUrl":107},"spatial_statistics.py",76879,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Fspatial_statistics.py",{"path":109,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":110,"sourceHtmlUrl":111},"STRATEGY.json",522,"https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002Fskills\u002Farbitragex-ultra\u002Fstrategies\u002FMEV-01-004\u002FSTRATEGY.json",{"path":113,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":114,"sourceHtmlUrl":115},"tests\u002F__init__.py",0,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Ftests\u002F__init__.py",{"path":117,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":118,"sourceHtmlUrl":119},"tests\u002Ftest_api.py",2582,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Ftests\u002Ftest_api.py",{"path":121,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":122,"sourceHtmlUrl":123},"tests\u002Ftest_spatial_statistics.py",7148,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-statistics\u002Ftests\u002Ftest_spatial_statistics.py",[125,143,154,171,195,217],{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":136,"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",[131],{"categoryNo":132,"categoryName":133,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[137,138,139,140,34,141,142],"demo","demo skill","tests","environment","fixture skill","fixture",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"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",[],[150,28,151,152,153,142,139],"fake domains","test","deployment","never",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":161,"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",[160],{"categoryNo":132,"categoryName":133,"taxonomyType":134,"taxonomyTypeDesc":135},[162,163,164,165,166,167,168,169,170],"replace me skill","me","directory","scaffold","skill template","bootstrap","template","new skill","existing skill",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"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",[],[19,178,179,29,180,181,182,183,184,185,186,187,188,189,190,34,191,192,193,194],"velocity","spatial velocity","dynamics","velovi","rna-velocity","velocyto","kb-python","starsolo","input","scvelo","RNA","python","kb","deterministic","upstream","time","deep",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":201,"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,202,203,204,34,205,35,206,207,208,209,178,210,211,212,213,214,215,29,216],"spatial trajectory","trajectory","default","branch","data","lineage","state","terminal","cell","probability","diffusion","pseudotime","dpt","palantir","cellrank",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":38},"01M6DTNF4HP2WP971HD2QZ8TG8","spatial-register","Load when aligning multiple spatial slices into a common coordinate frame with PASTE or STalign. Skip single-slice data; for expression-space batch correction use spatial-integrate.","https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-register\u002FSKILL.md",[],[224,225,19,226,227,228,229,230,231,34,232,206],"spatial register","register","batch","expression","coordinate","registration","alignment","integrate","common"]