Skip to content
Back to skills

Genomics Variant Calling

ASecurity

Load when summarising small variants (SNVs / indels) from a VCF or computing demo-pattern

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 6, 2026
datapythongobash

Works with

  • cli

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add lilinji/GeneTind-Life-Skills --skill genomics-variant-calling --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Genomics Variant Calling?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Genomics Variant Calling
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/lilinji-genomics-variant-calling/badge)](https://www.skillsdirectory.com/skills/lilinji-genomics-variant-calling)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
# AUTO-GENERATED header from skill.yaml β€” do not edit by hand.
# Edit skill.yaml, then run: python scripts/generate_skill_md.py <skill_dir>
name: genomics-variant-calling
description: Load when summarising small variants (SNVs / indels) from a VCF or computing demo-pattern
  variant statistics (Ti/Tv ratio, per-chromosome distribution, SNP / indel split). Skip when filtering
  / merging VCFs (use genomics-vcf-operations); calling structural variants (use genomics-sv-detection);
  adding functional annotations (use genomics-variant-annotation).
version: 0.5.0
author: OmicsClaw
license: MIT
emoji: πŸ”Ž
tags:
- genomics
- variant-calling
- snv
- indel
- vcf
- ti-tv
requires:
- numpy
- pandas
---

# genomics-variant-calling

## When to use

The user has a VCF (or a BAM intended for calling) and wants
small-variant summary statistics: total variant count, SNP / indel
split, Ti/Tv ratio, per-chromosome distribution. The script does
**not** invoke an external caller (GATK HaplotypeCaller, Mutect2,
DeepVariant, FreeBayes, etc.) β€” it summarises an existing VCF or
generates a demo VCF for downstream-skill smoke tests.

For variant filtering / normalisation use `genomics-vcf-operations`;
for SVs use `genomics-sv-detection`; for functional annotation use
`genomics-variant-annotation`.

## Inputs & Outputs

<!-- AUTO-GENERATED from skill.yaml (interface) β€” do not edit by hand. Regenerate: python scripts/generate_skill_md.py <skill_dir> -->

**Inputs**

- File types: `.vcf`, `.bam`

**Outputs**

- `tables/variants.csv`
- `tables/variants_per_chrom.csv`
- `report.md`
- `result.json`
- Produces artifact `genomics.variant_table` as `tables/variants.csv` (`csv`)

## Flow

1. Load VCF (`--input <file.vcf>`) or generate a demo VCF at `output_dir/demo_variants.vcf` with `--n-variants` records (`genomics_variant_calling.py:94`).
2. Parse records; classify SNP vs indel; compute Ti/Tv on biallelic SNPs.
3. Aggregate per-chromosome counts.
4. Write `tables/variants.csv` (`genomics_variant_calling.py:300`) + `tables/variants_per_chrom.csv` (`:308`) + `report.md` + `result.json` envelope (`:314`).

## Gotchas

- **No external caller is invoked.** This skill does NOT run GATK / Mutect2 / DeepVariant / FreeBayes β€” it ingests a VCF and summarises it. To actually CALL variants, run an external pipeline first; this skill consumes the resulting VCF.
- **`--input` REQUIRED unless `--demo`.** `genomics_variant_calling.py:289` raises `ValueError("--input required when not using --demo")`; non-existent paths raise `FileNotFoundError` at `:292`.
- **`--n-variants` only affects `--demo`** (`genomics_variant_calling.py:278`, default 500). It is silently ignored when `--input` is set.
- **Multi-allelic VCF rows ARE split per-ALT.** `genomics_variant_calling.py:181-182` iterates `for a in alt.split(","):` and emits one CSV row per ALT allele. Output row counts therefore exceed input VCF line counts on multi-allelic data β€” no need to pre-normalise unless your downstream consumer requires one row per VCF line.
- **Demo VCF is a minimal SNV set** (no indels, no structural variants, no genotype fields). Useful for orchestrator smoke tests; do NOT use for biological inference.

## Key CLI

```bash
# Demo (500 synthetic SNVs)
python omicsclaw.py run genomics-variant-calling --demo --output /tmp/var_demo

# Custom demo size
python omicsclaw.py run genomics-variant-calling --demo --n-variants 2000 \
  --output /tmp/var_demo_large

# Real VCF
python omicsclaw.py run genomics-variant-calling \
  --input cohort.vcf --output results/
```

## See also

- `references/parameters.md` β€” every CLI flag
- `references/methodology.md` β€” SNP / indel / Ti-Tv definitions
- `references/output_contract.md` β€” `tables/variants.csv` schema
- Adjacent skills: `genomics-alignment` (upstream β€” produces the BAM that calling consumes), `genomics-vcf-operations` (downstream β€” VCF filtering / merging), `genomics-variant-annotation` (downstream β€” functional impact), `genomics-sv-detection` (parallel β€” SVs instead of small variants)

Files in this skill

  • SKILL.md4 KB
  • genomics_variant_calling.py12 KB
  • references/methodology.md6.1 KB
  • references/output_contract.md798 B
  • references/parameters.md267 B
  • skill.yaml1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…