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

在chip_seq的分析结果中,经常会通过igvtools或者UCSC等基因组浏览器对样本的测序深度分布进行可视化,方便直观的比较样本间的差异,示意如下

比对基因组之后会产生一个bam文件,我们可以根据bam文件可以计算得到测序深度,所谓测序深度,指的是基因组每个bp的碱基上覆盖到的reads数目,samtools计算测序深度的用法如下

samtools depth input.bam > depth.txt

输出文件的内容如下

chr1    11714   1
chr1    11715   1
chr1    11716   1
chr1    11717   1
chr1    11718   1
chr1    11719   1

第一列为染色体,第二列为染色体上的每个碱基的位置,第三类为覆盖该位点的reads数目。以人类基因组为例,基因组大小约为3G, 如果在文件中记录每个位置上的测序深度,那么该文件的体积是非常大的,为了更加有效的记录测序深度的信息,科学家提出了两种新的文件格式,bedgraph和wiggle。

首先来介绍下bedgraph格式,这种格式实际上就是用窗口的方式代替原始的每个碱基的测序深度,文件内容可以分为两个部分

  1. track  line

  2. data line

track line是首行的一句声明,内容如下

track type=bedGraph

用来声明文件格式,方便在UCSC基因组浏览器上进行展示,除了type属性外,还有很多其他的属性。具体参考以下链接

http://genome.ucsc.edu/goldenPath/help/bedgraph.html

data line记录每个窗口内的测序深度信息,通过bedtools可以产生bedgraph格式的输出,用法如下

bedtools  genomecov -ibam input.bam -bg > depth.bedgraph

输出内容如下

chr1    11873   12227   1
chr1    12612   12721   1
chr1    13220   14361   1
chr1    14361   14409   2
chr1    14409   14829   1
chr1    14969   15038   1

第二列和第三列列出了窗口的起始和终止位置,第四列是该窗口内的测序深度,从官网给的示意图也可以看出depth和begraph之间的区别

-d参数就是产生depth文件,-bg产生bedgraph文件,可以看到,软件将相同测序深度的连续碱基作为一个窗口。bedgraph在原始depth的基础上合并了相同测序深度的连续碱基,所以文件大小有所降低。

在bedgraph窗口计数的方式,人们又提出了wiggle格式以及对应的二进制bigwig格式,该格式的组成和bedgraph类似,也包含了track和data两部分,track内容示意如下

track type=wiggle_0

data line允许有以下三种方式

1. bed  format

bed格式和bedgraph的data line类似,示意如下

chr19 59303500 59303800 1
chr19 59303800 59304100 2
chr19 59304100 59304400 3
chr19 59304400 59304700 4

2. fixedStep

示意如下

fixedStep chrom=chr19 start=59307401 step=300 span=300
1000
900
800
700

span指定窗口的长度,step指定步长,每一行代表该窗口内对应的数值。

3. variableStep

示意如下

variableStep chrom=chr19 span=150
59304701 10.0
59304901 12.5
59305401 15.0
59305601 17.5

span指定窗口的长度,第一列指定窗口的起始位置,第二列指定窗口内对应的数字。
同样一个bam文件,不同格式的文件大小如下

  1. bam 2.7G

  2. depth 55G

  3. begraph 550M

  4. bigwig 15M

从文件大小而言,bigwig是最小的,软件读取最为方便,使用的也最为广泛。但是需要注意的是,在这种格式中,通常会用取平均值等方法来表示一个窗口内所有碱基的测序深度,所以和另外两种格式相比,它代表的信息是稍微有点失真的,但是窗口相比染色体而言非常的小,这种程度的失真并不会影响我们的直观判断,所以才会应用的这么广泛。

·end·

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

扫描关注微信号,更多精彩内容等着你!

