解决tabix建索引报错[E::hts_idx_push] Unsorted positions on sequence #

时间:2023-04-01 11:57:38

当我对两个基因型文件位置取交集,并重新生成两个vcf:

$ bcftools view -R overlap.lst variant.filter.vcf.gz  -Oz -o 300.vcf.gz

出现如下错误:

$ tabix 300.vcf.gz
[E::hts_idx_push] Unsorted positions on sequence #4: 29013869 followed by 29013853
tbx_index_build failed: 300.vcf.gz

原因是位点未排序。因此可知bcftools从vcf取位点子集时,并不会对位点进行排序。

解决如下:

zcat 300.vcf.gz |grep '^#'>header
zcat 300.vcf.gz |grep -v '^#' |sort -k1,1d -k2,2n > body
cat header body |bgzip -c >new.300.vcf.gz
tabix new.300.vcf.gz

作者:Bioinfarmer

公众号:Bioinfarmer。