This is a test version of Biostars. For the public version, visit https://www.biostars.org.
RTG vcfeval: number of variants reported by vcfeval is not equal to actual number of variants.

Hello community,

I am running the rtg-tool vcfeval as follow:

rtg vcfeval  
--baseline baseSnps.vcf.gz \
--calls calledSnps.vcf.gz \
--output rtg-results \
--template ref.sdf \
--sample "Macrogen-48-0511,48-0511" \
--output-mode "split"

The ref.sdf is generated from GRCh37. Both VCF files were based on this build.

I noticed however, that the number of variants reported by this tool is a lot less that the actual number of variants found in both vcf files.

baseSnps.vcf.gz contains 378285 variants calledSnps.vcf.gz contains 1125224 variants

However, looking at the summary:

Threshold  True-pos-baseline  True-pos-call  False-pos  False-neg  Precision  Sensitivity  F-measure
----------------------------------------------------------------------------------------------------
     None            3508339        3509333     525719      52825     0.8697       0.9852     0.9238

TPbase + FN = 3508339 + 52825 = 3561164
TPcall + FP = 3509333 + 525719 = 4035052

Is there something, I'm missing?

rtg vcfeval validation hg19

1 answer

By default, vcfeval excludes variants that are not PASS or . in the VCF FILTER column (you can use --all-records if you want to include these).

There are other variant classes that are out-of-scope for the matching process, such as SVs, very long indels, non-variant records (i.e. GT is 0/0), etc.

If you run vcfeval in annotation mode (--output-mode annotate), the output VCFs will contain every record present on the input, with additional annotation fields indicating status, so you could see specifically which variants are being ignored.

Thanks for stopping by Len. Trust that all is well.

Log in to answer this question.