蟒蛇界面

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
解释java选择方法   连接到127.0.0.1的java间歇性故障,连接到IP(eth0)时没有故障   java如何优雅地杀死hadoop作业/intercept`hadoop作业杀死`   java如何通过引导类加载器以编程方式加载另一个类?   url Java:在查询参数之前使用片段构建URI   在BroadLeaf表blc_order_属性中保存OrderAttributes值时发生java错误   安卓将功能从xml转换为java   java如何将数据写入文件?   java JPA SQL结果映射   Java中整数对象比较运算符的引用安全性   Spring测试失败:java。lang.NoClassDefFoundError:org/springframework/cglib/transform/impl/memorysafuendecaredthrowableStrategy   rich:extendedDataTable中的java行选择和数据处理   java为什么我需要在volatile上对多个线程使用synchronized?   java尽管构建成功,但为什么会出现此错误?   数组$ArrayList不能转换为java。util。java中的ArrayList   java如何根据泛型类型调用方法?   java将JLabel添加到JPanel,将JPanel添加到JFrame   如果MapStruct中的源为null,则java将父目标设置为null   JavaJBossDrools从DRL插入事实   java不同的JRE安装(windows)