蟒蛇界面
pytabix的Python项目详细描述
此模块允许快速随机访问用bgzip和 由tabix索引。它包含一个c扩展名,代码来自klib。BGZIP Tabix程序可用here。
安装
pip install --user pytabix
概要
基因组学数据通常在一个表中,每一行对应一个基因组 区域(开始,结束)或位置:
chrom pos snp 1 1000760 rs75316104 1 1000894 rs114006445 1 1000910 rs79750022 1 1001177 rs4970401 1 1001256 rs78650406
使用tabix,您可以通过 使用序列名、开始和结束指定查询:
importtabix# Open a remote or local file.url="ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20100804/"url+="ALL.2of4intersection.20100804.genotypes.vcf.gz"tb=tabix.open(url)# These queries are identical. A query returns an iterator over the results.records=tb.query("1",1000000,1250000)records=tb.queryi(0,1000000,1250000)records=tb.querys("1:1000000-1250000")# Each record is a list of strings.forrecordinrecords:printrecord[:3]
['1','1000760','rs75316104']['1','1000760','rs75316104']['1','1000894','rs114006445']['1','1000910','rs79750022']['1','1001177','rs4970401']['1','1001256','rs78650406']
示例
假设你有一个基因坐标表:
$ zcat example.bed.gz | shuf | head -n5 | column -t chr19 536111315363617255786 ZNF415 chr10 7214912172150375221017 CEP57L1P1 chr4 185009858185139113133121 ENPP6 chrX 1326697721331196722719 GPC3 chr6 134924279134925376114182 FAM8A6P
Sort首先是染色体,然后是起始和结束位置。然后,使用bgzip来 将文件压缩成压缩块:
$ zcat example.bed.gz | sort -k1V -k2n -k3n | bgzip > example.bed.bgz
压缩的大小通常比使用gzip获得的大小稍大。
用tabix:
索引文件$ tabix -s 1 -b 2 -e 3 example.bed.gz $ ls example.bed.gz example.bed.bgz example.bed.bgz.tbi