I have a .vcf file


with this header

##startTime=Fri Mar 29 16:46:32 2019
1   54586   .   T   C   .   PASS    DP=39;MQ=50.55;MQ0=0;NT=ref;QSS=48;QSS_NT=48;ReadPosRankSum=1.92;SGT=TT->CT;SNVSB=0.00;SOMATIC;SomaticEVS=10.83;TQSS=1;TQSS_NT=1    AU:CU:DP:FDP:GU:SDP:SUBDP:TU    0,0:0,0:20:0:0,0:0:0:20,20  0,0:6,6:18:0:0,0:0:0:12,13
1   103241  .   C   T   .   PASS    DP=120;MQ=24.94;MQ0=35;NT=ref;QSS=47;QSS_NT=47;ReadPosRankSum=2.09;SGT=CC->CT;SNVSB=0.00;SOMATIC;SomaticEVS=9.44;TQSS=2;TQSS_NT=2   AU:CU:DP:FDP:GU:SDP:SUBDP:TU    0,1:32,47:33:1:0,0:0:0:0,5  0,

The "DP" field in the vcf shows the depth of the individual samples; So in this file, the first locus has the following format fields:

AU:CU:DP:FDP:GU:SDP:SUBDP:TU    0,0:0,0:20:0:0,0:0:0:20,20  0,0:6,6:18:0:0,0:0:0:12,13

So according to this (DP field of normal and tumor samples), normal sample has a depth of 20 and tumor sample has a depth of 18.

So how I could extract the read depth for all loci as described for the first position? The desired output would be like this

  Sample   Type   CHROM       POS    REF  ALT       Tumor_Depth Normal_Depth
1 CHC2432T  SNV  chr1 102961055   G   A                       64           62      
2 CHC2432T  SNV  chr1 105492588   A   T                       66           73     
3 CHC2432T  SNV  chr1 108628724   C   T                       45           54    
4 CHC2432T  SNV  chr1 109692113   G   T                       53           29     
5 CHC2432T  SNV  chr1 109692114   G   T                       53           31     
6 CHC2432T  SNV  chr1 120676701   T   C                       48           87   
  • 1
    $\begingroup$ Do you mean all loci with a depth of 20 and 18 or do you just want to extract all DP values from the vcf? Could you edit your question and show what your desired output would be from the two lines in your example? $\endgroup$ – terdon Apr 12 '19 at 14:16
  • 1
    $\begingroup$ You don't have any table in your post. Can you please edit and show us the exact output you would want from the two input lines you show? $\endgroup$ – terdon Apr 12 '19 at 14:53
  • 1
    $\begingroup$ Also, your vcf file is truncated (see tail -n1 _double_filtered_013_pre_indels.vcf). I assume that's just the copy you uploaded to dropbox, but check your actual file to be sure. $\endgroup$ – terdon Apr 12 '19 at 14:57
  • 1
    $\begingroup$ That's a completely different format to what you originally asked for! Where are we supposed to get the Tumor_Varcount from? Where do we get the Gene_Name from? What's the Driver? $\endgroup$ – terdon Apr 12 '19 at 15:00
  • 1
    $\begingroup$ If you tell me what the variant count is, I might be able to help. Do you mean how many variants were found in that exact position in the file? Whatever it is, you need to make sure your question is actually asking for what you need! $\endgroup$ – terdon Apr 12 '19 at 15:17

To extract the DP fields from a VCF file, you could use a tool like bcftools query:

Extracts fields from VCF or BCF files and outputs them in user-defined format.

You could start from something like this:

bcftools query -Hf 'CHC2432T\t%TYPE\t%CHROM\t%POS\t%REF\t%ALT[\t%DP]\n' file.vcf
| improve this answer | |
  • $\begingroup$ Sorry, how I can add RU=TAC part to tumour sample? $\endgroup$ – Exhausted Apr 13 '19 at 8:13

You can do the extraction part with the GATK tool VariantsToTable, as described here:


The usage example from that doc:

gatk VariantsToTable \
    -V input.vcf \
    -O output.table

would produce a file that looks like:

 CHROM  POS        TYPE   HSCX1010N.AD  HSCX1010T.AD
 1      31782997   SNP    77,0          53,4
 1      40125052   SNP    97,0          92,7
 1      65068538   SNP    49,0          35,4
 1      111146235  SNP    69,1          77,4

So you might still need to reorder columns etc but that should allow you to at least get the values out in a tabular format that will be easier to work with.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.