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

当我对两个基因型文件位置取交集,并重新生成两个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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容