是否可以部分解压缩.vcf文件?

时间:2019-05-08 18:32:50

标签: linux gzip bioinformatics vcf genome

我有一个〜300 GB的压缩vcf文件(.vcf.gz),其中包含约700只狗的基因组。我只对其中的几只狗感兴趣,尽管目前我正在获得一台计算机,但我没有足够的空间来解压缩整个文件。是否可以仅解压缩文件的一部分以开始测试我的脚本?

我正在尝试在样本子集中某个位置的特定SNP。我尝试使用 bcftools 无济于事:(如果有人能找出问题所在,我也将非常感激。我为输出创建了一个空文件(722g.990.SNP.INDEL。 chrAll.vcf.bgz),但返回以下错误)

bcftools view -f PASS --threads 8 -r chr9:55252802-55252810 -o 722g.990.SNP.INDEL.chrAll.vcf.gz -O z 722g.990.SNP.INDEL.chrAll.vcf.bgz
  

无法识别输出类型“ 722g.990.SNP.INDEL.chrAll.vcf.bgz”

我打算尝试 awk ,但需要先将文件解压缩。可以部分解压缩它,以便我尝试吗?

2 个答案:

答案 0 :(得分:3)

再次检查您的命令行中是否有bcftools view

  1. 当您为-O指定无效值(大写O)时,bcftools将打印错误消息'无法识别输出类型“某物” 这样的命令行选项-O something。根据错误消息,您似乎已将文件名放在此处。

  2. 检查命令中输入和输出文件的名称是否错误。请注意,-o(小写o)命令行选项指定了 output 文件名,命令行末尾的文件名是 input 文件名。

此外,您还写道您为输出创建了一个空文件。您不需要这样做,bcftools将创建输出文件。

答案 1 :(得分:1)

我对bcftools的经验不多,但是一般来说,如果您想使用awk来处理gzip压缩文件,则可以通过管道传输到该文件,以便仅根据需要解压缩该文件,也可以通过管道直接通过gzip获得结果,因此也将其压缩,例如

gzip -cd largeFile.vcf.gz | awk '{ <some awk> }' | gzip -c > newfile.txt.gz

zcat也是gzip -cd的别名,-c是标准输出的输入/输出,-d是解压缩的。

作为旁注,如果您尝试仅对大文件的一部分执行操作,您可能还会发现出色的工具less很有用,它可用于查看大文件,仅加载需要的部分, -S选项特别适用于具有许多列的宽格式,因为它停止换行,而-N则用于显示行号。

less -S largefile.vcf.gz 

使用qg退出视图,将您带到文件顶部。