我可以在 vcf.gz 个文件上使用 tabix 吗?
Can I use tabix on vcf.gz files?
作为初学者,我可能有一个愚蠢的问题,但我有几个压缩的不同个人的 VCF 文件 (.vcf.gz)。我想使用 vcf-merge 将这些文件合并到一个包含所有个体的 VCF 文件中。
但是,这需要使用 bgzip 实际压缩文件并使用 tabix 建立索引。有谁知道我是否可以在不先解压缩的情况下从 .vcf.gz 文件转到 tabix 索引和 bgzip 文件(它需要大量存储空间,文件真的很大)。
谢谢!
如果我没理解错的话,你有:
file.vcf.gz
这是一个 gzip 压缩的 VCF 文件(不是 block-gzip 压缩)
你想要:
file.vcf.bgz
这是一个 block-gzip 压缩的 VCF 文件,其内容与 file.vcf.gz
和 相同
file.vcf.bgz.tbi
这是 file.vcf.bgz
的 tabix 索引
并且您想在不解压缩的情况下进行此转换。
不幸的是,无论如何我都不知道要避免解压缩数据以便以阻塞形式重新压缩它。您可以通过流式传输数据来保持内存成本不变:
gzip --decompress --to-stdout file.vcf.gz \
| bgzip --index --index-name file.vcf.bgz.tbi -@4 \
> file.vcf.bgz
第一行解压file.vcf.gz
,将解压后的输出写入标准输出流。第二行 block-gzip 压缩标准输入流(将压缩后的数据写入标准输出流)并生成一个名为 file.vcf.bgz.tbi
的索引文件。 -@4
告诉 bgzip
使用四个线程。如果您的机器有更多内核,您可以增加它。最后一行将 block-gzip 压缩输出定向到名为 file.vcf.bgz
.
的文件
在我的 MacBook Pro 上,重新压缩一个 214MB 的文件需要一分钟的时间。
注意:这不会删除 file.vcf.gz
,如果您不再需要它,您需要自己删除它。
作为初学者,我可能有一个愚蠢的问题,但我有几个压缩的不同个人的 VCF 文件 (.vcf.gz)。我想使用 vcf-merge 将这些文件合并到一个包含所有个体的 VCF 文件中。
但是,这需要使用 bgzip 实际压缩文件并使用 tabix 建立索引。有谁知道我是否可以在不先解压缩的情况下从 .vcf.gz 文件转到 tabix 索引和 bgzip 文件(它需要大量存储空间,文件真的很大)。
谢谢!
如果我没理解错的话,你有:
file.vcf.gz
这是一个 gzip 压缩的 VCF 文件(不是 block-gzip 压缩)
你想要:
file.vcf.bgz
这是一个 block-gzip 压缩的 VCF 文件,其内容与file.vcf.gz
和 相同
file.vcf.bgz.tbi
这是file.vcf.bgz
的 tabix 索引
并且您想在不解压缩的情况下进行此转换。
不幸的是,无论如何我都不知道要避免解压缩数据以便以阻塞形式重新压缩它。您可以通过流式传输数据来保持内存成本不变:
gzip --decompress --to-stdout file.vcf.gz \
| bgzip --index --index-name file.vcf.bgz.tbi -@4 \
> file.vcf.bgz
第一行解压file.vcf.gz
,将解压后的输出写入标准输出流。第二行 block-gzip 压缩标准输入流(将压缩后的数据写入标准输出流)并生成一个名为 file.vcf.bgz.tbi
的索引文件。 -@4
告诉 bgzip
使用四个线程。如果您的机器有更多内核,您可以增加它。最后一行将 block-gzip 压缩输出定向到名为 file.vcf.bgz
.
在我的 MacBook Pro 上,重新压缩一个 214MB 的文件需要一分钟的时间。
注意:这不会删除 file.vcf.gz
,如果您不再需要它,您需要自己删除它。