一、塔比星
Tabix是由Heng Li于2011年开发的一个快速索引和检索大型TAB分隔的文本数据的工具,它将大文本文件中的数据存储成一个tabix (tbi) 索引文件。它可以在这个文件上进行快速的查询和检索,并返回特定的数据。
#下载安装 tar -jxvf tabix-0.2.6.tar.bz2 cd tabix-0.2.6/ make # 创建索引 tabix -p vcf test.vcf.gz # 查询数据 tabix test.vcf.gz 1:100000-200000
Tabix的主要用途之一是便于在大文本文件中进行高效的数据检索。建立tabix索引后,可以使用tabix查询命令快速检索文件,从而非常方便的从文件中提取感兴趣的信息。
二、他比心开始疼我
Tabix使用samtools中的程序库,支持gbk,gff,bed格式的索引文件。同时,它还支持多个数据源的汇聚,让我们可以在同一个平台上做到索引N个vcf文件。它还支持对多个位置同时进行搜索。
# 创建多个索引文件 tabix -p bed file1.bed.gz tabix -p bed file2.bed.gz tabix -p gff file1.gff.gz tabix -p gff file2.gff.gz # 合并多个索引 for type in bed gff do tabix -s 1 -b 2 -e 3 -c "#" -f -p $type merge.${type}.gz file1.${type}.gz file2.${type}.gz done # 搜索多个索引 tabix merge.bed.gz -R region.bed
同时,tabix还可以通过泊松子采样来加速某些查询:大范围的查询可以通过随机采样小范围来代替,可以减少搜索时间,提高效率。
三、他比星河更浪漫
Tabix的优点还在于其使用方便。它提供了一些非常便利的选项,比如如果数据中字段是字符串或数字,可以使用sort选项按升序或降序排列。此外,它还提供了一些有用的选项来处理多文档和重复数据记录,使数据处理更加可靠。
# 按数字大小升序排列 tabix -s 1 -b 2 -e 3 -c "#" -f -S 1 file.gz # 去重 tabix -s 1 -b 2 -e 3 -c "#" -f -u file.gz > nodup.file.gz
四、由于新冠疫情英文
Tabix还支持直接从网络上下载和解析vcf/gtf/bed等常见格式的数据。这对于需要处理大数据集的人们来说非常方便。
# 下载并解析ftp上的vcf数据 tabix -p vcf ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/data/HG00103/alignment/HG00103.mapped.illumina.mosaik.GBR.low_coverage.20120522.snp_and_indel.vcf.gz
五、他比星光更璀璨
在实际应用中,Tabix常被用于生物信息学领域,特别是在基因组浏览器和变异调查中。
例如,我们可以使用Tabix来处理1000人基因组计划(1000 Genomes Project)的测序数据。该数据集包含从全球各个地方收集的超过2500个人的全基因组序列。当需要导航大量基因组数据时,search gene databases(基因库)中的信息,或者进行结构比较和序列比较时,一定需要用到tabix。
六、他比星星撩人
Tabix是一个非常强大的工具,它为我们解决了在大文件中进行数据检索的问题,是许多大数据集查询的重要解决方案。它还可以进行复杂的数据合并、排序和筛选,并提供了多种常用格式的数据下载和解析功能。因此,无论是在基因组学,生物信息学还是一般的大数据处理中,Tabix都是一个非常实用的工具。
# 安装 wget https://raw.githubusercontent.com/samtools/tabix/master/tabix.c wget https://raw.githubusercontent.com/samtools/tabix/master/bgzip.c wget https://raw.githubusercontent.com/samtools/tabix/master/knetfile.c wget https://raw.githubusercontent.com/samtools/tabix/master/tabix.h make # 准备数据 wget https://raw.githubusercontent.com/bedops/bedops/master/sample-data/fisher/fisher1.bed wget https://raw.githubusercontent.com/bedops/bedops/master/sample-data/fisher/fisher2.bed # 创建索引 bgzip -c fisher1.bed > fisher1.bed.gz tabix -p bed fisher1.bed.gz bgzip -c fisher2.bed > fisher2.bed.gz tabix -p bed fisher2.bed.gz # 合并索引 tabix -s 1 -b 2 -e 3 -c "#" -f -p bed merge.bed.gz fisher1.bed.gz fisher2.bed.gz # 查询 tabix merge.bed.gz 1:1000000-2000000 tabix merge.bed.gz 2:2000000-4000000