[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DTNBT4Y062PT5BWYEM8AE5":3,"skill-same:01M6DTNBT4Y062PT5BWYEM8AE5":107},{"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":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6DTNBT4Y062PT5BWYEM8AE5","spatial-raw-processing",null,"Load when converting spatial transcriptomics raw FASTQ pairs through ST-Pipeline into a `raw_counts.h5ad` ready for spatial-preprocess. Skip when input is already a count-matrix AnnData (use spatial-preprocess); non-spatial bulk \u002F scRNA FASTQ (use bulkrna-read-qc).","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-raw-processing\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"spatial raw processing","Spatial","qc","slideseq","st-pipeline","raw-processing","visium","FASTQ","count-matrix","spatial transcriptomics","bulkrna","file","input","upstream","coordinates","ready","use","read","ids","pipeline","2026-11-10 10:12:30",false,"---\nname: spatial-raw-processing\ndescription: Load when converting spatial transcriptomics raw FASTQ pairs through ST-Pipeline into a `raw_counts.h5ad`\n  ready for spatial-preprocess. Skip when input is already a count-matrix AnnData (use spatial-preprocess);\n  non-spatial bulk \u002F scRNA FASTQ (use bulkrna-read-qc).\ntrigger: spatial raw processing, raw spatial fastq, spatial fastq, st_pipeline, st pipeline, barcode coordinates, ids file, visium raw fastq, slide-seq fastq, slideseq fastq, upstream spatial processing\ntags:\n- spatial\n- raw-processing\n- fastq\n- st-pipeline\n- visium\n- slideseq\n---\n\n# spatial-raw-processing\n\n## Use from a step\n\nThis is CLI_ONLY: ST-Pipeline consumes FASTQ files, barcode coordinates and\nreference indexes. It is not an in-memory analysis function.\n\n```python\nfrom skills._sdk.notebook import run_cli\n\noutput = run_cli(\"spatial-raw-processing\", \"--input\", \"data\u002Frun_bundle.json\",\n                 inputs=[\"data\u002Frun_bundle.json\", \"data\u002FR1.fastq.gz\",\n                         \"data\u002FR2.fastq.gz\", \"data\u002Fbarcodes.tsv\"])\n```\n\nRecord the reference index version in the module README. The executable\nexample uses synthetic upstream outputs and does not run ST-Pipeline.\n\n## When to use\n\nThe user has paired-end spatial-transcriptomics FASTQ files (`read1` =\nspatial barcode + UMI, `read2` = cDNA) plus a STAR genome index, and\nwants the standard ST-Pipeline run that produces a `raw_counts.h5ad`\nwith one row per spatial spot. Single backend: `st_pipeline` (calls\n`run_stpipeline` from `skills\u002Fspatial\u002F_lib\u002Fstpipeline_adapter.py`).\n\nAfter this skill, chain to `spatial-preprocess` for QC + normalisation.\nFor non-spatial scRNA FASTQ use `sc-fastq-qc`. For bulk RNA-seq read\nQC use `bulkrna-read-qc`.\n\n## Inputs & Outputs\n\n**Inputs**\n\n- Input kinds: `file`, `directory`\n- Modalities: visium, slideseq\n- File types: `.fastq`, `.fq`, `.json`, `.yaml`, `.yml`\n- FASTQ structure: valid first record; `paired` layout\n- Directory layouts (any): `paired-fastq`\n\n**Outputs**\n\n- `tables\u002Fgene_qc.csv`\n- `tables\u002Fraw_gene_qc.csv`\n- `tables\u002Fraw_processing_run_summary.csv`\n- `tables\u002Fraw_processing_spatial_points.csv`\n- `tables\u002Fraw_spot_qc.csv`\n- `tables\u002Fraw_top_genes.csv`\n- `tables\u002Frun_summary.csv`\n- `tables\u002Fsaturation_curve.csv`\n- `tables\u002Fspatial_coordinates.csv`\n- `tables\u002Fspot_qc.csv`\n- `tables\u002Fstage_summary.csv`\n- `tables\u002Ftop_genes.csv`\n- `figures\u002Fraw_detected_genes_spatial.png`\n- `figures\u002Fraw_spot_qc_histograms.png`\n- `figures\u002Fraw_top_genes_barplot.png`\n- `figures\u002Fraw_total_counts_spatial.png`\n- `figures\u002Fst_pipeline_saturation_curve.png`\n- `figures\u002Fst_pipeline_stage_attrition.png`\n- `omicsclaw_stpipeline_run.json`\n- `raw_counts.h5ad`\n- `st_pipeline.stderr.txt`\n- `st_pipeline.stdout.txt`\n- `report.md`\n- `result.json`\n- Processed AnnData (`saves_h5ad`) — adds `obs`: `barcode`, `x_array`, `y_array`; `obsm`: `spatial`\n\n## Flow\n\n1. Parse args (or load bundle JSON \u002F YAML from positional `--input`).\n2. `_apply_effective_defaults` fills missing parameter values (threads, trimming, UMI ranges, etc.).\n3. `_validate_real_run_bundle`: check `read1` \u002F `read2` \u002F `ids` \u002F `ref-map` exist and are well-typed; reject duplicate read1=read2; verify FASTQ extension.\n4. Call `run_stpipeline(...)` which shells out to ST-Pipeline (requires the `stpipeline` binary on PATH or `--stpipeline-repo` + `--bin-path`).\n5. Wrap the resulting count matrix into AnnData with `X = raw_counts`, `layers[\"counts\"]`, `raw = raw_counts_snapshot`.\n6. Save `raw_counts.h5ad` and `result.json`. Print \"next: spatial-preprocess on raw_counts.h5ad\".\n\n## Gotchas\n\n- **All input failures raise typed exceptions wrapped in `SystemExit(1)`.** `spatial_raw_processing.py` catches `DataError` \u002F `DependencyError` \u002F `ParameterError` \u002F `ProcessingError` and re-raises as `SystemExit(1)`. The originating raises live in `_validate_real_run_bundle` — it raises `ParameterError(f\"Missing required parameter: {key}\")` for missing `read1`\u002F`read2`\u002F`ids`; raises `DataError(...)` for non-existent files; raises `DataError(\"Resolved read1\u002Fread2 inputs must be FASTQ files.\")` for non-FASTQ extensions; raises `ParameterError` for read1==read2; raises `DataError` for missing \u002F wrong-type STAR index dir; raises `DataError` only when `--ref-annotation` was *provided* but the path is missing or not a file (the param itself is optional — omitting it doesn't raise).\n- **`--read1` \u002F `--read2` \u002F `--ids` \u002F `--ref-map` are all required for real runs** (not enforced by argparse `required=True`, validated later). Missing any → `ParameterError`. Demo mode skips this validation entirely.\n- **The output filename is always `raw_counts.h5ad`** (`spatial_raw_processing.py`). It's not configurable — the contract is consumed by `spatial-preprocess`. Multiple runs to the same `--output` will overwrite.\n- **QC tables and figures are written.** `tables\u002Fspot_qc.csv` and `figures\u002Fraw_total_counts_spatial.png` describe the count matrix; upstream stage and saturation plots depend on available pipeline metrics.\n- **Demo mode skips ST-Pipeline entirely.** `spatial_raw_processing.py` calls `create_demo_upstream_outputs(...)` to fabricate a synthetic `raw_counts.h5ad`. Useful for plumbing checks; does NOT exercise the FASTQ → matrix code path.\n- **`--platform` is a metadata label only.** `_build_parser` documents it as \"Label recorded in outputs\"; ST-Pipeline doesn't branch on it. Common values: `visium`, `visium_hd`, `slideseq`, custom strings.\n\n## Key CLI\n\n```bash\n# Demo (synthetic raw_counts.h5ad — does NOT run ST-Pipeline)\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py --demo --output \u002Ftmp\u002Fspatial_raw_demo\n\n# Real run with explicit args\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py \\\n  --read1 sample_R1.fastq.gz --read2 sample_R2.fastq.gz \\\n  --ids barcodes.tsv \\\n  --ref-map \u002Frefs\u002Fstar_index_human \\\n  --ref-annotation \u002Frefs\u002Fgenes.gtf \\\n  --exp-name visium_001 --platform visium \\\n  --threads 16 \\\n  --output results\u002F\n\n# Real run from bundle JSON\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py \\\n  --input run_bundle.json --output results\u002F\n\n# Slide-seq with custom UMI range\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py \\\n  --read1 R1.fq.gz --read2 R2.fq.gz --ids barcodes.tsv \\\n  --ref-map \u002Frefs\u002Fstar_index --platform slideseq \\\n  --umi-start-position 1 --umi-end-position 8 \\\n  --output results\u002F\n```\n\n## See also\n\n- `references\u002Fparameters.md` — every CLI flag, ST-Pipeline option mapping\n- `references\u002Fmethodology.md` — when ST-Pipeline wins vs Space Ranger; barcode-ID format\n- `references\u002Foutput_contract.md` — `raw_counts.h5ad` schema\n- Adjacent skills: `spatial-preprocess` (downstream — required next step; consumes `raw_counts.h5ad`), `bulkrna-read-qc` \u002F `sc-fastq-qc` (parallel — non-spatial FASTQ paths)\n\n## Dependencies\n\nPython packages this skill's script needs. They are not installed for you — check before a long run.\n\n`anndata`, `matplotlib`, `numpy`, `pandas`, `PyYAML`, `scipy`, `seaborn`\n","# spatial-raw-processing\n\n## Use from a step\n\nThis is CLI_ONLY: ST-Pipeline consumes FASTQ files, barcode coordinates and\nreference indexes. It is not an in-memory analysis function.\n\n```python\nfrom skills._sdk.notebook import run_cli\n\noutput = run_cli(\"spatial-raw-processing\", \"--input\", \"data\u002Frun_bundle.json\",\n                 inputs=[\"data\u002Frun_bundle.json\", \"data\u002FR1.fastq.gz\",\n                         \"data\u002FR2.fastq.gz\", \"data\u002Fbarcodes.tsv\"])\n```\n\nRecord the reference index version in the module README. The executable\nexample uses synthetic upstream outputs and does not run ST-Pipeline.\n\n## When to use\n\nThe user has paired-end spatial-transcriptomics FASTQ files (`read1` =\nspatial barcode + UMI, `read2` = cDNA) plus a STAR genome index, and\nwants the standard ST-Pipeline run that produces a `raw_counts.h5ad`\nwith one row per spatial spot. Single backend: `st_pipeline` (calls\n`run_stpipeline` from `skills\u002Fspatial\u002F_lib\u002Fstpipeline_adapter.py`).\n\nAfter this skill, chain to `spatial-preprocess` for QC + normalisation.\nFor non-spatial scRNA FASTQ use `sc-fastq-qc`. For bulk RNA-seq read\nQC use `bulkrna-read-qc`.\n\n## Inputs & Outputs\n\n**Inputs**\n\n- Input kinds: `file`, `directory`\n- Modalities: visium, slideseq\n- File types: `.fastq`, `.fq`, `.json`, `.yaml`, `.yml`\n- FASTQ structure: valid first record; `paired` layout\n- Directory layouts (any): `paired-fastq`\n\n**Outputs**\n\n- `tables\u002Fgene_qc.csv`\n- `tables\u002Fraw_gene_qc.csv`\n- `tables\u002Fraw_processing_run_summary.csv`\n- `tables\u002Fraw_processing_spatial_points.csv`\n- `tables\u002Fraw_spot_qc.csv`\n- `tables\u002Fraw_top_genes.csv`\n- `tables\u002Frun_summary.csv`\n- `tables\u002Fsaturation_curve.csv`\n- `tables\u002Fspatial_coordinates.csv`\n- `tables\u002Fspot_qc.csv`\n- `tables\u002Fstage_summary.csv`\n- `tables\u002Ftop_genes.csv`\n- `figures\u002Fraw_detected_genes_spatial.png`\n- `figures\u002Fraw_spot_qc_histograms.png`\n- `figures\u002Fraw_top_genes_barplot.png`\n- `figures\u002Fraw_total_counts_spatial.png`\n- `figures\u002Fst_pipeline_saturation_curve.png`\n- `figures\u002Fst_pipeline_stage_attrition.png`\n- `omicsclaw_stpipeline_run.json`\n- `raw_counts.h5ad`\n- `st_pipeline.stderr.txt`\n- `st_pipeline.stdout.txt`\n- `report.md`\n- `result.json`\n- Processed AnnData (`saves_h5ad`) — adds `obs`: `barcode`, `x_array`, `y_array`; `obsm`: `spatial`\n\n## Flow\n\n1. Parse args (or load bundle JSON \u002F YAML from positional `--input`).\n2. `_apply_effective_defaults` fills missing parameter values (threads, trimming, UMI ranges, etc.).\n3. `_validate_real_run_bundle`: check `read1` \u002F `read2` \u002F `ids` \u002F `ref-map` exist and are well-typed; reject duplicate read1=read2; verify FASTQ extension.\n4. Call `run_stpipeline(...)` which shells out to ST-Pipeline (requires the `stpipeline` binary on PATH or `--stpipeline-repo` + `--bin-path`).\n5. Wrap the resulting count matrix into AnnData with `X = raw_counts`, `layers[\"counts\"]`, `raw = raw_counts_snapshot`.\n6. Save `raw_counts.h5ad` and `result.json`. Print \"next: spatial-preprocess on raw_counts.h5ad\".\n\n## Gotchas\n\n- **All input failures raise typed exceptions wrapped in `SystemExit(1)`.** `spatial_raw_processing.py` catches `DataError` \u002F `DependencyError` \u002F `ParameterError` \u002F `ProcessingError` and re-raises as `SystemExit(1)`. The originating raises live in `_validate_real_run_bundle` — it raises `ParameterError(f\"Missing required parameter: {key}\")` for missing `read1`\u002F`read2`\u002F`ids`; raises `DataError(...)` for non-existent files; raises `DataError(\"Resolved read1\u002Fread2 inputs must be FASTQ files.\")` for non-FASTQ extensions; raises `ParameterError` for read1==read2; raises `DataError` for missing \u002F wrong-type STAR index dir; raises `DataError` only when `--ref-annotation` was *provided* but the path is missing or not a file (the param itself is optional — omitting it doesn't raise).\n- **`--read1` \u002F `--read2` \u002F `--ids` \u002F `--ref-map` are all required for real runs** (not enforced by argparse `required=True`, validated later). Missing any → `ParameterError`. Demo mode skips this validation entirely.\n- **The output filename is always `raw_counts.h5ad`** (`spatial_raw_processing.py`). It's not configurable — the contract is consumed by `spatial-preprocess`. Multiple runs to the same `--output` will overwrite.\n- **QC tables and figures are written.** `tables\u002Fspot_qc.csv` and `figures\u002Fraw_total_counts_spatial.png` describe the count matrix; upstream stage and saturation plots depend on available pipeline metrics.\n- **Demo mode skips ST-Pipeline entirely.** `spatial_raw_processing.py` calls `create_demo_upstream_outputs(...)` to fabricate a synthetic `raw_counts.h5ad`. Useful for plumbing checks; does NOT exercise the FASTQ → matrix code path.\n- **`--platform` is a metadata label only.** `_build_parser` documents it as \"Label recorded in outputs\"; ST-Pipeline doesn't branch on it. Common values: `visium`, `visium_hd`, `slideseq`, custom strings.\n\n## Key CLI\n\n```bash\n# Demo (synthetic raw_counts.h5ad — does NOT run ST-Pipeline)\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py --demo --output \u002Ftmp\u002Fspatial_raw_demo\n\n# Real run with explicit args\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py \\\n  --read1 sample_R1.fastq.gz --read2 sample_R2.fastq.gz \\\n  --ids barcodes.tsv \\\n  --ref-map \u002Frefs\u002Fstar_index_human \\\n  --ref-annotation \u002Frefs\u002Fgenes.gtf \\\n  --exp-name visium_001 --platform visium \\\n  --threads 16 \\\n  --output results\u002F\n\n# Real run from bundle JSON\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py \\\n  --input run_bundle.json --output results\u002F\n\n# Slide-seq with custom UMI range\npython skills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py \\\n  --read1 R1.fq.gz --read2 R2.fq.gz --ids barcodes.tsv \\\n  --ref-map \u002Frefs\u002Fstar_index --platform slideseq \\\n  --umi-start-position 1 --umi-end-position 8 \\\n  --output results\u002F\n```\n\n## See also\n\n- `references\u002Fparameters.md` — every CLI flag, ST-Pipeline option mapping\n- `references\u002Fmethodology.md` — when ST-Pipeline wins vs Space Ranger; barcode-ID format\n- `references\u002Foutput_contract.md` — `raw_counts.h5ad` schema\n- Adjacent skills: `spatial-preprocess` (downstream — required next step; consumes `raw_counts.h5ad`), `bulkrna-read-qc` \u002F `sc-fastq-qc` (parallel — non-spatial FASTQ paths)\n\n## Dependencies\n\nPython packages this skill's script needs. They are not installed for you — check before a long run.\n\n`anndata`, `matplotlib`, `numpy`, `pandas`, `PyYAML`, `scipy`, `seaborn`\n",{"name":5,"tags":43,"trigger":46,"description":7},[44,23,45,22,24,21],"spatial","fastq","spatial raw processing, raw spatial fastq, spatial fastq, st_pipeline, st pipeline, barcode coordinates, ids file, visium raw fastq, slide-seq fastq, slideseq fastq, upstream spatial processing","main","90a3bec3e6549bc33dddbf67e4b23869736c49d1","skills\u002Fspatial\u002Fspatial-raw-processing",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":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add TianGzlab\u002FOmicsClaw --skill spatial-raw-processing",{"tool":61,"command":62},"bunx","bunx skills add TianGzlab\u002FOmicsClaw --skill spatial-raw-processing",{"tool":64,"command":65},"pnpm","pnpm dlx skills add TianGzlab\u002FOmicsClaw --skill spatial-raw-processing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002FSKILL.md",true,[69,75,81,87,91,95,99,103],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"examples\u002Fexample_step.py","SCRIPT","脚本",717,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Fexamples\u002Fexample_step.py",{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"r_visualization\u002Fraw_processing_publication_template.R","OTHER","其他",3625,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Fr_visualization\u002Fraw_processing_publication_template.R",{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"r_visualization\u002FREADME.md","REFERENCE","参考文档",1447,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Fr_visualization\u002FREADME.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fmethodology.md",8010,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Freferences\u002Fmethodology.md",{"path":92,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Foutput_contract.md",2001,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Freferences\u002Foutput_contract.md",{"path":96,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fparameters.md",2096,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Freferences\u002Fparameters.md",{"path":100,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":101,"sourceHtmlUrl":102},"spatial_raw_processing.py",12614,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Fspatial_raw_processing.py",{"path":104,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":105,"sourceHtmlUrl":106},"tests\u002Ftest_spatial_raw_processing.py",3507,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fspatial\u002Fspatial-raw-processing\u002Ftests\u002Ftest_spatial_raw_processing.py",[108,126,138,155,178,201],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":119,"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",[114],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[120,121,122,123,124,34,125],"demo skill","demo","tests","fixture","fixture skill","environment",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"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",[],[133,134,135,122,123,136,137],"domains","fake domains","deployment","never","test",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"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",[144],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},[146,147,148,149,150,151,152,153,154],"me","replace me skill","template","directory","skill template","existing skill","new skill","bootstrap","scaffold",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"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",[],[162,163,19,164,30,165,166,167,168,169,170,171,172,173,174,31,175,34,176,177],"velocity","spatial velocity","scvelo","starsolo","time","deep","RNA","kb-python","via","velocyto","rna-velocity","velovi","dynamics","kb","python","deterministic",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"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,185,186,187,188,189,190,191,170,192,193,194,195,196,162,197,34,198,199,200],"trajectory","spatial trajectory","state","terminal","lineage","diffusion","cellrank","palantir","dpt","pseudotime","probability","cell","default","branch","anndata","data",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"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",[],[208,209,19,170,210,211,212,213,214,215,133,216,217,218,219,34,199,220,221,222],"spatial statistics","statistics","nhood-enrichment","co-occurrence","ripley","geary","moran","neighbourhood","ranking","autocorrelation","local","domain","detection","enrichment","stats"]