2016-11-24 65 views
1

作爲初學者,我可能有一個愚蠢的問題,但我有幾個壓縮的不同個人的VCF文件(.vcf.gz)。我想通過使用vcf-merge將這些文件合併到一個包含所有個人的VCF文件中。我可以在vcf.gz文件上使用tabix嗎?

但是,這需要將文件實際上用bgzip壓縮並用tabix索引。有誰知道我是否可以從一個.vcf.gz文件去tabix索引和bgzip文件,而不先解壓縮(它需要大量的存儲空間,文件真的很大)。

謝謝!

回答

4

如果我理解正確的話,你必須:

  • file.vcf.gz這是一個gzip壓縮VCF文件(塊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 [email protected] \ 
    > file.vcf.bgz 

第一行解壓縮file.vcf.gz,寫解壓後的輸出到標準輸出流。第二行block-gzip壓縮標準輸入流(將壓縮數據寫入標準輸出流)並生成一個名爲file.vcf.bgz.tbi的索引文件。 [email protected]告訴bgzip使用四個線程。如果您的機器具有更多內核,則可以增加此項。最後一行將block-gzip壓縮輸出指向一個名爲file.vcf.bgz的文件。

在我的MacBook Pro上,這個過程花了一分鐘時間來重新壓縮一個214MB的文件。

注意:這不會刪除file.vcf.gz,如果你不再需要,你需要自己刪除它。

+0

謝謝,我想這樣的事情會工作!非常有幫助:) – visse226

+0

因此,如果我們將file.vcf.bgz重命名爲file.vcf.gz,它會100%好嗎,因爲它們是相同的文件? – bapors

+0

我不完全理解你的問題@bapors。更改文件的名稱將永遠不會更改其內容。確實,block-gzip壓縮文件也是一個有效的gzip壓縮文件(相反是_not_ true)。 –

相關問題