bed bam wig、bigWig和bedgraph文件详解
文件格式数据类型存储方式应用场景BED基因组区域文本基因组注释、ChIP-seq、ATAC-seq等WIG连续测量值文本基因表达、DNA甲基化、染色质可及性等BIGWIG连续测量值压缩基因表达、DNA甲基化、染色质可及性等BEDGRAPH连续测量值文本基因表达、DNA甲基化、染色质可及性等SAM比对结果文本高通量测序数据比对BAM比对结果文本高通量测序数据比对bw连续测量值压缩基因表达、DNA甲基
SOPs/coordinates – BaRC Wikihttp://barcwiki.wi.mit.edu/wiki/SOPs/coordinates
文件,就是把测序reads比对到参考基因组后的文件!bam或者bed格式的文件主要是为了追踪我们的reads到底比对到了参加基因组的什么区域,而UCSC规定的这几个文件格式(wig、bigWig和bedgraph)用处不一样,仅仅是为了追踪参考基因组的各个区域的覆盖度,测序深度!而且这些定义好的文件,可以无缝连接到UCSC的Genome Browser工具里面进行可视化!
这个网站提供了这几种数据格式的构造及转换脚本:SOPs/coordinates – BaRC Wiki
BED、WIG、BIGWIG和BEDGRAPH文件的比较
文件格式 | 数据类型 | 存储方式 | 应用场景 |
---|---|---|---|
BED | 基因组区域 | 文本 | 基因组注释、ChIP-seq、ATAC-seq等 |
WIG | 连续测量值 | 文本 | 基因表达、DNA甲基化、染色质可及性等 |
BIGWIG | 连续测量值 | 压缩 | 基因表达、DNA甲基化、染色质可及性等 |
BEDGRAPH | 连续测量值 | 文本 | 基因表达、DNA甲基化、染色质可及性等 |
BAM文件是生物信息学中广泛使用的文本文件格式,用于存储高通量测序数据(如DNA-seq、RNA-seq和ChIP-seq)的比对结果。BAM文件通常由一个或多个比对结果组成,每个比对结果由一个或多个读取组成。
BAM文件的基本结构
BAM文件由一个或多个“记录”组成,每个记录描述一个比对结果或读取。记录由以下字段组成:
- 染色体名称(Reference Name):描述比对结果或读取所在的染色体的名称或编号。
- 起始位置(Start):比对结果或读取的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):比对结果或读取的结束坐标,也是0-based。
- 碱基序列(Bases):比对结果或读取的碱基序列。
- 质量值(Qualities):比对结果或读取的质量值。
- 附加信息(Auxiliary Information):比对结果或读取的附加信息,如比对得分、信任度等。
1 BAM文件的示例
以下是一个简化的BAM文件示例,以更好理解其结构:
@SQ SN:chr1 LN:249250621
@SQ SN:chr2 LN:243199373
@RG ID:test_readgroup LB:test_library PL:illumina SM:test_sample
read1 100 200 ACGTACGTACGTACGT * 0 0 . MD:Z:1234567890
read2 300 400 ACGTACGTACGTACGT * 0 0 . MD:Z:1234567890
在上述示例中,第一行和第二行定义了两个染色体的信息。第三行和第四行定义了两个读取的信息。
BAM文件的应用
BAM文件在生物信息学中具有多种应用,包括但不限于:
- 比对数据分析:用于分析高通量测序数据的比对结果,如比对精度、比对信任度等。
- 数据可视化:用于可视化高通量测序数据的比对结果,如基因表达图谱、染色质可及性图谱等。
- 数据挖掘:用于挖掘高通量测序数据的比对结果中的潜在规律,如基因调控机制、疾病相关性等。
2 BED文件
BED文件是生物信息学中广泛使用的文本文件格式,用于描述基因组上的特征和区域。BED文件通常包含基因组坐标、特征的名称、描述和其他附加信息。
BED文件的基本结构
BED文件由文本行组成,每一行表示一个基因组上的特征或区域。每行通常包含以下字段,用制表符或空格来分隔:
- 染色体名称(Chromosome Name):描述特征或区域所在的染色体的名称或编号。
- 起始位置(Start):特征或区域的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):特征或区域的结束坐标,也是0-based。
BED文件的可选字段
- 名称(Name):特征或区域的名称或标识符。
- 分数(Score):用于表示特征的分数、质量或重要性。
- 链方向(Strand):表示特征所在链的方向,通常是“+”(正链)或“-”(负链),或“.”表示未知链方向。
- 分区信息(Thick Start、Thick End、Item RGB):这些字段通常与蛋白质编码区域(CDS)相关,描述CDS的起始和结束位置以及颜色信息。
- 块数(Block Count):描述特征中的区块数。
- 块大小(Block Sizes):描述每个区块的大小,以逗号分隔。
- 块起始位置(Block Starts):描述每个区块的相对起始位置,以逗号分隔。
BED文件的示例
以下是一个简化的BED文件示例,以更好理解其结构:
chr1 1000 2000 Gene1 0 +
chr1 2500 3000 Gene2 0 -
chr2 5000 6000 Gene3 0 +
在上述示例中,每行描述了一个基因组上的特征,包括染色体名称、起始和结束位置、名称、分数和链方向等字段。
BED文件的应用
BED文件在生物信息学中具有多种应用,包括但不限于:
- 基因组注释:用于描述基因的外显子、内含子、UTR(非翻译区)等区域。
- ChIP-seq和ATAC-seq分析:用于定义与蛋白质结合、染色质可及性等有关的区域。
- 比对和可视化:用于比对测序数据到基因组,构建可视化图谱,帮助研究人员理解基因组结构。
- 功能注释:用于注释基因和非编码区域的功能,帮助解释生物学数据。
- 基因组测序和组装:用于定义组装后的序列中的区域,如外显子、CDS等。
BAM文件
BAM文件是生物信息学中广泛使用的文本文件格式,用于存储高通量测序数据(如DNA-seq、RNA-seq和ChIP-seq)的比对结果。BAM文件通常由一个或多个比对结果组成,每个比对结果由一个或多个读取组成。
BAM文件的基本结构
BAM文件由一个或多个“记录”组成,每个记录描述一个比对结果或读取。记录由以下字段组成:
- 染色体名称(Reference Name):描述比对结果或读取所在的染色体的名称或编号。
- 起始位置(Start):比对结果或读取的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):比对结果或读取的结束坐标,也是0-based。
- 碱基序列(Bases):比对结果或读取的碱基序列。
- 质量值(Qualities):比对结果或读取的质量值。
- 附加信息(Auxiliary Information):比对结果或读取的附加信息,如比对得分、信任度等。
3 WIG文件
WIG文件是生物信息学中广泛使用的文本文件格式,用于存储沿基因组方向的连续测量值。WIG文件通常用于存储基因表达数据、DNA甲基化数据和染色质可及性数据等。
WIG文件的基本结构
WIG文件由一个或多个“记录”组成,每个记录描述一个连续测量值。记录由以下字段组成:
- 染色体名称(Reference Name):描述测量值所在的染色体的名称或编号。
- 起始位置(Start):测量值的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):测量值的结束坐标,也是0-based。
- 测量值(Value):测量值的实际值。
WIG文件的示例
以下是一个简化的WIG文件示例,以更好理解其结构:
chr1 1000 2000 1.0
chr1 2500 3000 2.0
chr2 5000 6000 3.0
在上述示例中,每行描述了一个基因组上的连续测量值,包括染色体名称、起始和结束位置、测量值等字段。
4 BIGWIG文件
BIGWIG文件是WIG文件的一种变体,它使用了更高效的压缩算法来存储数据。BIGWIG文件通常用于存储高通量测序数据(如DNA-seq、RNA-seq和ChIP-seq)的表达数据。
BIGWIG文件的基本结构
BIGWIG文件由一个或多个“块”组成,每个块描述一个连续测量值。块由以下字段组成:
- 染色体名称(Reference Name):描述测量值所在的染色体的名称或编号。
- 起始位置(Start):测量值的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):测量值的结束坐标,也是0-based。
- 测量值(Value):测量值的实际值。
- 块大小(BlockSize):块的大小,以字节为单位。
BIGWIG文件的示例
以下是一个简化的BIGWIG文件示例,以更好理解其结构:
chr1 1000 2000 1.0 100
chr1 2500 3000 2.0 200
chr2 5000 6000 3.0 300
在上述示例中,每行描述了一个基因组上的连续测量值,包括染色体名称、起始和结束位置、测量值、块大小等字段。
5 BEDGRAPH文件
BEDGRAPH文件是BIGWIG文件的另一种变体,它使用了更简单的格式来存储数据。BEDGRAPH文件通常用于存储基因表达数据、DNA甲基化数据和染色质可及性数据等。
BEDGRAPH文件的基本结构
BEDGRAPH文件由一个或多个“记录”组成,每个记录描述一个连续测量值。记录由以下字段组成:
- 染色体名称(Reference Name):描述测量值所在的染色体的名称或编号。
- 起始位置(Start):测量值的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):测量值的结束坐标,也是0-based。
- 测量值(Value):测量值的实际值。
BEDGRAPH文件的示例
以下是一个简化的BEDGRAPH文件示例,以更好理解其结构:
chr1 1000 2000 1.0
chr1 2500 3000 2.0
chr2 5000 6000 3.0
在上述示例中,每行描述了一个基因组上的连续测量值,包括染色体名称、起始和结束位置、测量值等字段
6 sam文件
SAM文件是BAM文件的前身,它是生物信息学中广泛使用的文本文件格式,用于存储高通量测序数据(如DNA-seq、RNA-seq和ChIP-seq)的比对结果。SAM文件通常由一个或多个比对结果组成,每个比对结果由一个或多个读取组成。
SAM文件的基本结构与BAM文件的基本结构相同,但SAM文件没有附加信息字段。SAM文件的记录由以下字段组成:
- 染色体名称(Reference Name):描述比对结果或读取所在的染色体的名称或编号。
- 起始位置(Start):比对结果或读取的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):比对结果或读取的结束坐标,也是0-based。
- 碱基序列(Bases):比对结果或读取的碱基序列。
- 质量值(Qualities):比对结果或读取的质量值。
SAM文件的应用与BAM文件的应用相同。
总体而言,SAM文件与BAM文件的区别在于SAM文件没有附加信息字段。SAM文件的结构更简单,但也更不灵活。BAM文件的结构更复杂,但也更灵活,可以存储更多类型的信息。
其实对我们的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文件会更复杂一点!
首先它不需要第一列了,因为全部是重复字段,只需要在每个染色体的第一行定义好染色体即可。
7bw文件
bw文件是bigwig的一种变体,它是bigwig文件的一种压缩格式。bw文件的压缩方式与bigwig文件的压缩方式相同,但bw文件的压缩率更高。
bw文件由一个或多个“块”组成,每个块描述一个连续测量值。块由以下字段组成:
- 染色体名称(Reference Name):描述测量值所在的染色体的名称或编号。
- 起始位置(Start):测量值的起始坐标,通常是以0-based的方式表示。
- 结束位置(End):测量值的结束坐标,也是0-based。
- 测量值(Value):测量值的实际值。
- 块大小(BlockSize):块的大小,以字节为单位。
bw文件的压缩方式采用了RLE(Run-length encoding)算法。RLE算法是一种压缩算法,它通过记录连续相同字符的个数来进行压缩。
bw文件的压缩率比bigwig文件的压缩率更高,这是因为bw文件使用了RLE算法。RLE算法可以有效地压缩连续相同字符的序列,而bigwig文件使用的是索引压缩算法,它不太适合压缩连续相同字符的序列。
bw文件的应用与bigwig文件的应用相同。bw文件通常用于存储基因表达数据、DNA甲基化数据和染色质可及性数据等。
bw文件的优点包括:
- 压缩率更高,可以节省存储空间。
- 使用RLE算法,压缩效率更高。
bw文件的缺点包括:
- 读取速度较慢,因为需要解压缩。
- 不适合存储非连续测量值。
总结
文件格式 | 数据类型 | 存储方式 | 应用场景 |
---|---|---|---|
BED | 基因组区域 | 文本 | 基因组注释、ChIP-seq、ATAC-seq等 |
WIG | 连续测量值 | 文本 | 基因表达、DNA甲基化、染色质可及性等 |
BIGWIG | 连续测量值 | 压缩 | 基因表达、DNA甲基化、染色质可及性等 |
BEDGRAPH | 连续测量值 | 文本 | 基因表达、DNA甲基化、染色质可及性等 |
SAM | 比对结果 | 文本 | 高通量测序数据比对 |
BAM | 比对结果 | 文本 | 高通量测序数据比对 |
bw | 连续测量值 | 压缩 | 基因表达、DNA甲基化、染色质可及性等 |
drive_spreadsheetExport to Sheets
BED文件用于存储基因组上的特征和区域,每行描述一个基因组上的特征或区域,包括染色体名称、起始和结束位置、名称、分数和链方向等字段。
WIG文件用于存储沿基因组方向的连续测量值,每行描述一个连续测量值,包括染色体名称、起始和结束位置、测量值等字段。
BIGWIG文件是WIG文件的一种变体,使用了更高效的压缩算法来存储数据。
BEDGRAPH文件是BIGWIG文件的另一种变体,使用了更简单的格式来存储数据。
SAM文件用于存储高通量测序数据(如DNA-seq、RNA-seq和ChIP-seq)的比对结果,每行描述一个比对结果或读取,包括染色体名称、起始位置、结束位置、碱基序列、质量值等字段。
BAM文件是SAM文件的前身,使用了更复杂的格式来存储数据,可以存储更多类型的信息。
bw文件是bigwig的一种变体,使用了RLE算法来压缩数据,压缩率比bigwig文件更高。
这些参数一般不用管,除非你很熟悉了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
~~~~~~~~~其余省略输出~~~~~~~~~
UCSC也提供了一个wig文件:http://genome.ucsc.edu/goldenPath/help/examples/wiggleExample.txt
可以看到我设置的参数很少很少,而且我是直接对sort后的bam文件用脚本变成wig文件的。
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_label visibility=display_modecolor=r,g,baltColor=r,g,b priority=priorityautoScale=on|offalwaysZero=on|off gridDefault=on|offmaxHeightPixels=max:default:min graphType=bar|pointsviewLimits=lower:upper yLineMark=real-valueyLineOnOff=on|off windowingFunction=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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)