How to check which samples has more uncalled genotypes in multi-sample vcf
Hi,
I have multi-sample vcf and in this vcf, there are many sites which have uncalled or missing genotype. Is there a way to check which sample has greater number of uncalled genotypes in vcf. So that I can exclude that sample from further analysis.
• 2,490 views
•
link
1 answer
A one liner using bioalcidaejdk: http://lindenb.github.io/jvarkit/BioAlcidaeJdk.html
$ java -jar dist/bioalcidaejdk.jar -e 'stream().flatMap(G->G.getGenotypes().stream()).filter(G->!G.isCalled()).map(G->G.getSampleName()).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())).forEach((K,V)->println(K+"\t"+V));' src/test/resources/test_vcf01.vcf | sort -t $'\t' -k2,2n
S3 8
S4 9
S5 14
S6 18
S2 23
S1 73
stream().get a stream of variantsflatMap(G->G.getGenotypes().stream()).map to a stream of genotypesfilter(G->!G.isCalled()).keep the uncalled genotypemap(G->G.getSampleName()).map to the sample namecollect(Collectors.groupingBy(Function.identity(), Collectors.counting()))convert to associative array sample/count- .
forEach((K,V)->println(K+"\t"+V));print the results.
• 0 views
•
link
Log in to answer this question.
Hello BAGeno,
see my answer in this thread. You just have to adopt the genotype in the
awkscript or if it's a small file and speed doesn't matter this more easy one.fin swimmer