跳转至

bgzip

bgzip

bgzip是一个用于压缩和索引生物信息学数据文件的工具,可以在压缩文件大小和读取性能之间取得平衡,提高对大型生物信息学文件的处理效率。它是基于GZIP算法,并在其基础上添加了块压缩和索引功能。

bgzip压缩后的文件的可操作性与gzip压缩后的文件可操作性一致。

以下是bgzip的一些主要特点:

  • 压缩文件:bgzip可以将普通文本文件(如VCF、SAM/BAM等)进行压缩,生成.gz后缀名的压缩文件。与传统的GZIP相比,bgzip利用BGZF算法对文件进行块压缩,达到更高的压缩率。

  • 块压缩:bgzip将输入文件划分为多个块(默认大小为64 KB),然后对每个块进行独立的压缩。这种块压缩方式使得在处理大型文件时能够以块为单位进行读取和处理,而无需解压整个文件。

  • 索引支持:bgzip生成的压缩文件可以通过创建索引文件(.csi)来实现快速随机访问。索引文件存储了压缩文件中每个块的偏移量和起始位置,使得可以根据给定位置快速定位到相应的块,然后只需解压该块即可获取所需数据。

  • tabix兼容性:bgzip生成的压缩文件可以与tabix工具配合使用,以便更快速地检索和访问压缩文件中的特定数据。tabix是一个用于索引和检索大规模压缩文件的工具,而bgzip生成的压缩文件正是为了与tabix兼容。

bgzip一般与tabix配合使用,tabix可以为bgzip压缩后的数据构建索引,方便快速访问指定内容。tabix支持 gff, bed, sam, vcf四种格式文件构建索引和快速访问。

使用

vcf文件一般比较大,而且经常有访问部分内容的需求,因此适合使用bgzip压缩、tabix访问。

vcf 压缩

bgzip和tabix为htslib的一部分,使用这2个工具需要载入htslib。

module load HTSlib/1.18

bgzip 用法如下

bgzip  data.vcf
压缩之后,原本的 data.vcf 文件就变成了 data.vcf.gz 文件。

解压有2种方式

bgzip -d data.vcf.gz
gunzip data.vcf.gz

vcf 构建索引

tabix可以对VCF文件构建索引,索引构建好之后,访问速度会快很多。

# 构建索引
# -p 指定文件格式,支持 gff, bed, sam, vcf
$ tabix -p vcf data.vcf.gz

生成的索引文件为 data.vcf.gz.tbi, 后缀为 .tbi

vcf 快速访问

构建好索引之后,可以快速的获取指定区域的内容。

# 获取位于11号染色体的SNP位点
$ tabix data.vcf.gz 11

# 获取位于11号染色体上突变位置大于或者等于2343545的SNP位点
$ tabix data.vcf.gz 11:2343545

# 获取位于11号染色体上突变位置介于2343540到2343596的SNP位点
$ tabix data.vcf.gz 11:2343540-2343596

# 批量检索,regions.txt文件中每行包含一个位置(chromosome:start-end)
tabix data.vcf.gz -R regions.txt
很多操作VCF的软件都会识别tabix建立的索引,从而加快处理速度,如 GATK Halotypecaller 生成gvcf文件后会构建索引,方便后续操作。

参考:https://blog.csdn.net/weixin_43569478/article/details/108079148

本文阅读量  次
本站总访问量  次