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+
numpy
和cython
在新的ubuntu实例上,您需要build-essential
、make
、libssl-dev
、libpng16-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库代码的绑定。请查看@dpryan79的libBigWig以获取用于大型二进制文件的备用专用c库。pyBigWig还提供基于numpy的检索和bigBed支持
参考文献
[1]:http://bioinformatics.oxfordjournals.org/content/26/17/2204.full
故障排除
在OSX上,您可能会得到关于丢失头文件的错误(例如,png.h
,openssl/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
将捕获并抢先处理常见的输入错误,但如果以某种方式引发内部错误,它将终止您的解释器实例。