[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DTKJRKGDCFP77FPF9HD4EZ":3,"skill-same:01M6DTKJRKGDCFP77FPF9HD4EZ":100},{"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":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6DTKJRKGDCFP77FPF9HD4EZ","sc-velocity-prep",null,"Load when generating spliced \u002F unspliced layers from Cell Ranger BAM, FASTQ, STARsolo output, or velocyto loom — the prerequisite for sc-velocity. Skip when AnnData already has spliced+unspliced layers (use sc-velocity); any non-velocity preprocessing (use sc-preprocessing).","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\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"sc velocity prep","velocity","scrna","spliced-unspliced","velocyto","velocity-prep","starsolo","singlecell","bam","FASTQ","prepare","preprocessing","cell","RNA","ready","use","anndata","2026-11-10 10:12:30",false,"---\nname: sc-velocity-prep\ndescription: Load when generating spliced \u002F unspliced layers from Cell Ranger BAM, FASTQ, STARsolo output,\n  or velocyto loom — the prerequisite for sc-velocity. Skip when AnnData already has spliced+unspliced\n  layers (use sc-velocity); any non-velocity preprocessing (use sc-preprocessing).\ntrigger: RNA velocity prep, prepare spliced unspliced layers, velocyto, starsolo velocyto, velocity-ready AnnData\ntags:\n- singlecell\n- scrna\n- velocity-prep\n- velocyto\n- starsolo\n- spliced-unspliced\n---\n\n# sc-velocity-prep\n\n## Use from a step\n\nThis is CLI_ONLY: it runs external preparation tools or imports their files.\n\n```python\nfrom skills._sdk.notebook import run_cli\n\nrun_cli(\"sc-velocity-prep\", \"--input\", \"data\u002Fvelocity.loom\",\n        \"--base-h5ad\", \"data\u002Fclustered.h5ad\",\n        inputs=[\"data\u002Fvelocity.loom\", \"data\u002Fclustered.h5ad\"])\n```\n\nThe demo splits PBMC3k counts into fixed 82% spliced, 14% unspliced and\n4% ambiguous layers. It checks packaging, not velocity biology or external\ntool installation. There is no `_api.py` for this skill.\n\n## When to use\n\nThe user has raw Cell Ranger output (BAM + barcodes), STARsolo output,\nor paired FASTQs and needs an AnnData with `layers[\"spliced\"]` \u002F\n`layers[\"unspliced\"]` (and optional `layers[\"ambiguous\"]`) before\nrunning `sc-velocity`. Two backends:\n\n- `velocyto` (default) — runs `velocyto run` against a Cell Ranger BAM\n  using a GTF. Produces a `.loom` and reads it back into AnnData.\n- `starsolo` — re-runs alignment from FASTQ via STARsolo with the\n  Velocyto solo subworkflow, or loads existing STARsolo Velocyto\n  output directly when detected.\n\n`--base-h5ad` lets you merge the velocity layers into an\nalready-processed AnnData (preserves `obs` \u002F `obsm` \u002F clustering).\n\nFor velocity estimation itself use `sc-velocity`. For non-velocity\nscRNA preprocessing use `sc-preprocessing`.\n\n## Inputs & Outputs\n\n**Inputs**\n\n- Input kinds: `file`, `directory`\n- Modalities: scrna\n- File types: `.loom`, `.fastq`, `.fq`\n- FASTQ structure: valid first record; `paired` layout\n- Directory layouts (any): `paired-fastq`, `cellranger-output`, `starsolo-velocity`\n\n**Outputs**\n\n- `tables\u002Ftop_velocity_genes.csv`\n- `tables\u002Fvelocity_layer_summary.csv`\n- `figures\u002Fvelocity_gene_balance.png`\n- `figures\u002Fvelocity_layer_fraction.png`\n- `figures\u002Fvelocity_layer_summary.png`\n- `figures\u002Fvelocity_top_genes_stacked.png`\n- `processed.h5ad`\n- `velocity_input.h5ad`\n- `figures\u002Fmanifest.json`, `figure_data\u002Fmanifest.json`, plot-data CSV files\n- `reproducibility\u002Fcommands.sh`, `reproducibility\u002Frequirements.txt`\n- Conditional backend artifacts under `artifacts\u002F`; imported loom\u002FSTARsolo inputs do not create new BAM files.\n- `report.md`\n- `result.json`\n- Processed AnnData — `spliced`, `unspliced` layers; `ambiguous` only when supplied by the source\n\n## Flow\n\n1. Resolve `--input` (Cell Ranger dir \u002F STARsolo dir \u002F FASTQ \u002F `.loom`).\n2. For `velocyto`: locate BAM + barcodes, validate `--gtf` (or auto-pick from `resources\u002Fsinglecell\u002Freferences\u002Fgtf\u002F`), run `velocyto run`, load `.loom`.\n3. For `starsolo`: detect existing STARsolo Velocyto output and load directly, OR re-run STARsolo Velocyto with `--reference` + `--chemistry` + auto-detected `--whitelist`.\n4. Optionally merge layers into `--base-h5ad`.\n5. Compute layer totals (`tables\u002Fvelocity_layer_summary.csv`) and top-gene balance.\n6. Save `processed.h5ad`, tables, figures, `report.md`, `result.json`.\n\n## Gotchas\n\n- **BAM-backed velocyto needs a GTF.** `sc_velocity_prep.py` raises `ValueError(\"BAM-backed velocyto preparation requires a GTF file. Pass `--gtf \u002Fabs\u002Fpath\u002Fto\u002Fgenes.gtf`, or keep one under `resources\u002Fsinglecell\u002Freferences\u002Fgtf\u002F`. ...\")`. Auto-detection only fires if a project-local GTF lives at the recommended path.\n- **FASTQ-backed STARsolo needs a STAR index AND explicit chemistry.** `sc_velocity_prep.py` raises `ValueError(\"FASTQ-backed STARsolo velocity preparation requires a STAR genome directory. ...\")` if `--reference` is missing and nothing's at `resources\u002Fsinglecell\u002Freferences\u002Fstarsolo\u002F`. `sc_velocity_prep.py` raises `ValueError(\"FASTQ-backed STARsolo velocity preparation requires an explicit `--chemistry`.\")` when `--chemistry auto` is left as the default — STARsolo cannot infer 10x v2 vs v3 vs v4 from FASTQ alone.\n- **STARsolo whitelist is auto-guessed; missing → hard fail.** `sc_velocity_prep.py` raises `ValueError(\"Could not infer a compatible STARsolo whitelist. Pass `--whitelist \u002Fabs\u002Fpath\u002Fto\u002F3M-february-2018.txt`, or keep the whitelist under `resources\u002Fsinglecell\u002Freferences\u002Fwhitelists\u002F`. ...\")`. The guesser uses the reference path + chemistry; a non-standard reference layout breaks it.\n- **STARsolo Velocyto matrix loader has a fallback for index-name quirks.** `sc_velocity_prep.py` is documented as \"with a local fallback for index-name quirks\"; `_load_starsolo_velocyto_dir_safe` raises `FileNotFoundError(f\"Could not locate STARsolo Velocyto matrices under: {path}\")` when nothing matches even with the fallback. Common when STARsolo finished partial \u002F was killed mid-run.\n- **`--input` mandatory unless `--demo` (parser.error, exit code 2).** `sc_velocity_prep.py` calls `parser.error(\"--input required when not using --demo\")`. Once provided, `main` raises `FileNotFoundError(f\"Input path not found: {input_path}\")` for a missing path.\n- **`--method` choices are exactly `velocyto` \u002F `starsolo`.** `sc_velocity_prep.py` declares the choices via argparse; `kb-python` is mentioned in upstream-prep docstrings but is not a valid `--method` value here. Use the dedicated kb-python tooling outside OmicsClaw if you need that path.\n- `sc_velocity_prep.py:main` defaults to eight threads. Reference directories named in error messages are suggestions, not shipped assets. Verify the `velocyto` command can import before a long BAM run; migration preflight found `undefined symbol: __log10_finite` in the installed copy despite its presence on PATH.\n- `sc_velocity_prep.py:main` writes a new `.raw` snapshot and records `.X` as raw counts even when `--base-h5ad` contains normalized `.X`. `_lib\u002Fupstream.py:merge_velocity_layers` also replaces `layers[\"counts\"]` with the velocity input's counts (the sum of its available splicing layers for imported data). Inspect this existing contract mismatch before treating the merged object's `.X` or `.raw` as counts; the spliced\u002Funspliced layers remain separate.\n\n## Key CLI\n\n```bash\n# Demo (proportional PBMC3k layers; no velocyto \u002F STARsolo)\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py --demo --output \u002Ftmp\u002Fsc_velo_prep_demo\n\n# velocyto from a Cell Ranger run (BAM-backed)\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Fcellranger_run\u002F --output results\u002F \\\n  --method velocyto --gtf \u002Frefs\u002FHomo_sapiens.GRCh38.gtf\n\n# Load existing STARsolo Velocyto output directly\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Fstarsolo_run\u002F --output results\u002F \\\n  --method starsolo\n\n# Re-run STARsolo from FASTQ (chemistry must be explicit)\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Ffastqs\u002F --output results\u002F \\\n  --method starsolo --reference \u002Frefs\u002Fstar_index --chemistry 10xv3\n\n# Merge velocity layers into an existing processed AnnData\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Fcellranger_run\u002F --output results\u002F \\\n  --method velocyto --gtf \u002Frefs\u002FHomo_sapiens.GRCh38.gtf \\\n  --base-h5ad \u002Fpath\u002Fto\u002Fclustered.h5ad\n```\n\n## See also\n\n- `references\u002Fparameters.md` — every CLI flag, per-backend tunables\n- `references\u002Fmethodology.md` — when velocyto vs STARsolo wins; whitelist conventions\n- `references\u002Foutput_contract.md` — `layers[\"spliced\"]` \u002F `layers[\"unspliced\"]` \u002F `layers[\"ambiguous\"]` schema\n- Adjacent skills: `sc-count` \u002F `sc-multi-count` (upstream — produce the Cell Ranger \u002F STARsolo output this skill consumes), `sc-velocity` (downstream — consumes `layers[\"spliced\"]` + `layers[\"unspliced\"]`), `sc-clustering` (parallel — pass clustered output as `--base-h5ad` to keep clusters when adding velocity layers)\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`, `scanpy`, `scipy`, `seaborn`\n","# sc-velocity-prep\n\n## Use from a step\n\nThis is CLI_ONLY: it runs external preparation tools or imports their files.\n\n```python\nfrom skills._sdk.notebook import run_cli\n\nrun_cli(\"sc-velocity-prep\", \"--input\", \"data\u002Fvelocity.loom\",\n        \"--base-h5ad\", \"data\u002Fclustered.h5ad\",\n        inputs=[\"data\u002Fvelocity.loom\", \"data\u002Fclustered.h5ad\"])\n```\n\nThe demo splits PBMC3k counts into fixed 82% spliced, 14% unspliced and\n4% ambiguous layers. It checks packaging, not velocity biology or external\ntool installation. There is no `_api.py` for this skill.\n\n## When to use\n\nThe user has raw Cell Ranger output (BAM + barcodes), STARsolo output,\nor paired FASTQs and needs an AnnData with `layers[\"spliced\"]` \u002F\n`layers[\"unspliced\"]` (and optional `layers[\"ambiguous\"]`) before\nrunning `sc-velocity`. Two backends:\n\n- `velocyto` (default) — runs `velocyto run` against a Cell Ranger BAM\n  using a GTF. Produces a `.loom` and reads it back into AnnData.\n- `starsolo` — re-runs alignment from FASTQ via STARsolo with the\n  Velocyto solo subworkflow, or loads existing STARsolo Velocyto\n  output directly when detected.\n\n`--base-h5ad` lets you merge the velocity layers into an\nalready-processed AnnData (preserves `obs` \u002F `obsm` \u002F clustering).\n\nFor velocity estimation itself use `sc-velocity`. For non-velocity\nscRNA preprocessing use `sc-preprocessing`.\n\n## Inputs & Outputs\n\n**Inputs**\n\n- Input kinds: `file`, `directory`\n- Modalities: scrna\n- File types: `.loom`, `.fastq`, `.fq`\n- FASTQ structure: valid first record; `paired` layout\n- Directory layouts (any): `paired-fastq`, `cellranger-output`, `starsolo-velocity`\n\n**Outputs**\n\n- `tables\u002Ftop_velocity_genes.csv`\n- `tables\u002Fvelocity_layer_summary.csv`\n- `figures\u002Fvelocity_gene_balance.png`\n- `figures\u002Fvelocity_layer_fraction.png`\n- `figures\u002Fvelocity_layer_summary.png`\n- `figures\u002Fvelocity_top_genes_stacked.png`\n- `processed.h5ad`\n- `velocity_input.h5ad`\n- `figures\u002Fmanifest.json`, `figure_data\u002Fmanifest.json`, plot-data CSV files\n- `reproducibility\u002Fcommands.sh`, `reproducibility\u002Frequirements.txt`\n- Conditional backend artifacts under `artifacts\u002F`; imported loom\u002FSTARsolo inputs do not create new BAM files.\n- `report.md`\n- `result.json`\n- Processed AnnData — `spliced`, `unspliced` layers; `ambiguous` only when supplied by the source\n\n## Flow\n\n1. Resolve `--input` (Cell Ranger dir \u002F STARsolo dir \u002F FASTQ \u002F `.loom`).\n2. For `velocyto`: locate BAM + barcodes, validate `--gtf` (or auto-pick from `resources\u002Fsinglecell\u002Freferences\u002Fgtf\u002F`), run `velocyto run`, load `.loom`.\n3. For `starsolo`: detect existing STARsolo Velocyto output and load directly, OR re-run STARsolo Velocyto with `--reference` + `--chemistry` + auto-detected `--whitelist`.\n4. Optionally merge layers into `--base-h5ad`.\n5. Compute layer totals (`tables\u002Fvelocity_layer_summary.csv`) and top-gene balance.\n6. Save `processed.h5ad`, tables, figures, `report.md`, `result.json`.\n\n## Gotchas\n\n- **BAM-backed velocyto needs a GTF.** `sc_velocity_prep.py` raises `ValueError(\"BAM-backed velocyto preparation requires a GTF file. Pass `--gtf \u002Fabs\u002Fpath\u002Fto\u002Fgenes.gtf`, or keep one under `resources\u002Fsinglecell\u002Freferences\u002Fgtf\u002F`. ...\")`. Auto-detection only fires if a project-local GTF lives at the recommended path.\n- **FASTQ-backed STARsolo needs a STAR index AND explicit chemistry.** `sc_velocity_prep.py` raises `ValueError(\"FASTQ-backed STARsolo velocity preparation requires a STAR genome directory. ...\")` if `--reference` is missing and nothing's at `resources\u002Fsinglecell\u002Freferences\u002Fstarsolo\u002F`. `sc_velocity_prep.py` raises `ValueError(\"FASTQ-backed STARsolo velocity preparation requires an explicit `--chemistry`.\")` when `--chemistry auto` is left as the default — STARsolo cannot infer 10x v2 vs v3 vs v4 from FASTQ alone.\n- **STARsolo whitelist is auto-guessed; missing → hard fail.** `sc_velocity_prep.py` raises `ValueError(\"Could not infer a compatible STARsolo whitelist. Pass `--whitelist \u002Fabs\u002Fpath\u002Fto\u002F3M-february-2018.txt`, or keep the whitelist under `resources\u002Fsinglecell\u002Freferences\u002Fwhitelists\u002F`. ...\")`. The guesser uses the reference path + chemistry; a non-standard reference layout breaks it.\n- **STARsolo Velocyto matrix loader has a fallback for index-name quirks.** `sc_velocity_prep.py` is documented as \"with a local fallback for index-name quirks\"; `_load_starsolo_velocyto_dir_safe` raises `FileNotFoundError(f\"Could not locate STARsolo Velocyto matrices under: {path}\")` when nothing matches even with the fallback. Common when STARsolo finished partial \u002F was killed mid-run.\n- **`--input` mandatory unless `--demo` (parser.error, exit code 2).** `sc_velocity_prep.py` calls `parser.error(\"--input required when not using --demo\")`. Once provided, `main` raises `FileNotFoundError(f\"Input path not found: {input_path}\")` for a missing path.\n- **`--method` choices are exactly `velocyto` \u002F `starsolo`.** `sc_velocity_prep.py` declares the choices via argparse; `kb-python` is mentioned in upstream-prep docstrings but is not a valid `--method` value here. Use the dedicated kb-python tooling outside OmicsClaw if you need that path.\n- `sc_velocity_prep.py:main` defaults to eight threads. Reference directories named in error messages are suggestions, not shipped assets. Verify the `velocyto` command can import before a long BAM run; migration preflight found `undefined symbol: __log10_finite` in the installed copy despite its presence on PATH.\n- `sc_velocity_prep.py:main` writes a new `.raw` snapshot and records `.X` as raw counts even when `--base-h5ad` contains normalized `.X`. `_lib\u002Fupstream.py:merge_velocity_layers` also replaces `layers[\"counts\"]` with the velocity input's counts (the sum of its available splicing layers for imported data). Inspect this existing contract mismatch before treating the merged object's `.X` or `.raw` as counts; the spliced\u002Funspliced layers remain separate.\n\n## Key CLI\n\n```bash\n# Demo (proportional PBMC3k layers; no velocyto \u002F STARsolo)\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py --demo --output \u002Ftmp\u002Fsc_velo_prep_demo\n\n# velocyto from a Cell Ranger run (BAM-backed)\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Fcellranger_run\u002F --output results\u002F \\\n  --method velocyto --gtf \u002Frefs\u002FHomo_sapiens.GRCh38.gtf\n\n# Load existing STARsolo Velocyto output directly\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Fstarsolo_run\u002F --output results\u002F \\\n  --method starsolo\n\n# Re-run STARsolo from FASTQ (chemistry must be explicit)\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Ffastqs\u002F --output results\u002F \\\n  --method starsolo --reference \u002Frefs\u002Fstar_index --chemistry 10xv3\n\n# Merge velocity layers into an existing processed AnnData\npython skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py \\\n  --input \u002Fdata\u002Fcellranger_run\u002F --output results\u002F \\\n  --method velocyto --gtf \u002Frefs\u002FHomo_sapiens.GRCh38.gtf \\\n  --base-h5ad \u002Fpath\u002Fto\u002Fclustered.h5ad\n```\n\n## See also\n\n- `references\u002Fparameters.md` — every CLI flag, per-backend tunables\n- `references\u002Fmethodology.md` — when velocyto vs STARsolo wins; whitelist conventions\n- `references\u002Foutput_contract.md` — `layers[\"spliced\"]` \u002F `layers[\"unspliced\"]` \u002F `layers[\"ambiguous\"]` schema\n- Adjacent skills: `sc-count` \u002F `sc-multi-count` (upstream — produce the Cell Ranger \u002F STARsolo output this skill consumes), `sc-velocity` (downstream — consumes `layers[\"spliced\"]` + `layers[\"unspliced\"]`), `sc-clustering` (parallel — pass clustered output as `--base-h5ad` to keep clusters when adding velocity layers)\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`, `scanpy`, `scipy`, `seaborn`\n",{"name":5,"tags":40,"trigger":41,"description":7},[25,20,23,22,24,21],"RNA velocity prep, prepare spliced unspliced layers, velocyto, starsolo velocyto, velocity-ready AnnData","main","90a3bec3e6549bc33dddbf67e4b23869736c49d1","skills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep",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":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add TianGzlab\u002FOmicsClaw --skill sc-velocity-prep",{"tool":56,"command":57},"bunx","bunx skills add TianGzlab\u002FOmicsClaw --skill sc-velocity-prep",{"tool":59,"command":60},"pnpm","pnpm dlx skills add TianGzlab\u002FOmicsClaw --skill sc-velocity-prep","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002FSKILL.md",true,[64,70,74,78,82,86,92,96],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"checklist.md","REFERENCE","参考文档",4389,"https:\u002F\u002Fgithub.com\u002Ftranthanhcntt\u002Fskills-agent\u002Fblob\u002Fmain\u002Fbmad-dev-story\u002Fchecklist.md",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Fmethodology.md",8337,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Freferences\u002Fmethodology.md",{"path":75,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Foutput_contract.md",3133,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Freferences\u002Foutput_contract.md",{"path":79,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fparameters.md",1346,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Freferences\u002Fparameters.md",{"path":83,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fr_visualization.md",288,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Freferences\u002Fr_visualization.md",{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"sc_velocity_prep.py","SCRIPT","脚本",32795,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Fsc_velocity_prep.py",{"path":93,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":94,"sourceHtmlUrl":95},"tests\u002Ftest_sc_velocity_prep.py",3601,"https:\u002F\u002Fgithub.com\u002FTianGzlab\u002FOmicsClaw\u002Fblob\u002Fmain\u002Fskills\u002Fsinglecell\u002Fscrna\u002Fsc-velocity-prep\u002Ftests\u002Ftest_sc_velocity_prep.py",{"path":97,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":98,"sourceHtmlUrl":99},"workflow.md",23320,"https:\u002F\u002Fgithub.com\u002Ftranthanhcntt\u002Fskills-agent\u002Fblob\u002Fmain\u002Fbmad-dev-story\u002Fworkflow.md",[101,119,131,148,170,191],{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":112,"publishedAt":35},"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",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[113,114,115,116,117,33,118],"demo skill","demo","tests","fixture","fixture skill","environment",{"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":125,"publishedAt":35},"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",[],[126,127,128,115,116,129,130],"domains","fake domains","deployment","never","test",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":138,"publishedAt":35},"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",[137],{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},[139,140,141,142,143,144,145,146,147],"me","replace me skill","template","directory","skill template","existing skill","new skill","bootstrap","scaffold",{"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":154,"publishedAt":35},"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,155,156,157,158,24,159,160,31,161,162,22,163,164,165,166,167,33,168,169],"spatial velocity","Spatial","scvelo","input","time","deep","kb-python","via","rna-velocity","velovi","dynamics","upstream","kb","python","deterministic",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":35},"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",[],[156,177,178,179,180,181,182,183,162,184,185,186,187,30,19,188,33,189,34,190],"trajectory","spatial trajectory","state","terminal","lineage","diffusion","cellrank","palantir","dpt","pseudotime","probability","default","branch","data",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":197,"publishedAt":35},"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",[],[198,199,156,162,200,201,202,203,204,205,126,206,207,208,209,33,34,210,211,212],"spatial statistics","statistics","nhood-enrichment","co-occurrence","ripley","geary","moran","neighbourhood","ranking","autocorrelation","local","domain","detection","enrichment","stats"]