生物信息学工作的包装床工具
pybedtools的Python项目详细描述
概述
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。