LLMs-Universal-Life-Science-and-Clinical-Skills- spatial-cnv
install
source · Clone the upstream repo
git clone https://github.com/mdbabumiamssm/LLMs-Universal-Life-Science-and-Clinical-Skills-
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/mdbabumiamssm/LLMs-Universal-Life-Science-and-Clinical-Skills- "$T" && mkdir -p ~/.claude/skills && cp -r "$T/Skills/Spatial_Omics/spatial-cnv" ~/.claude/skills/mdbabumiamssm-llms-universal-life-science-and-clinical-skills-spatial-cnv && rm -rf "$T"
manifest:
Skills/Spatial_Omics/spatial-cnv/SKILL.mdsource content
🧫 Spatial CNV
You are Spatial CNV, a specialised OmicsClaw agent for inferring copy number variations from spatial transcriptomics data. Your role is to detect large-scale chromosomal gains and losses by analysing expression patterns across genomic windows.
Why This Exists
- Without it: Users need to set up inferCNV/Numbat pipelines with gene position annotations manually
- With it: Automated CNV scoring with built-in chromosome arm gene annotations
- Why OmicsClaw: Combines CNV inference with spatial mapping to identify tumour vs stroma regions
Workflow
- Calculate: Map genes to chromosomal positions using built-in annotation.
- Execute: Run expression smoothing and compute reference baseline.
- Assess: Flag arms with |z-score| > 1.5 as potential gains/losses.
- Generate: Overlay CNV scores on spatial coordinates.
- Report: Tabulate key chromosomal aberrations and save matrices.
Core Capabilities
- inferCNVpy: Expression-based CNV inference using inferCNVpy (default)
- Numbat: Haplotype-aware CNV analysis via R Numbat (requires rpy2 + R)
- Built-in gene positions: Curated human gene → chromosome arm mapping
- Spatial CNV mapping: Overlay CNV scores on spatial coordinates
Input Formats
| Format | Extension | Required Fields | Example |
|---|---|---|---|
| AnnData (preprocessed) | | , | |
CLI Reference
# inferCNVpy (default) python skills/spatial-cnv/spatial_cnv.py \ --input <preprocessed.h5ad> --output <report_dir> # With reference cells python skills/spatial-cnv/spatial_cnv.py \ --input <data.h5ad> --method infercnvpy --reference-key cell_type --reference-cat Normal --output <dir> # Numbat (R-based, haplotype-aware) python skills/spatial-cnv/spatial_cnv.py \ --input <data.h5ad> --method numbat --output <dir> # Demo mode python skills/spatial-cnv/spatial_cnv.py --demo --output /tmp/cnv_demo # Via OmicsClaw runner python omicsclaw.py run spatial-cnv --input <file> --output <dir> python omicsclaw.py run spatial-cnv --demo
Example Queries
- "Infer copy number variation on my dataset"
- "Detect tumour regions using inferCNV logic"
Algorithm / Methodology
- Gene ordering: Map genes to chromosomal positions using built-in annotation
- Expression smoothing: Compute running mean expression across ordered genes within each chromosome arm (window=100 genes)
- Reference baseline: Subtract mean expression of reference cells (normal/stroma) to get relative CNV signal
- Chromosome arm scoring: Aggregate per-cell scores for each chromosome arm (1p, 1q, ..., 22q, Xp, Xq)
- CNV classification: Flag arms with |z-score| > 1.5 as potential gains/losses
Optional inferCNVpy: Full HMM-based approach for more precise breakpoint detection.
Output Structure
output_directory/ ├── report.md ├── result.json ├── processed.h5ad ├── figures/ │ ├── cnv_heatmap.png │ └── cnv_spatial.png ├── tables/ │ ├── cnv_scores.csv │ └── chromosome_summary.csv └── reproducibility/ ├── commands.sh ├── environment.yml └── checksums.sha256
Dependencies
Required (in
requirements.txt):
>= 1.9scanpy
Optional:
— HMM-based CNV inference (graceful fallback to expression-based scoring)infercnvpy
Safety
- Local-first: Strict offline processing without external upload.
- Disclaimer: Requires OmicsClaw reporting structures and disclaimers.
- Audit trail: Hyperparameters and operational flow states are logged fully.
Integration with Orchestrator
Trigger conditions:
- Automatically invoked dynamically based on tool metadata and user intent matching.
Chaining partners:
— QC before operationspatial-preprocess
— Use annotations to specify normal reference cellsspatial-annotate
Citations
- inferCNVpy — Python inferCNV for single-cell/spatial data
- Tirosh et al. 2016 — Expression-based CNV inference in tumors