1

我有一个约 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,但需要先解压缩文件。是否可以部分解压缩它以便我可以试试这个?

4

2 回答 2

4

仔细检查您的命令行是否有bcftools view.

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

  2. 检查您的命令中没有错误的输入和输出文件名。注意-o(小写o)命令行选项指定输出文件名,命令行末尾的文件名就是输入文件名。

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

于 2019-05-08T20:12:50.947 回答
3

我在 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 

退出视图q并将g您带到文件的顶部。

于 2019-05-09T16:45:09.690 回答