生物信息学工作的包装床工具

pybedtools的Python项目详细描述


概述

https://travis-ci.org/daler/pybedtools.png?branch=masterhttps://badge.fury.io/py/pybedtools.svg?style=flathttps://img.shields.io/badge/install%20with-bioconda-brightgreen.svg

BEDTools suite of programs是广泛的 用于基因组区间操作或“基因组代数”。pybedtools包装 扩展了bedtools并从内部提供功能级操作 Python。

请参阅完整的联机文档,包括安装说明,网址为 http://daler.github.io/pybedtools/

为什么要使用pybedtools?

下面是一个例子来获取距离 基因间单核苷酸多态性:

frompybedtoolsimportBedToolsnps=BedTool('snps.bed.gz')# [1]genes=BedTool('hg19.gff')# [1]intergenic_snps=snps.subtract(genes)# [2]nearby=genes.closest(intergenic_snps,d=True,stream=True)# [2, 3]forgeneinnearby:# [4]ifint(gene[-1])<5000:# [4]printgene.name# [4]

此处显示的有用功能包括:

  • [1]支持所有bedtools支持的格式(这里是gzip bed和gff)
  • [2]包装所有bedtools程序和参数(此处,减去最近的并传递 -d标记为最近的);
  • [3]流结果(如Unix管道,此处由stream=true指定)
  • [4]按索引或属性访问要素数据时迭代结果 访问(这里是[-1].name)。

相反,这里使用shell脚本进行的分析是相同的。注意这个 需要Perl、Bash和AWK方面的知识。运行时间与 pybedtools以上版本:

snps=snps.bed.gz
genes=hg19.gff
intergenic_snps=/tmp/intergenic_snps

snp_fields=`zcat $snps| awk '(NR == 2){print NF; exit;}'`gene_fields=9distance_field=$(($gene_fields+$snp_fields+1))

intersectBed -a $snps -b $genes -v > $intergenic_snps

closestBed -a $genes -b $intergenic_snps -d \
| awk '($'$distance_field' < 5000){print $9;}'\
| perl -ne 'm/[ID|Name|gene_id]=(.*?);/; print "$1\n"'

rm $intergenic_snps

参见文档中的Shell script comparison 有关此比较的详细信息,请继续阅读 http://daler.github.io/pybedtools

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

推荐PyPI第三方库


热门话题
java如何使用JNA创建同一库的多个实例?   java在将Graphql查询作为JSON字符串传递时收到意外的令牌错误   OAuth2 oltu的java问题   java桌面应用程序使用的好的嵌入式数据库是什么?   java Firebase数据库高级查询选项   java正在使磁盘上的EhCache元素过期   java 安卓还原处于backstack中的片段的实例状态   XMemcached中的java异步集   java TimescaleDB是否使用与Postgresql完全相同的JDBC驱动程序?   java从网站c读取信息#   检查java Android中的字符串是否只包含数字和空格   c#如何向web服务发送特殊字符?   grails无法调用需要java的方法。lang.类参数?   java我在组合框中调用的方法不会运行所有代码,它只运行部分代码   java发送带有标头的HTTP GET请求