欢迎关注”生信修炼手册”!

bam, bedgraph, bigwig是3种常见的存储测序深度信息的文件,都可以方便的导入IGV浏览器进行查看,其中bigwig最为常用。在chip_seq, atac_seq中,通常都会提供该种格式的文件,来来可视乎测序深度的分布。

bigwig是一种二进制格式的文件,常规情况下,无法直接浏览其内容。在python中,通过pyBigWig模块,可以方便的查看其文本内容,该模块的基本用法如下

1. 打开文件

该模块支持bigbed和bigwig两种文件格式,打开文件的代码如下

>>> bw = pyBigWig.open('ZM24TRK4.bigwig')
>>> bw.isBigBed()
False
>>> bw.isBigWig()
True

另外,还提供了相应的函数,来帮助我们判断文件格式。

2. 读取内容

测序深度的统计,有固定窗口和变长窗口两种方式,这两种都是针对染色体进行统计,通过如下方式可以查看文件中包含的染色体以及长度

>>> bw.chroms()
{'D10': 64331360L, 'D11': 69233432L, 'D12': 60589447L, 'D13': 60180343L, 'A11': 115914562L, 'A10': 109403145L, 'A13': 107345356L, 'A12': 102340594L, 'D07': 55165807L, 'D06': 63144374L, 'D05': 62317630L, 'D04': 54327443L, 'D03': 53049694L, 'D02': 68262679L, 'D01': 61090159L, 'D09': 50656052L, 'D08': 66058605L, 'A08': 121158745L, 'A09': 79884170L, 'A02': 104266397L, 'A03': 105393268L, 'A01': 112577161L, 'A06': 121900087L, 'A07': 93248268L, 'A04': 80868428L, 'A05': 107448258L}
>>> bw.chroms('D10')
64331360L

再结合intervals方法,就可以遍历所有染色体的测序深度信息了,代码如下

>>> for chrom in bw.chroms():
...     for entry in bw.intervals(chrom):
...             start, end, pos = entry
...             print(chrom, start, end, pos)
...

3. 提取子集

intervals方法有多个参数,必选参数为染色体名称,除此之外,还可以添加起始和终止位置,返回特定区间内的测序深度,用法如下

>>> bw.intervals('D10', 0, 200)
((0, 50, 1.0), (50, 100, 2.0), (100, 150, 3.0), (150, 200, 4.0))

4. 关闭文件

文件读取完后,要记得关闭文件,代码如下

>>> bw.close()

通过该模块,可以将bigwig的内容转换为纯文本,帮助我们更加直观的了解bigwig中存储的信息。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

更多精彩

  • KEGG数据库,除了pathway你还知道哪些

  • 全网最完整的circos中文教程

  • DNA甲基化数据分析专题

  • 突变检测数据分析专题

  • mRNA数据分析专题

  • lncRNA数据分析专题

  • circRNA数据分析专题

  • miRNA数据分析专题

  • 单细胞转录组数据分析专题

  • chip_seq数据分析专题

  • Hi-C数据分析专题

  • HLA数据分析专题

  • TCGA肿瘤数据分析专题

  • 基因组组装数据分析专题

  • CNV数据分析专题

  • GWAS数据分析专题

  • 2018年推文合集

  • 2019年推文合集

写在最后

转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

一个只分享干货的

生信公众号

使用pyBigWig模块查看bigwig文件中的内容相关推荐

  1. 【Ubuntu】dpkg-deb -c :查看deb文件中的内容

    1.dpkg-deb -c :查看deb文件中的内容 $ dpkg-deb -c package eg: $ dpkg-deb -c sogoupinyin_2.2.0.0108_amd64.deb ...

  2. python db文件_python中查看.db文件中表格的名字及表格中的字段操作

    1.问题描述: 我桌面上有一个"账号密码.db"文件,我现在想知道里面有几张表格table.表格的名字.表头结构. 2.使用SQL语句"""selec ...

  3. python怎么打开h5文件_python中利用h5py模块读取h5文件中的主键方法

    如下所示: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF5_FILE.h5 ...

  4. boost::regex模块在 cpp 文件中搜索类定义,使用全局数据的测试程序

    boost::regex模块在 cpp 文件中搜索类定义,使用全局数据的测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用全局数据的测试程序 ...

  5. boost::regex模块在 cpp 文件中搜索类定义,使用 C++ Builder 闭包作为回调的测试程序

    boost::regex模块在 cpp 文件中搜索类定义,使用 C++ Builder 闭包作为回调的测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类 ...

  6. boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序

    boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回 ...

  7. boost::regex模块在 cpp 文件中搜索类定义,使用全局回调函数的测试程序

    boost::regex模块在 cpp 文件中搜索类定义,使用全局回调函数的测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用全局回调函数的测 ...

  8. python替换文件内容_Python实现替换文件中指定内容的方法

    本文实例讲述了Python实现替换文件中指定内容的方法.分享给大家供大家参考,具体如下: 这里使用python编写的程序,实现如下功能:将文件中的指定子串 修改为 另外的子串 编写的python程序, ...

  9. 用python将txt文件中的内容导入到excel文件中

    背景 日志文件中的内容不方便阅读统计,需要用excel表格的形式显示出来 日志文件内容如下: info***LCAM_SC.DM_RP_DIS_DEVICE_TEMP*1*1*0*0*0*0*N*Y* ...

最新文章

  1. Codeforces Round #323 (Div. 2) C. GCD Table
  2. 带你看android的内心世界
  3. codevs 2865 天平系统1
  4. 想聊天?自己搭建个聊天机器人吧!
  5. Boost:以协程的方式实现带有默认值的echo服务器的实例
  6. AG3 hang after click membership search
  7. 苹果复兴_类型复兴的故事:来自Type West的经验教训
  8. 计算机视觉论文-2021-07-07
  9. VMware中的三种网络模式-----NAT模式
  10. AOS编排语言系列教程(三):创建子网Subnet
  11. 心得:调整边缘、叠加模式的妙用
  12. LanguageTool至少需要哪些jar包?
  13. 看完吴恩达(Andrew Ng)机器学习视频的感受
  14. steam用移动网不显示头像
  15. 二维码生成代码(转载)
  16. 安川机器人SOCKET 通讯
  17. 李沐动手学深度学习d2l
  18. 基于Springboot+vue的办公OA系统#毕业设计
  19. 2018DeeCamp笔试题目第2套A卷
  20. 利用爬虫数据做的研究_利用研究周增强数据科学能力

热门文章

  1. matlab 提取谐波,用MATLAB采用MUSIC法进行谐波提取出现问题
  2. 2022年电工(初级)国家题库及在线模拟考试
  3. 【面试】前端面试之开发性能篇
  4. Sentinel-2(哨兵2号)SNAP预处理
  5. 终于知道google为什么有时不能用了
  6. VR中多模式异步协作的挑战和设计考虑因素
  7. 解决Win7的一个毛病——睡眠失效(只关闭显示器,不关主机)
  8. Ubuntu卸载firefox浏览器安装google浏览器
  9. 基于GAN的语音转换技术及语音合成TTS
  10. Qt QLineEdit 信号函数总结