VCF-ANNOTATE(1)
π VCF-ANNOTATE π
okay bestie, so like β this is the manual page for vcf-annotate, one of the User Commands, and it is literally about to become your new hyperfixation. sit down, grab a strawberry π, and let's get into it.
β¨ NAME β¨
vcf-annotate β annotate a VCF file, add filters or custom annotations. it's giving glow-up for your variants π
π SYNOPSIS π
cat in.vcf | vcf-annotate [OPTIONS] > out.vcf
π¦ DESCRIPTION π¦
About: it annotates a VCF file, adding filters or custom annotations. it requires a tabix indexed file with annotations β no index, no service, periodt.
Currently it annotates only the INFO column, but bestie it will be extended on demand. so like, if you need more, ask, and it shall be done π
π OPTIONS π
-a,--annotations <file.gz>β the tabix indexed file that holds all the annotations. the format isCHR\tFROM[\tTO][\tVALUE]+. yes that's a real format, yes the backslashes are doing something, iykyk.-c,--columns <list>β the list of columns in the annotation file, like for real for real. e.g.CHROM,FROM,TO,-,INFO/STR,INFO/GN. that little dash in there? that's saying "ignore the third column, she's not invited π". and ifTOis not present, it just assumesTOequalsFROM. chill of it honestly.-d,--description <file|string>β header annotation, bestie. e.g.key=INFO,ID=HM2,Number=0,Type=Flag,Description='HapMap2 membership'. you can also read the descriptions from a file, one annotation per line. options on options, we love to see it π«Ά-f,--filter <list>β apply filters. the list goes in this format:flt1=value/flt2/flt3=value/etc.-h,-?,--helpβ this help message. hi π
π Filters π
+β apply all filters with default values. and yes it can be overridden, see the example below, don't worry I got you β¨-Xβ exclude the filterX. bye girl π not you.
1,StrandBiasβ FLOAT β min P-value for strand bias (given PV4) [0.0001]2,BaseQualBiasβ FLOAT β min P-value for baseQ bias [1e-100]3,MapQualBiasβ FLOAT β min P-value for mapQ bias [0]4,EndDistBiasβ FLOAT β min P-value for end distance bias [0.0001]a,MinABβ INT β minimum number of alternate bases [2]c,SnpClusterβ INT1,INT2 β filters clusters of'INT1'or more SNPs within a run of'INT2'bases [[]β yeah, empty, no default, she's a blank slate π§]D,MaxDPβ INT β maximum read depth [10000000]d,MinDPβ INT β minimum read depth [2]q,MinMQβ INT β minimum RMS mapping quality for SNPs [10]Q,Qualβ INT β minimum value of the QUAL field [10]r,RefNβ reference base is N [[]β again, no default, just vibes]W,GapWinβ INT β window size for filtering adjacent gaps [10]w,SnpGapβ INT β SNP withinINTbp around a gap to be filtered [10]
πΈ Example πΈ
here's the moment you've been waiting for, the example, the main character of this manpage:
zcat in.vcf.gz | vcf-annotate -a annotations.gz -d descriptions.txt | bgzip -c >out.vcf.gz
zcat in.vcf.gz | vcf-annotate -f +/-a/c=3,10/q=3/d=5/-D -a annotations.gz -d descriptions.txt | bgzip -c >out.vcf.gz
see that +/-a/c=3,10/q=3/d=5/-D? that's the override moment β + grabs all the filters, -a and -D kick out MinAB and MaxDP, and the rest get their custom values. she ate π₯
π Where descriptions.txt contains:
key=INFO,ID=GN,Number=1,Type=String,Description='Gene Name'
key=INFO,ID=STR,Number=1,Type=Integer,Description='Strand'
π real talk though bestie: the annotation file must be tabix indexed or nothing works. that's not a vibe, that's a requirement.
and that's the whole page, no cap. this manual is for vcf-annotate version 0.1.5, dated July 2011 β an absolute icon, an elder, a legend, and honestly? still slaying. go annotate something, you're gonna do great π«Άβ¨π
π¦ where this page comes from
- debian bookworm: vcftools 0.1.16-3+b1 Β· GPL-3.0-only
- debian trixie: vcftools 0.1.16-3+b1 Β· GPL-3.0-only
- ubuntu jammy: vcftools 0.1.16-3 Β· GPL-3.0-only
- ubuntu noble: vcftools 0.1.16-3 Β· GPL-3.0-only
- ubuntu questing: vcftools 0.1.16-3
- ubuntu resolute: vcftools 0.1.17-1 Β· GPL-3.0-only
- ubuntu stonking: vcftools 0.1.17-1 Β· GPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms