我们一般会熟悉sam/bam格式文件,就是把测序reads比对到参考基因组后的文件!bam或者bed格式的文件主要是为了追踪我们的reads到底比对到了参加基因组的什么区域,而UCSC规定的这几个文件格式(wig、bigWig和bedgraph)用处不一样,仅仅是为了追踪参考基因组的各个区域的覆盖度,测序深度!而且这些定义好的文件,可以无缝连接到UCSC的Genome Browser工具里面进行可视化!

对SE数据,可以用macs2 pileup --extsize 200 -i $sample.bam -o $sample.bdg 把bam文件转换为bedgraph文件,不需要call peaks这一步骤。

而UCSC的ftp里面可以下载bedGraphToBigWig $sample.bdg ~/reference/genome/mm10/mm10.chrom.sizes $sample.bw 把bedgraph文件转换为bw文件,其余的转换工具都可以下载。

具体文件格式定义请直接看UCSC的官网,下面是我基于自己的理解来翻译的,没什么特殊的,建议大家看原文,然后自己翻译一个,跟我比较!

这3种文件格式都是UCSC规定的,所以它提供了系列工具进行互相转换,可以直接下载可执行版本程序:http://hgdownload.cse.ucsc.edu/admin/exe/

常见的工具如下:

bigWigToBedGraph — this program converts a bigWig file to ASCII bedGraph format.

bigWigToWig — this program converts a bigWig file to wig format.

bigWigSummary — this program extracts summary information from a bigWig file.

bigWigAverageOverBed — this program computes the average score of a bigWig over each bed, which may have introns.

bigWigInfo — this program prints out information about a bigWig file.

其实对我们的bam文件,用samtools软件也可以很容易得到基因组区域的覆盖度和测序深度,比如:

samtools depth -r chr12:126073855-126073965  Ip.sorted.bam

chr12    126073855    5

chr12    126073856    15

chr12    126073857    31

chr12    126073858    40

chr12    126073859    44

chr12    126073860    52

~~~~~~~~~其余省略输出~~~~~~~~~

这其实就是wig文件的雏形,但是wig文件会更复杂一点!

首先它不需要第一列了,因为全部是重复字段,只需要在每个染色体的第一行定义好染色体即可。

首先需要设置这个wig文件在UCSC的Genome Browser工具里面显示的属性:

track type=wiggle_0 name=track_labeldescription=center_labelvisibility=display_modecolor=r,g,baltColor=r,g,bpriority=priorityautoScale=on|offalwaysZero=on|offgridDefault=on|offmaxHeightPixels=max:default:mingraphType=bar|pointsviewLimits=lower:upperyLineMark=real-valueyLineOnOff=on|offwindowingFunction=mean+whiskers|maximum|mean|minimumsmoothingWindow=off|2-16

type=wiggle_0 这个是默认的, 而且到目前为止,必须是这样的!其余的都是可选参数,自己读官网说明

这些参数一般不用管,除非你很熟悉了UCSC的Genome Browser工具

然后需要设置每条染色体的属性,几个比较重要的参数是:

fixedStepchrom=chrNstart=positionstep=stepInterval[span=windowSize]

下面是wig的一个具体例子:

track type=print wiggle_0 name=hek  description=hek

variableStep chrom=chr1 span=10

10008    7

10018    14

10028    27

10038    37

10048    45

10058    43

10068    37

10078    26

~~~~~~~~~其余省略输出~~~~~~~~~

可以看到我设置的参数很少很少,而且我是直接对sort后的bam文件用脚本变成wig文件的。

那么bigwig格式文件就没什么好讲的了,它就是wig格式文件的二进制压缩版本,这样更加节省空间。

我们只需要用UCSC提供的工具把自己的wig文件转换一下即可,步骤如下:

Save this wiggle file to your machine (this satisfies steps 1 and 2 above).

Save this text file to your machine. It contains the chrom.sizes for the human (hg19) assembly (this satisfies step 4 above).

Download the wigToBigWig utility (see step 3).

Run the utility to create the bigWig output file (see step 5):

wigToBigWig wigVarStepExample.gz hg19.chrom.sizes myBigWig.bw

最后我们讲一下BedGraph格式文件,它是BED文件的扩展,是4列的BED格式,但是需要添加UCSC的Genome Browser工具里面显示的属性,但是一般就定义有限的几个属性即可。

