This is a test version of Biostars. For the public version, visit https://www.biostars.org.
query PL field with bcftools

Hi BioStars,

I'd like to find the highest PL value (posterior likelihood for each possible genotype) for each sample in my VCf file.

From the documentation, I know that you can do MAX(DP) which will find you the highest genotype depth over all samples

Since the PL field has a value for each possible genotype (e.g. 0/0, 0/1 and 1/1 for a biallelic variant, so 3 PL values), this mechanism is not applicable here.

If for instance

PL=0.233,0,0.767

Then I want to find 0.767

Is this possible with bcftools v1.2?

Thanks for the input.

snp bcftools

2 answers

Quite old thread but can be useful for others. You can use SNPSift for this, with this great app, you can access the three PL values by index, for instance GEN[0].PL[0] will be the first PL score for the first sample

bcftools query -f '[%SAMPLE %PL\n]' in.vcf.gz | awk '{N=split($2,a,/[,]/);for(i=1;i<=N;i++) {n=int(a[i]);if(hash[$1]<n){hash[$1]=n;}}} END {for(S in hash) {print S,hash[S]}}'

Log in to answer this question.