depth, bedgraph, bigwig之间的联系与区别相关推荐

  1. Git、GitHub、GitLab三者之间的联系以及区别

    Git.GitHub.GitLab三者之间的联系以及区别 在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转) 1.什么是 Git? Git 是一个版本控制 ...

  2. Java中Array和ArrayList之间的9个区别

    array和ArrayList都是Java中两个重要的数据结构,在Java程序中经常使用. 即使ArrayList在内部由数组支持,了解Java中的数组和ArrayList之间的差异对于成为一名优秀的 ...

  3. java map与set的区别_java 集合(list,set,map)三者之间的关系和区别

    原 java 集合(list,set,map)三者之间的关系和区别 一:先上一张关系图,让大家看的更明白. 备注:其中红色部分为实现,其他地方均为接口. 二:各自的特点. List 有序,可重复Arr ...

  4. spring揭秘_被问到了! Spring 和 Spring Boot 之间到底有啥区别?

    相信很多小伙伴和我一样,常用Spring 和Spring Boot 但是就是没有研究二者之间到底有什么区别? 今天就来大揭秘 ↓ 概述 对于 Spring和 SpringBoot到底有什么区别,我听到 ...

  5. pyHook pyHook3 区别_一般过去时态和现在完成时态之间到底有什么区别?通过一道语法题,帮你彻底讲清楚!...

    有同学在群里问了一道关于"现在完成时态和一般过去时态之间区别"的语法题,摘录如下: There is someone knocking at the door. -- It mus ...

  6. telnet远程登陆、mstsc远程控制、SSH之间的比较和区别

    Telnet与远程桌面mstsc 一 演示 打开mstsc演示: 01 win + r 输入mstsc 02 输入要远程的机子的用户名和密码 03 登录 04 连接开启了,如图即是通过win窗口操作远 ...

  7. sql语句和java的关系_java中Statement 与 PreparedStatement接口之间的关系和区别

    Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使 ...

  8. 栈,队列和链表三者之间的关系与区别

    最近一直在学习算法,刷算法题,但是自从大学毕业以来,数据结构的知识都还给老师了,只会个数组,所以前期刷的题目也都是有关数组的 最近跟着小册重学了一遍数据结构,今天就记录一下栈,队列和链表三者之间的关系 ...

  9. 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

    1.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. linux发行版介绍 2.安装Centos7.6操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图. 安装Cent ...

最新文章

  1. EPICenter: 用户管理
  2. springboot + 拦截器 + 注解 实现自定义权限验证
  3. gradient设置上下渐变_iOS 绘制渐变·实例篇
  4. Excel35招必学秘技
  5. 大数据促健康产业高增长
  6. follow 开源项目关于NoClassDefFoundError错误的解决方法
  7. matlab 进度条/waitbar 显示运行进度
  8. mysql limit to hosts matching_MySQL 用户访问限制 -- Host Match Limit
  9. ubuntu下创建软件图标和直接点文件打开
  10. ExtJs2.0学习系列(14)--Ext.TreePanel之第三式(可增删改的树)
  11. python怎么打包_如何将一整个python工程打包
  12. Linux 命令(108)—— ifconfig 命令
  13. java加密算法之DES篇
  14. HTML与CSS实现淘宝静态页面(参考版)
  15. apache 二级域名设置完整步骤
  16. 详细理解TDMA以及OFDMA,更容易读懂论文
  17. 生活随记 - 值班后第二天晚上失眠小记
  18. Data URL和图片(前端细节优化)
  19. slotformatcombinations_向未授权频谱中的小区应用时隙格式指示的方法和设备与流程...
  20. 微信小程序(七)注册

热门文章

  1. PHPWord替换word模板内容时,存在表格,且不确定表格行数的处理方式
  2. spring 演变_团队的演变
  3. 多多云手机【语音引流】创新吸粉模式 -- 语音播放功能模块开发教程
  4. 棋盘覆盖问题 (分治)
  5. Leetcode1859:将句子排序
  6. snipaste 方便快捷截图工具
  7. 音频基础之麦克风、功放、扬声器
  8. DELL 1420 加装SSD
  9. java excel 模板 替换_java替换Excel字符
  10. Excel替换文本内容的3种操作方法比较