track type=bedGraph name=track_labeldescription=center_labelvisibility=display_modecolor=r,g,baltColor=r,g,bpriority=priorityautoScale=on|offalwaysZero=on|offgridDefault=on|offmaxHeightPixels=max:default:mingraphType=bar|pointsviewLimits=lower:upperyLineMark=real-valueyLineOnOff=on|offwindowingFunction=maximum|mean|minimumsmoothingWindow=off|2-16

有一点需要注意:These coordinates are zero-based, half-open.

Chromosome positions are specified as 0-relative. The first chromosome position is 0. The last position in a chromosome of length N would be N - 1. Only positions specified have data.

Positions not specified do not have data and will not be graphed.

All positions specified in the input data must be in numerical order.

我这里有一个MACS对CHIP-seq数据call peaks附带的BedGraph文件,也可以用工具直接从bam格式文件得到:

track type=bedGraph name="hek_treat_all" description="Extended tag pileup from MACS version 1.4.2 20120305"

chr1    9997    9999    1

chr1    9999    10000   2

chr1    10000   10001   4

chr1    10001   10003   5

chr1    10003   10007   6

chr1    10007   10010   7

chr1    10010   10012   8

chr1    10012   10015   9

chr1    10015   10016   10

chr1    10016   10017   11

chr1    10017   10018   12

matlab wiggle打开,wig、bigWig和bedgraph文件详解相关推荐

  1. wig、bigWig和bedgraph文件详解

    http://www.bio-info-trainee.com/1815.html http://blog.biochen.com/archives/892

  2. python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...

    文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...

  3. python怎么打开npz文件_numpy的文件存储.npy .npz 文件详解

    Numpy能够读写磁盘上的文本数据或二进制数据. 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 ...

  4. Linux中/proc目录下文件详解

    Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性. 作者:张子坚 email:zhangzijian@163.com 说明:本文所涉及示例均在fedora ...

  5. linux /proc目录文件详解

    Linux中/proc目录下文件详解(一) /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用.可以使用的文件随系统配置的变化而变化.命令proc ...

  6. Linux配置启动挂载:fstab文件详解

    Linux配置启动挂载:fstab文件详解 [日期:2014-12-23] 来源:Linux社区 作者:aceking10 [字体:大 中 小] fstab文件介绍 fstab文件包含了你的电脑上的存 ...

  7. PE文件详解(教程1-7)

    PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...

  8. oracle参数文件initorcl位置,oracle 参数文件详解

    参数文件 两类参数文件: pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init.ora spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端, ...

  9. packageinfo.java_package-info.java文件详解

    package-info.java文件详解 一.pacakge-info.java介绍 pacakge-info.java是一个Java文件,可以添加到任何的Java源码包中.pacakge-info ...

最新文章

  1. SQL重要知识点梳理!
  2. js正则验证特殊字符
  3. 转--SDP 协议分析
  4. 总算是把用户流失分析讲清楚了!
  5. 终端乱码的终极解决方案
  6. mysql 8.0 一条insert语句的具体执行流程分析(三)
  7. AI(artificial intelligence)的学习
  8. indes.php默认文件,linux-php的编译安装3
  9. 用Javascript实现Repeater
  10. SCVMM2012R2 服务模版系列(一)包含SQL实例的单层服务模版
  11. flying saucer技术生成pdf文档
  12. 优化AI搜索引擎,从这3个领域入手!
  13. Spring Boot Admin 发送监控邮件
  14. tftp64能Ping通,但是无法load下载bin文件
  15. 2021支付宝集五福【攻略】!!!
  16. RabbitMQ实现订单超时设计思路、以及在订单过期临界点支付成功如何处理
  17. 产品经理可以考哪些证书提升自己?一篇文章回答你
  18. 试题 算法训练 生活大爆炸版石头剪刀布
  19. Rolling back JDBC Connection [org.sqlite.jdbc4.JDBC4Connection
  20. css background-image 背景图片自适应宽高

热门文章

  1. 转 Android屏幕适配全攻略(最权威的官方适配指导)
  2. 常见的系统架构设计介绍
  3. 「Photoshop2021入门教程」新功能——快速操作
  4. Django的视图函数(二):request对象、视图函数返回值(HTML响应、JsonResponse)、反向解析(视图函数)、HttpResponse子类
  5. 19号笔刷 ps_19号笔刷(ps19号笔刷在哪)
  6. 【C++】宏定义函数指针类型
  7. 比较LMS和RLS算法的性能
  8. PostgreSQL行级安全策略RLS和数据加密
  9. 预约上门App平台的接单方式
  10. 基于 python 和 UDP 协议实现简易聊天室(多人群聊)----详细解析带字幕