Agent skill

bio-variant-normalization

Normalize indel representation and split multiallelic variants using bcftools norm. Use when comparing variants from different callers or preparing VCF for downstream analysis.

FreedomIntelligencegithub.com/FreedomIntelligenceGitHub ↗
claude-codeships scripts
Install
npx skills add FreedomIntelligence/OpenClaw-Medical-Skills --skill bio-variant-normalization --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 3
SKILL.md size: 8 KB
Bundled scripts: yes
Path: skills/bio-variant-normalization/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 2,909
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

## Version Compatibility Reference examples tested with: bcftools 1.19+ Before using code patterns, verify installed versions match. If versions differ: - Python: `pip show <package>` then `help(module.function)` to check signatures - CLI: `<tool> --version` then `<tool> --help` to confirm flags If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying. # Variant Normalization Left-align indels and split multiallelic sites using bcftools norm. ## Why Normalize? The same variant can be represented multiple ways: ``` # Same deletion, different representations chr1 100 ATCG A (right-aligned) chr1 100 ATC A (left-aligned, normalized) chr1 101 TCG T (different position) ``` Normalization ensures consistent representation for: - Comparing variants from different callers - Database lookups (dbSNP, ClinVar) - Merging VCF files ## bcftools norm **Goal:** Left-align indels and check reference allele consistency. **Approach:** Use bcftools norm with a reference FASTA to shift indels to the leftmost position and optionally fix/exclude REF mismatches. **"Normalize my VCF before comparing callers"

What's inside
Steps it walks through
  1. Version Compatibility
  2. Why Normalize?
  3. bcftools norm
  4. Left-Align Indels
  5. Check for Normalization Issues
  6. Multiallelic Sites
  7. Split Multiallelic to Biallelic
  8. Split SNPs Only
  9. Split Indels Only
  10. Join Biallelic to Multiallelic
  11. Split Options
  12. Combined Normalization
  13. Standard Normalization Pipeline
  14. Remove Duplicates After Splitting
Ships with 2 files
  • examples/normalize_vcf.sh
  • usage-guide.md
Commands it runs
bcftools norm -f reference.fa input.vcf.gz -Oz -o normalized.vcf.gz
bcftools norm -f reference.fa -c s input.vcf.gz > /dev/null
Reports REF allele mismatches
bcftools norm -m-any input.vcf.gz -Oz -o split.vcf.gz
bcftools norm -m-snps input.vcf.gz -Oz -o split_snps.vcf.gz
bcftools norm -m-indels input.vcf.gz -Oz -o split_indels.vcf.gz
bcftools norm -m+any input.vcf.gz -Oz -o merged.vcf.gz
bcftools norm -f reference.fa -m-any input.vcf.gz -Oz -o normalized.vcf.gz
bcftools index normalized.vcf.gz
bcftools norm -f reference.fa -m-any -d exact input.vcf.gz -Oz -o normalized.vcf.gz
More from OpenClaw-Medical-Skills
All skills →
About this skill
What does the bio-variant-normalization skill do?

Normalize indel representation and split multiallelic variants using bcftools norm. Use when comparing variants from different callers or preparing VCF for downstream analysis.

How do I install it?

Run `npx skills add FreedomIntelligence/OpenClaw-Medical-Skills --skill bio-variant-normalization --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From FreedomIntelligence/OpenClaw-Medical-Skills, a repository with 2,909 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going