tiangzlab/omicsclaw/sc-velocity-prep
Claude Code and agent skill by tiangzlab/omicsclaw
- community
Checking that the SKILL.md file is still in the repository.
Load when generating spliced / unspliced layers from Cell Ranger BAM, FASTQ, STARsolo output,
Install
npx vskill@latest install tiangzlab/omicsclaw/sc-velocity-prepSKILL.md
sc-velocity-prep
Use from a step
This is CLI_ONLY: it runs external preparation tools or imports their files.
The demo splits PBMC3k counts into fixed 82% spliced, 14% unspliced and 4% ambiguous layers. It checks packaging, not velocity biology or external tool installation. There is no _api.py for this skill.
When to use
The user has raw Cell Ranger output (BAM + barcodes), STARsolo output, or paired FASTQs and needs an AnnData with layers["spliced"] / layers["unspliced"] (and optional layers["ambiguous"]) before running sc-velocity. Two backends:
velocyto(default) — runsvelocyto runagainst a Cell Ranger BAM
using a GTF. Produces a .loom and reads it back into AnnData.
starsolo— re-runs alignment from FASTQ via STARsolo with the
Velocyto solo subworkflow, or loads existing STARsolo Velocyto output directly when detected.
--base-h5ad lets you merge the velocity layers into an already-processed AnnData (preserves obs / obsm / clustering).
For velocity estimation itself use sc-velocity. For non-velocity scRNA preprocessing use sc-preprocessing.
Inputs & Outputs
Inputs
- Input kinds:
file,directory - Modalities: scrna
- File types:
.loom,.fastq,.fq - FASTQ structure: valid first record;
pairedlayout - Directory layouts (any):
paired-fastq,cellranger-output,starsolo-velocity
Outputs
tables/top_velocity_genes.csvtables/velocity_layer_summary.csvfigures/velocity_gene_balance.pngfigures/velocity_layer_fraction.pngfigures/velocity_layer_summary.pngfigures/velocity_top_genes_stacked.pngprocessed.h5advelocity_input.h5adfigures/manifest.json,figure_data/manifest.json, plot-data CSV filesreproducibility/commands.sh,reproducibility/requirements.txt- Conditional backend artifacts under
artifacts/; imported loom/STARsolo inputs do not create new BAM files. report.mdresult.json- Processed AnnData —
spliced,unsplicedlayers;ambiguousonly when supplied by the source
Flow
- Resolve
--input(Cell Ranger dir / STARsolo dir / FASTQ /.loom). - For
velocyto: locate BAM + barcodes, validate--gtf(or auto-pick fromresources/singlecell/references/gtf/), runvelocyto run, load.loom. - For
starsolo: detect existing STARsolo Velocyto output and load directly, OR re-run STARsolo Velocyto with--reference+--chemistry+ auto-detected--whitelist. - Optionally merge layers into
--base-h5ad. - Compute layer totals (
tables/velocity_layer_summary.csv) and top-gene balance. - Save
processed.h5ad, tables, figures,report.md,result.json.
Gotchas
- BAM-backed velocyto needs a GTF.
sc_velocity_prep.pyraisesValueError("BAM-backed velocyto preparation requires a GTF file. Pass--gtf /abs/path/to/genes.gtf, or keep one underresources/singlecell/references/gtf/. ..."). Auto-detection only fires if a project-local GTF lives at the recommended path. - FASTQ-backed STARsolo needs a STAR index AND explicit chemistry.
sc_velocity_prep.pyraisesValueError("FASTQ-backed STARsolo velocity preparation requires a STAR genome directory. ...")if--referenceis missing and nothing's atresources/singlecell/references/starsolo/.sc_velocity_prep.pyraisesValueError("FASTQ-backed STARsolo velocity preparation requires an explicit--chemistry.")when--chemistry autois left as the default — STARsolo cannot infer 10x v2 vs v3 vs v4 from FASTQ alone. - STARsolo whitelist is auto-guessed; missing → hard fail.
sc_velocity_prep.pyraisesValueError("Could not infer a compatible STARsolo whitelist. Pass--whitelist /abs/path/to/3M-february-2018.txt, or keep the whitelist underresources/singlecell/references/whitelists/. ..."). The guesser uses the reference path + chemistry; a non-standard reference layout breaks it. - STARsolo Velocyto matrix loader has a fallback for index-name quirks.
sc_velocity_prep.pyis documented as "with a local fallback for index-name quirks";_load_starsolo_velocyto_dir_saferaisesFileNotFoundError(f"Could not locate STARsolo Velocyto matrices under: {path}")when nothing matches even with the fallback. Common when STARsolo finished partial / was killed mid-run. - `--input` mandatory unless `--demo` (parser.error, exit code 2).
sc_velocity_prep.pycallsparser.error("--input required when not using --demo"). Once provided,mainraisesFileNotFoundError(f"Input path not found: {input_path}")for a missing path. - `--method` choices are exactly `velocyto` / `starsolo`.
sc_velocity_prep.pydeclares the choices via argparse;kb-pythonis mentioned in upstream-prep docstrings but is not a valid--methodvalue here. Use the dedicated kb-python tooling outside OmicsClaw if you need that path. sc_velocity_prep.py:maindefaults to eight threads. Reference directories named in error messages are suggestions, not shipped assets. Verify thevelocytocommand can import before a long BAM run; migration preflight foundundefined symbol: __log10_finitein the installed copy despite its presence on PATH.sc_velocity_prep.py:mainwrites a new.rawsnapshot and records.Xas raw counts even when--base-h5adcontains normalized.X._lib/upstream.py:merge_velocity_layersalso replaceslayers["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.Xor.rawas counts; the spliced/unspliced layers remain separate.
Key CLI
See also
references/parameters.md— every CLI flag, per-backend tunablesreferences/methodology.md— when velocyto vs STARsolo wins; whitelist conventionsreferences/output_contract.md—layers["spliced"]/layers["unspliced"]/layers["ambiguous"]schema- Adjacent skills:
sc-count/sc-multi-count(upstream — produce the Cell Ranger / STARsolo output this skill consumes),sc-velocity(downstream — consumeslayers["spliced"]+layers["unspliced"]),sc-clustering(parallel — pass clustered output as--base-h5adto keep clusters when adding velocity layers)
Dependencies
Python packages this skill's script needs. They are not installed for you — check before a long run.
anndata, matplotlib, numpy, pandas, scanpy, scipy, seaborn
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/singlecell/scrna/sc-velocity-prep/SKILL.md
Popularity
- Repository stars
- 161
- Repository forks
- 27
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 15 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/tiangzlab/omicsclaw/sc-velocity-prep)