[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DTA566PZBW7MPX0770DFSW":3,"skill-same:01M6DTA566PZBW7MPX0770DFSW":113},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":46,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6DTA566PZBW7MPX0770DFSW","bulkrna-coexpression",null,"Load when discovering bulk gene co-expression modules and hub genes with R WGCNA. Skip direct expression contrasts (use bulkrna-de), existing-gene-list PPI lookup (use bulkrna-ppi-network), or single-cell networks (use sc-grn).","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\u002Fbulkrna\u002Fbulkrna-coexpression\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"bulkrna","bulkrna coexpression","network","lookup","networks","direct","list","use","modules","hub","cell","expression","single-cell","coexpression","WGCNA","hub-genes","2026-11-10 10:12:30",false,"---\nname: bulkrna-coexpression\ndescription: Load when discovering bulk gene co-expression modules and hub genes with R WGCNA. Skip direct expression contrasts (use bulkrna-de), existing-gene-list PPI lookup (use bulkrna-ppi-network), or single-cell networks (use sc-grn).\ntrigger: coexpression, WGCNA, gene network, co-expression modules, hub genes, gene modules\ntags:\n- bulkrna\n- coexpression\n- WGCNA\n- network\n- modules\n- hub-genes\n---\n\n# bulkrna-coexpression\n\n## When to use\n\nLoad when discovering bulk gene co-expression modules and hub genes with R WGCNA. Skip direct expression contrasts (use bulkrna-de), existing-gene-list PPI lookup (use bulkrna-ppi-network), or single-cell networks (use sc-grn).\n\n## Use from a step\n\n```python\nfrom skills._sdk.notebook import load_skill, write_output\nlibrary = load_skill(\"bulkrna-coexpression\")\nresult = library.analyze(data, power=6, min_module_size=10)\nwrite_output(result, \"tables\u002Fresult.csv\")\nwrite_output(library.module_sizes_figure(result), \"figures\u002Fresult.png\")\n```\n\nRead expression and metadata with `read_input` before calling the library.\n`examples\u002Fexample_step.py` constructs a small synthetic dataset and checks\nits results through the step runner and fresh-kernel replay.\n\n## API\n\n\u003C!-- api:begin generated from _api.py; regenerate with run.py api \u003Cskill dir> --write -->\n\n### `analyze(data: pd.DataFrame, *, power: int | None=None, min_module_size: int=10, random_state: int=54321) -> pd.DataFrame`\n\nReturn R WGCNA gene-module assignments, leaving expression unchanged.\n\n:param data: Nonnegative feature-by-sample expression; provide normalized data on the intended correlation scale.\n:param power: CLI default None selects the soft threshold; set a positive integer to override it.\n:param min_module_size: CLI default 10 genes per module.\n:param random_state: WGCNA blockwiseModules default seed 54321; fixes its preclustering.\n:returns: Gene\u002Fmodule DataFrame with diagnostics, hub genes and threshold fit in attrs.\n:raises ValueError: Input, sample count, power or module size is invalid.\n:raises ImportError: R WGCNA or Matrix is unavailable.\n:raises RuntimeError: R analysis fails.\n\n### `run_info(data: pd.DataFrame, *, keep: bool=True) -> dict`\n\nReturn WGCNA method diagnostics and summary.\n\n:param data: Result from analyze.\n:param keep: Keep diagnostics by default; the CLI passes False.\n:returns: Independent diagnostics dictionary.\n:raises ValueError: No WGCNA diagnostics are present.\n\n### `threshold_fit(data: pd.DataFrame) -> pd.DataFrame`\n\nReturn the signed scale-free fit for each tested soft threshold.\n\n:param data: Result from analyze.\n:returns: Table containing power, r_squared and mean_connectivity.\n:raises ValueError: No fit table is stored.\n\n### `hub_genes(data: pd.DataFrame) -> pd.DataFrame`\n\nReturn the highest absolute module-membership genes per non-grey module.\n\n:param data: Result from analyze.\n:returns: Table with gene, module and kME columns.\n:raises ValueError: No hub table is stored.\n\n### `module_sizes_figure(data: pd.DataFrame)`\n\nPlot assignment counts, including grey unassigned genes.\n\n:param data: Gene\u002Fmodule table from analyze.\n:returns: Matplotlib Figure.\n:raises ValueError: The module column is missing.\n\n\u003C!-- api:end -->\n\n## Methods and parameters\n\nThe function library returns DataFrames and Figures. The CLI loads the\nsame library and owns reports and file writes. R runs in a temporary\ndirectory using Matrix Market, feature\u002Fsample identifiers and metadata.\nNo R intermediate is a permanent CLI output.\n\n## Gotchas\n\n- `analyze` requires R WGCNA and Matrix, at least eight samples, and finite nonnegative expression. Cohorts with fewer than 15 samples emit a warning.\n- `analyze(power=None)` selects a soft threshold; an explicit power is honored. Integer matrices are converted to double for WGCNA.\n- `run_info()[\"filtered_genes\"]` lists genes removed by WGCNA quality checks. Grey is unassigned; module IDs are color strings.\n- `hub_genes` ranks absolute module membership within each non-grey module. This is correlation evidence, not proof of regulation.\n- `threshold_fit` reports signed scale-free R-squared and connectivity. The correlation analysis uses the supplied expression scale; normalize upstream as needed.\n- `analyze(random_state=54321)` preserves the WGCNA default seed and uses one R thread. No Python module-detection fallback is used.\n\n## Inputs and outputs\n\nExpression CSV with genes in the first column and samples in the remaining columns. The API takes that gene column as the DataFrame index.\n\nCLI outputs:\n\n- `tables\u002Fmodule_assignments.csv`\n- `tables\u002Fhub_genes.csv`\n- `tables\u002Fthreshold_fit.csv`\n- `figures\u002Fscale_free_fit.png`\n- `figures\u002Fmodule_sizes.png`\n- `figures\u002Fmodule_dendrogram.png` (assignment overview, not a dendrogram)\n- `report.md`, `result.json`\n- `reproducibility\u002Fcommands.sh`\n\n## CLI\n\n```bash\npython skills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Fbulkrna_coexpression.py --demo --output \u002Ftmp\u002Fbulkrna_coexpression_demo\n```\n\nRun the script with `--help` for real-input arguments.\n\n## See also\n\n- `references\u002Fparameters.md`\n- `references\u002Fmethodology.md`\n- `references\u002Foutput_contract.md`\n\n## Dependencies\n\n`matplotlib`, `numpy`, `pandas`, `scipy`, `WGCNA`, `Matrix`\n","# bulkrna-coexpression\n\n## When to use\n\nLoad when discovering bulk gene co-expression modules and hub genes with R WGCNA. Skip direct expression contrasts (use bulkrna-de), existing-gene-list PPI lookup (use bulkrna-ppi-network), or single-cell networks (use sc-grn).\n\n## Use from a step\n\n```python\nfrom skills._sdk.notebook import load_skill, write_output\nlibrary = load_skill(\"bulkrna-coexpression\")\nresult = library.analyze(data, power=6, min_module_size=10)\nwrite_output(result, \"tables\u002Fresult.csv\")\nwrite_output(library.module_sizes_figure(result), \"figures\u002Fresult.png\")\n```\n\nRead expression and metadata with `read_input` before calling the library.\n`examples\u002Fexample_step.py` constructs a small synthetic dataset and checks\nits results through the step runner and fresh-kernel replay.\n\n## API\n\n\u003C!-- api:begin generated from _api.py; regenerate with run.py api \u003Cskill dir> --write -->\n\n### `analyze(data: pd.DataFrame, *, power: int | None=None, min_module_size: int=10, random_state: int=54321) -> pd.DataFrame`\n\nReturn R WGCNA gene-module assignments, leaving expression unchanged.\n\n:param data: Nonnegative feature-by-sample expression; provide normalized data on the intended correlation scale.\n:param power: CLI default None selects the soft threshold; set a positive integer to override it.\n:param min_module_size: CLI default 10 genes per module.\n:param random_state: WGCNA blockwiseModules default seed 54321; fixes its preclustering.\n:returns: Gene\u002Fmodule DataFrame with diagnostics, hub genes and threshold fit in attrs.\n:raises ValueError: Input, sample count, power or module size is invalid.\n:raises ImportError: R WGCNA or Matrix is unavailable.\n:raises RuntimeError: R analysis fails.\n\n### `run_info(data: pd.DataFrame, *, keep: bool=True) -> dict`\n\nReturn WGCNA method diagnostics and summary.\n\n:param data: Result from analyze.\n:param keep: Keep diagnostics by default; the CLI passes False.\n:returns: Independent diagnostics dictionary.\n:raises ValueError: No WGCNA diagnostics are present.\n\n### `threshold_fit(data: pd.DataFrame) -> pd.DataFrame`\n\nReturn the signed scale-free fit for each tested soft threshold.\n\n:param data: Result from analyze.\n:returns: Table containing power, r_squared and mean_connectivity.\n:raises ValueError: No fit table is stored.\n\n### `hub_genes(data: pd.DataFrame) -> pd.DataFrame`\n\nReturn the highest absolute module-membership genes per non-grey module.\n\n:param data: Result from analyze.\n:returns: Table with gene, module and kME columns.\n:raises ValueError: No hub table is stored.\n\n### `module_sizes_figure(data: pd.DataFrame)`\n\nPlot assignment counts, including grey unassigned genes.\n\n:param data: Gene\u002Fmodule table from analyze.\n:returns: Matplotlib Figure.\n:raises ValueError: The module column is missing.\n\n\u003C!-- api:end -->\n\n## Methods and parameters\n\nThe function library returns DataFrames and Figures. The CLI loads the\nsame library and owns reports and file writes. R runs in a temporary\ndirectory using Matrix Market, feature\u002Fsample identifiers and metadata.\nNo R intermediate is a permanent CLI output.\n\n## Gotchas\n\n- `analyze` requires R WGCNA and Matrix, at least eight samples, and finite nonnegative expression. Cohorts with fewer than 15 samples emit a warning.\n- `analyze(power=None)` selects a soft threshold; an explicit power is honored. Integer matrices are converted to double for WGCNA.\n- `run_info()[\"filtered_genes\"]` lists genes removed by WGCNA quality checks. Grey is unassigned; module IDs are color strings.\n- `hub_genes` ranks absolute module membership within each non-grey module. This is correlation evidence, not proof of regulation.\n- `threshold_fit` reports signed scale-free R-squared and connectivity. The correlation analysis uses the supplied expression scale; normalize upstream as needed.\n- `analyze(random_state=54321)` preserves the WGCNA default seed and uses one R thread. No Python module-detection fallback is used.\n\n## Inputs and outputs\n\nExpression CSV with genes in the first column and samples in the remaining columns. The API takes that gene column as the DataFrame index.\n\nCLI outputs:\n\n- `tables\u002Fmodule_assignments.csv`\n- `tables\u002Fhub_genes.csv`\n- `tables\u002Fthreshold_fit.csv`\n- `figures\u002Fscale_free_fit.png`\n- `figures\u002Fmodule_sizes.png`\n- `figures\u002Fmodule_dendrogram.png` (assignment overview, not a dendrogram)\n- `report.md`, `result.json`\n- `reproducibility\u002Fcommands.sh`\n\n## CLI\n\n```bash\npython skills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Fbulkrna_coexpression.py --demo --output \u002Ftmp\u002Fbulkrna_coexpression_demo\n```\n\nRun the script with `--help` for real-input arguments.\n\n## See also\n\n- `references\u002Fparameters.md`\n- `references\u002Fmethodology.md`\n- `references\u002Foutput_contract.md`\n\n## Dependencies\n\n`matplotlib`, `numpy`, `pandas`, `scipy`, `WGCNA`, `Matrix`\n",{"name":5,"tags":39,"trigger":40,"description":7},[18,31,32,20,26,33],"coexpression, WGCNA, gene network, co-expression modules, hub genes, gene modules","main","90a3bec3e6549bc33dddbf67e4b23869736c49d1","skills\u002Fbulkrna\u002Fbulkrna-coexpression",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":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add TianGzlab\u002FOmicsClaw --skill bulkrna-coexpression",{"tool":55,"command":56},"bunx","bunx skills add TianGzlab\u002FOmicsClaw --skill bulkrna-coexpression",{"tool":58,"command":59},"pnpm","pnpm dlx skills add TianGzlab\u002FOmicsClaw --skill bulkrna-coexpression","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002FSKILL.md",true,[63,69,73,77,83,87,91,95,101,105,109],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"_api.py","SCRIPT","脚本",5668,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002F_api.py",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"bulkrna_coexpression.py",13114,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Fbulkrna_coexpression.py",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"examples\u002Fexample_step.py",990,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Fexamples\u002Fexample_step.py",{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"LEARNINGS.md","REFERENCE","参考文档",8908,"https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Farbitragex-omniscience\u002FLEARNINGS.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fmethodology.md",1153,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Freferences\u002Fmethodology.md",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Foutput_contract.md",619,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Freferences\u002Foutput_contract.md",{"path":92,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fparameters.md",240,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Freferences\u002Fparameters.md",{"path":96,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":99,"sourceHtmlUrl":100},"rscripts\u002Fwgcna.R","OTHER","其他",5290,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Frscripts\u002Fwgcna.R",{"path":102,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":103,"sourceHtmlUrl":104},"tests\u002F__init__.py",0,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Ftests\u002F__init__.py",{"path":106,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":107,"sourceHtmlUrl":108},"tests\u002Ftest_api.py",1270,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Ftests\u002Ftest_api.py",{"path":110,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":111,"sourceHtmlUrl":112},"tests\u002Ftest_bulkrna_coexpression.py",2537,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fbulkrna\u002Fbulkrna-coexpression\u002Ftests\u002Ftest_bulkrna_coexpression.py",[114,132,144,161,187,209],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":125,"publishedAt":34},"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",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[126,127,128,129,130,25,131],"demo skill","demo","tests","fixture","fixture skill","environment",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":34},"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",[],[139,140,141,128,129,142,143],"domains","fake domains","deployment","never","test",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":34},"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",[150],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},[152,153,154,155,156,157,158,159,160],"me","replace me skill","template","directory","skill template","existing skill","new skill","bootstrap","scaffold",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":34},"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",[],[168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,25,185,186],"velocity","spatial velocity","Spatial","scvelo","input","starsolo","time","deep","RNA","kb-python","via","velocyto","rna-velocity","velovi","dynamics","upstream","kb","python","deterministic",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":193,"publishedAt":34},"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",[],[170,194,195,196,197,198,199,200,178,201,202,203,204,28,168,205,25,206,207,208],"trajectory","spatial trajectory","state","terminal","lineage","diffusion","cellrank","palantir","dpt","pseudotime","probability","default","branch","anndata","data",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":215,"publishedAt":34},"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",[],[216,217,170,178,218,219,220,221,222,223,139,224,225,226,227,25,207,228,229,230],"spatial statistics","statistics","nhood-enrichment","co-occurrence","ripley","geary","moran","neighbourhood","ranking","autocorrelation","local","domain","detection","enrichment","stats"]