Hi Everyone, i want to remove all sites with more than 5% of no-call (./.) among all the samples in my VCF file, could you please guide me how i can do that variant filtration??
Thanks!
Hi Everyone, i want to remove all sites with more than 5% of no-call (./.) among all the samples in my VCF file, could you please guide me how i can do that variant filtration??
Thanks!
using vcffilterjs https://github.com/lindenb/jvarkit/wiki/VCFFilterJS
java -jar dist/vcffilterjs.jar -e 'var n=0.0;for(var i=0;i< variant.getNSamples();i++ ) { if(variant.getGenotype(i).isNoCall()) n++;} n/ variant.getNSamples() < 0.05' input.vcf
Thanks @Pierre.. That worked perfectly fine for me..
However i am curious and interested to use VCFFILTERJS more, Could you please indicate any guideline for writing java scripts expressions particularly for VCFFILTER -e. I have seen some examples but i wanna know about basic functions like: variant.getNSamples() or variant.getGenotype().isNoCall() , etc.
this tools uses a javascript engine (nashorn) that can read the underlying java classes of the htsjdk library like https://samtools.github.io/htsjdk/javadoc/htsjdk/htsjdk/variant/variantcontext/VariantContext.html . It uses a old and well-known java technology called reflection: https://docs.oracle.com/javase/tutorial/reflect/ .