「生信Debug」[E::bcf_hdr_parse] Could not parse the header, sample line not found

从网上下载了一个VCF文件,打算使用bcftools view查看一下基本信息,结果遇到了如下的报错

[E::bcf_hdr_parse] Could not parse the header, sample line not found
Failed to open SNP.vcf.gz: could not parse header

直接用less能够查看该VCF的信息,看起来也非常正常,除了INFO这一列的记录为为缺失

「生信Debug」[E::bcf_hdr_parse] Could not parse the header, sample line not found_第1张图片
INFO缺失

但是我发现在header中是有INFO的定义信息(如下图)

「生信Debug」[E::bcf_hdr_parse] Could not parse the header, sample line not found_第2张图片
INFO定义

根据我的C语言的理解,它在解析数据的时候,会严格按照格式定义进行数据处理,因此既然header中有INFO,那么在数据行的INFO就应该有对应的信息。而目前的情况是,header中有INFO信息,但是在数据上却缺失了该信息,可能这就是问题的由来。

因此,我们需要先用grep把header的INFO行给删除掉,那么就能用bcftools进行处理了

zgrep -v '##INFO' SNP.vcf.gz  | bcftools view -o SNP.bcf -Ob &

另外我发现,当我使用vcftools处理数据的时候,并不会报错,只会出现警告

Warning: Expected at least 2 parts in FORMAT entry: ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
Warning: Expected at least 2 parts in FORMAT entry: ID=RGQ,Number=1,Type=Integer,Description="Unconditional reference genotype confidence, encoded as a phred quality -10*log10 p(genotype call is wrong)">
Warning: Expected at least 2 parts in INFO entry: ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
Warning: Expected at least 2 parts in INFO entry: ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
...

其他一些有趣的事情

VCF文件是会记录运行过的命令,我发现下载的VCF文件里记录着GATK运行过的一些命令,我对这些命令的运行时间进行了整理

  • CombineGVCFs: Wed Feb 21 03:10:24 CST 2018
  • CombineVariants: Mon Feb 26 11:29:36 CST 2018
  • GenotypeGVCFs: Fri Feb 23 21:30:45 CST 2018
  • HaplotypeCaller: Sun Feb 11 22:26:02 CST 2018
  • SelectVariants: Sat Feb 24 18:31:18 CST 2018
  • VariantFiltration: Sun Feb 25 09:01:29 CST 2018

我们可以发现运行HaplotypeCaller是在2018年的2月11日,合并GVCF则是2月21日,说明生成GVCF文件用了10天。之后,2月23日对GVCF文件进行基因型鉴定,说明合GVCF并花了2天,后续的操作基本上都只需要一天,例如筛选变异位点,过滤变异等。

这篇文章发表在2019年11月,我们假设写稿、投稿、反复修改的时间是1年吧,也就是从得到VCF文件到分析结束起码要到9个月, 我们会发现得到VCF的上游分析可能只占总体的10%。

你可能感兴趣的:(「生信Debug」[E::bcf_hdr_parse] Could not parse the header, sample line not found)