python绑定到ucsc大二进制(bigwig/bigbed)文件库

pybbi的Python项目详细描述


皮比

使用cython从UCSC Genome Browser source tree库中连接到jim kent的大二进制文件(bbi)[1]的python接口。

这提供了对本地和远程bigwig和bigbed文件的读级访问,但没有写功能。主要特性是将范围查询快速检索到numpy数组中。

API

内省

它们接受本地文件路径或url。

  • bbi.is_bbi(path)-->;bool
  • bbi.is_bigwig(path)-->;bool
  • bbi.is_bigbed(path)-->;bool
  • bbi.chromsizes(path)-->;OrderedDict
  • bbi.zooms(path)-->;list
  • bbi.info(path)-->;dict

阵列输出

它们接受一个bigwig或bigbed文件路径/url。大文件的信号是其间隔的基因组覆盖率。

对于单个范围查询:

  • bbi.fetch(path, chrom, start, end, [bins [, missing [, oob, [, summary]]]])-->;1d numpy数组

对于等长段列表(即生成堆叠的热图):

  • bbi.stackup(path, chroms, starts, ends, [bins [, missing [, oob, [, summary]]]])-->;二维numpy数组

summary通过指定用于粗粒度化的bins数量来支持查询。摘要统计信息可以是:“平均”、“最小”、“最大”、“COV”或“STD”之一。(默认值为“mean”)。

丢失的数据可以用自定义填充值missing(默认值为0)填充

越界范围(即start小于零或end大于染色体长度)是允许的,因为它们的实用性,例如,用于生成以特定基因组特征为中心的垂直热图堆栈。可以为越界位置(默认值为nan)提供单独的自定义填充值oob

间隔输出

接受bigWig或bigBed文件路径/URL

  • bbi.fetch_intervals(path, chrom, start, end)-->;迭代器

有关完整文档,请参阅docstrings

安装

需要

  • Linux/MacOS
  • C编译器,zlib,pthreads,libpng,openssl,make
  • Python2.7/3.3+
  • numpycython

在新的ubuntu实例上,您需要build-essentialmakelibssl-devlibpng16-dev。它似乎也适用于linux的windows子系统。

pybbi现在作为源发行版在PyPI上它附带(稍加修改)kent-utils源代码,在构建扩展模块之前将编译该源代码。

$ pip install pybbi

要进行开发,请克隆repo并以可编辑模式安装:

$ git clone https://github.com/nvictus/pybbi.git
$ cd pybbi
$ pip install -e .

相关项目

  • libBigWig:devon ryan为bigwig和bigbeed文件提供的可选c库
  • pyBigWig:同一作者为libBigWig编写的python绑定
  • bw-python:brent pederson的替代python包装程序libBigWig
  • bx-python:来自james taylor小组的python生物信息学库,其中包括用于bbi文件的工具。

此库提供对参考ucsc bbi库代码的绑定。请查看@dpryan79libBigWig以获取用于大型二进制文件的备用专用c库。pyBigWig还提供基于numpy的检索和bigBed支持

参考文献

[1]http://bioinformatics.oxfordjournals.org/content/26/17/2204.full

故障排除

在OSX上,您可能会得到关于丢失头文件的错误(例如,png.hopenssl/sha.h),即使安装了头文件,也可能不在标准包含位置在安装pybbi之前,create the required symlinks或相应地更新C_INCLUDE_PATH环境变量。

exportC_INCLUDE_PATH="/usr/local/include/libpng:/usr/local/opt/openssl/include:$C_INCLUDE_PATH"

注释

不幸的是,Kent的C源代码不是性能良好的库代码,因为它到处都是调用exit()的错误调用pybbi将捕获并抢先处理常见的输入错误,但如果以某种方式引发内部错误,它将终止您的解释器实例。

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

推荐PyPI第三方库


热门话题
java Android Studio:我的短信应用程序不是默认短信应用程序的选项之一   java处理字符串问题   java为什么我的程序打印“null”而不是字符串?   java为什么要创建一个无限循环?   java循环在一段时间后将布尔值更改为false?   java Android Rest Api Post 400错误请求   java调用另一个方法以获取resultset并正确关闭连接?   java我想在2d数组中添加一行   Java:我需要从outputstream中获取字节数组   C语言中Java元注释的等价物#   java如何在从web下载图像时保持原始图像的dpi?   java中基于输入值的spring boot动态值   java从请求中获取主机名   java可以复制Swing代码并在intelliJ中的designer中查看它吗   spring如何使用java配置多个ldap   安卓如何在Java中使用具有多个类似参数的JSON请求/响应循环?   java LIbGDX如何在语言更改时翻译所有文本?