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静态键入和编写一个简单的矩阵库   java如何最小化层次结构的代码量   这是在Google云数据存储中使用Java按键查询的正确方法吗?   java Android php+mysql+json执行异步任务时出错   java Hadoop Hbase访问被拒绝异常   java如何在json中指定特定的对象路径   JavaSpringJPA/Hibernate在使用@modify和@Query进行特殊更新之前调用完整更新   java多个错误通知   java插入Linkedlist和Node   java将图像放在webview中并调整其宽度   Java没有真实属性的缺点是什么?   java“isGooglePlayServicesAvailable”(此)已被弃用   java托管HIPPO CMS   安卓 Java。网URI构造函数不是编码字符(&C)   java如何用hibernate映射Deque?   java传递枚举类型作为参数   java自由堆大小在Maven中不会增加   java如何使用hashmap和arraylist的循环逻辑?   java如何使用JDBC复制MySql数据库