bio-variant-normalization
Normalize indel representation, decompose MNPs, and split multiallelic variants using bcftools norm. Use when comparing variants from different callers, preparing VCF for database annotation, or merging VCFs from multiple sources.
npx skills add BioTender-max/awesome-bio-agent-skills --skill variant-normalization --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
## Version Compatibility Reference examples tested with: bcftools 1.19+, cyvcf2 0.30+ 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 The `--atomize` flag requires bcftools 1.17+. Earlier versions require `vt decompose_blocksub` as an alternative. 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, decompose MNPs, and split multiallelic sites using bcftools norm. ## When Normalization is Mandatory Not normalizing before certain operations leads to missed matches and false discordance. Normalization is required: - **Before comparing variants from different callers.** Each caller may represent the same indel at different positions or encode MNPs differently. Without normalization, identical variants appear discordant. - **Before database annotation.** dbSNP, ClinVar, and gnomAD store variants in canonical left-aligned, parsimonious representation. A right-aligned
- Version Compatibility
- When Normalization is Mandatory
- Why Normalize?
- Recommended Normalization Pipeline
- Left-Alignment
- Check for Normalization Issues
- Multiallelic Splitting
- Split Multiallelic to Biallelic
- Splitting Caveats
- Split Options
- Join Biallelic to Multiallelic
- Atomize Complex Variants (MNP Decomposition)
- Atomize MNPs to SNPs
- Atomize with Old Record Tag
bcftools norm --atomize input.vcf.gz | \ bcftools norm -m- | \ bcftools norm -f reference.fa -Oz -o normalized.vcf.gz bcftools index normalized.vcf.gz bcftools norm -m- input.vcf.gz | \ 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 bcftools norm -m-any input.vcf.gz -Oz -o split.vcf.gz bcftools norm -m+any input.vcf.gz -Oz -o merged.vcf.gz bcftools norm --atomize input.vcf.gz -Oz -o atomized.vcf.gz
What does the bio-variant-normalization skill do?
Normalize indel representation, decompose MNPs, and split multiallelic variants using bcftools norm. Use when comparing variants from different callers, preparing VCF for database annotation, or merging VCFs from multiple sources.
How do I install it?
Run `npx skills add BioTender-max/awesome-bio-agent-skills --skill 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 BioTender-max/awesome-bio-agent-skills, a repository with 135 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.
