我无法提取 gzipped vcf 文件的所有内容。该文件是我从 dbGaP 下载的加密 tarball 的一部分。解密后,我可以使用以下命令提取文件目录:
tar -xvf phg001.tar
当我使用 Plink 将其中一个提取的 vcf 文件转换为 bed 文件时,出现错误消息:
Error: Line 20 of .vcf file has fewer tokens than expected.
我在 zcat 的帮助下统计了文件中的行数。
zcat chr22-filtered.dose.vcf.gz | wc -l
Output:
gzip: chr22-filtered.dose.vcf.gz: decompression OK, trailing garbage ignored
19
如果我尝试解压缩文件,我会收到类似的关于尾随垃圾的消息。
gzip: test22.vcf.gz: decompression OK, trailing garbage ignored
文件太大,只有20行,如果我不使用zcat计算行数,文件确实更多。
wc -l chr22-filtered.dose.vcf.gz
3632730 chr22-filtered.dose.vcf.gz
如何提取压缩文件的所有内容。
感谢所有建议。
保罗
更新: 以下是 pigz 的结果:
pigz -ltv chr22-filtered.dose.vcf.gz
method check timestamp compressed original reduced name
gzip 8 3388a535 ------ ----- 17965 65280 72.5% chr22-filtere...
gzip 8 50734e24 ------ ----- 1356 39654 96.6% <...>
pigz: warning: chr22-filtered.dose.vcf.gz: trailing junk was ignored
ls-vcf.c1$ pigz -ltv chr13-filtered.dose.vcf.gz
method check timestamp compressed original reduced name
gzip 8 15c3d4c1 ------ ----- 18431 65280 71.8% chr13-filtere...
gzip 8 e17a4674 ------ ----- 3221 39654 91.9% <...>
pigz: warning: chr13-filtered.dose.vcf.gz: trailing junk was ignored
pigz -ltv chr2-filtered.dose.vcf.gz
method check timestamp compressed original reduced name
gzip 8 f4cfe9f0 ------ ----- 18245 65280 72.1% chr2-filtered...
gzip 8 e8370ff3 ------ ----- 2345 39654 94.1% <...>
pigz: warning: chr2-filtered.dose.vcf.gz: trailing junk was ignored
pigz -ltv chr21-filtered.dose.vcf.gz
method check timestamp compressed original reduced name
gzip 8 967d168f ------ ----- 19756 65280 69.7% chr21-filtere...
gzip 8 9e27cda1 ------ ----- 8588 39654 78.3% <...>
pigz: warning: chr21-filtered.dose.vcf.gz: trailing junk was ignored
所有文件的输出都是相似的。当我尝试使用 gunzip 提取时,所有文件都有相同的错误。
我猜
chr22-filtered.dose.vcf.gz
是千兆字节的很大一部分,但是 pigz 只在前 19 K 中找到了好的压缩数据!该文件以某种方式损坏,就在第三个 gzip 成员的标题处。
您应该尝试重新下载文件。如果它看起来完全一样,那么联系制作它的人并让他们知道这些文件的生成存在问题。