1

我正在尝试压缩和索引 VCF 文件并面临几个问题。

  1. 当我使用 bgzip/tabix 时,它会抛出一个错误,指出由于某些未排序的值而无法对其进行索引。
# code used to bgzip and tabix
bgzip -c fn.vcf > fn.vcf.gz
tabix -p vcf fn.vcf.gz

# below is the error returnd
[E::hts_idx_push] Unsorted positions on sequence #1: 115352924 followed by 115352606
tbx_index_build failed: fn.vcf.gz
  1. 当我使用bcftools sort对此 VCF 进行排序以解决 #1 时,由于条目无效,它会引发错误。
# code used to sort 
bcftools sort -O z --output-file fn.vcf.gz fn.vcf

# below is the error returned
Writing to /tmp/bcftools-sort.YSrhjT
[W::vcf_parse_format] Extreme FORMAT/AD value encountered and set to missing at chr12:115350908
[E::vcf_parse_format] Invalid character '\x0F' in 'GT' FORMAT field at chr12:115352482
Error encountered while parsing the input
Cleaning
  1. 我尝试使用 linux 命令进行排序以绕过#2。但是,当我运行下面的代码时, 的大小fout.vcf几乎是 的一半fin.vcf,这表明可能出了问题。
grep "^#" fin.vcf > fout.vcf
grep -v "^#" fin.vcf | sort -k1,1V -k2,2n >> fout.vcf

如果您对以下方面有任何建议,请告诉我:

  • 如何以安全可行的方式对 VCF 中有问题的输入进行排序/修复。(文件是340G,所以我不能简单地打开文件并编辑。)
  • 为什么我的 linuxsort可能会以一种奇怪的方式表现。(即返回的文件比原始文件小得多。)

任何意见或建议表示赞赏!

4

1 回答 1

0

尝试这个

mkdir tmp ##1 create a tmp folder in your working directory
tmp=/yourpath/ ##2 assign the tmp folder
bcftools sort file.vcf -T ./tmp -Oz -o file.vcf.gz

您可以在对文件进行排序后为文件编制索引

bcftools index file.vcf.gz
于 2021-03-09T16:55:16.403 回答