【问题标题】:Can I use tabix on vcf.gz files?我可以在 vcf.gz 文件上使用 tabix 吗?
【发布时间】:2016-11-24 09:10:30
【问题描述】:

作为初学者,我可能有一个愚蠢的问题,但我有几个不同个人的 VCF 文件被压缩 (.vcf.gz)。我想使用 vcf-merge 将这些文件合并到一个包含所有个人的 VCF 文件中。

但是,这需要使用 bgzip 实际压缩文件并使用 tabix 进行索引。有谁知道我是否可以从 .vcf.gz 文件转到 tabix 索引和 bgzip 文件而无需先解压缩(这需要大量存储空间,文件非常大)。

谢谢!

【问题讨论】:

    标签: indexing merge gzip vcf-vcard


    【解决方案1】:

    如果我理解正确,你有:

    • file.vcf.gz 这是一个 gzip 压缩的 VCF 文件(不是 block-gzip 压缩的)

    而你想要:

    • file.vcf.bgz 是块 gzip 压缩的 VCF 文件,内容与 file.vcf.gz 相同,并且
    • file.vcf.bgz.tbifile.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 使用四个线程。如果您的机器有更多内核,您可以增加此值。最后一行将块 gzip 压缩输出定向到名为 file.vcf.bgz 的文件。

    在我的 MacBook Pro 上,这个过程需要一分钟来重新压缩一个 214MB 的文件。

    注意:这不会删除 file.vcf.gz,如果您不再需要它,您需要自己删除它。

    【讨论】:

    • 谢谢,我认为这样的事情会奏效!非常有帮助:)
    • 那么,如果我们将 file.vcf.bgz 重命名为 file.vcf.gz,是否 100% 可以,因为它们是相同的文件?
    • 我不完全理解你的问题@bapors。更改文件名永远不会更改其内容。确实,块 gzip 压缩文件也是有效的 gzip 压缩文件(反之不是为真)。
    猜你喜欢
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多