BED文件以及如何正确的从UCSC下载BED文件
在画chip-seq里最基础的两张图的时候,出现了报错,报错信息各种看不懂呀,去网上各种搜也没有解决。后来请教健明老师,困扰我两天的难题他一眼就看出来是我
bed
文件出现了问题,就是说我从UCSC下载的bed
文件是不对的。我就拿这个我以为的bed
文件去查看TSS附近信号强度,最后结果当然是各种报错。犯这么蠢的错,归其原因是我不了解bed
文件格式。
在做chipseq中下面这两张图的时候,用到deeptools
软件里的computeMatrix
命令,需要给一个参考的注释文件(就是我们这里介绍的bed文件),从而让软件查看样本在TSS(转录起始位点)附近是否有富集。
看下到底哪一步用到了
bed
文件哪里用到bed文件解释
BED文件介绍
BED (Browser Extensible Data)格式文件就是通过规定行的内容来展示注释信息
注释文件就是基因组的说明书。告诉我们哪些序列是编码蛋白的基因,哪些是非编码基因,外显子、内含子、UTR等的位置等等。注释文件在以下三个提供参考基因组的网站中都有提供,比如Ensemble、NCBI 、UCSC。之后我们介绍如何从UCSC上下载bed文件。
先简单了解下UCSC:
UCSC是生物领域里常用的数据库之一,由University of California Santa Cruz (UCSC)创立和维护,主要包含了人类、小鼠、果蝇等多种常见动物的基因组信息。UCSC里也包括了一系列的分析工具,帮助用户浏览基因信息、查看已有基因组注释信息和下载基因序列等。
基因组注释(genomic features)通常使用Browser Extensible Data (BED) 或者 General Feature Format (GFF)文件格式表示,用UCSC Genome Browser进行可视化比较。
Bed文件最基本的信息就是染色体或Contig的ID或编号,然后就是DNA的正负链信息,接着就是在染色体上的起始和终止位置数值。BED文件中起始坐标为0,结束坐标至少是1。
BED文件每行至少包括chrom,chromStart,chromEnd三列必选;另外还可以添加额外的9列可选,这些列的顺序是固定的。
必选的三列:
- 1.chrom - 染色体的名称(例如chr3,chrY,chr2_random)或支架(例如scaffold10671)。
- 2.chromStart- 染色体或支架中特征的起始位置。染色体中的第一个碱基编号为0。
- 3.chromEnd- 染色体或支架中特征的结束位置。所述 chromEnd碱没有包括在特征的显示。例如,染色体的前100个碱基定义为chromStart = 0,chromEnd = 100,并跨越编号为0-99的碱基。
特别注意:bed文件坐标为一半开半闭区间[start, end),所以如果是[10,20),实际上只提取了10,11,...19 这十个位点,对应ucsc上的即为染色体坐标的10-19位碱基。ucsc上染色体坐标也是从0开始。
例如有一fasta格式的文件
chr1
TCGAGA
对应bed文件的坐标应为
chrome start end
chr1 0 5
用bedtools提取 CGAG 中间四个碱基,所需的bed输入文件应为[1,5)
chrome start end
chr1 1 5
9个可选的BED字段:
-
1.name:定义BED行的名称。当轨道打开到完全显示模式时,此标签显示在Genome浏览器窗口中BED行的左侧,或者在打包模式下直接显示在项目的左侧。
-
2.score:得分在0到1000之间。如果此注释数据集的轨迹线useScore属性设置为1,则得分值将确定显示此要素的灰度级别(较高的数字=较深的灰色)。此表显示 Genome Browser将BED分数值转换为灰色阴影:
-
3.strand:定义strand。只有三种情况 “.” 、“+”或“ - ”。
-
4.thickStart:绘制特征的起始位置(例如,基因显示中的起始密码子)。当没有厚部分时,thickStart和thickEnd通常设置为chromStart位置。
-
5.thickEnd:绘制特征的结束位置(例如基因显示中的终止密码子)。
-
6.itemRgb:R,G,B形式的RGB值(例如255,0,0)。如果轨道行 itemRgb属性设置为“On”,则此RBG值将确定此BED行中包含的数据的显示颜色。注意:建议使用此属性的简单颜色方案(八种颜色或更少颜色),以避免压倒Genome浏览器和Internet浏览器的颜色资源。
-
7.blockCount:BED行中的块(外显子)数。
-
8.blockSizes:块大小的逗号分隔列表。此列表中的项目数应与blockCount相对应。
-
9.blockStarts:以逗号分隔的块开始列表。应该相对于chromStart计算所有 blockStart位置。此列表中的项目数应与blockCount相对应。
官网介绍官方介绍bed文件地址:http://genome.ucsc.edu/FAQ/FAQformat.html#format1
如何从UCSC正确的下载BED文件
参考jimmy老师的博客:http://www.bio-info-trainee.com/2494.html
- 首先进入UCSC的Table Browser:https://genome.ucsc.edu/cgi-bin/hgTables
- 按照下图例子进行参数设置
在Table Browser里,我们选定人的基因组,采用最新的GRCh38版本,然后再选择Gene and Gene Predictions里的NCBI RefSeq作为想要导出的本地数据库。
注意: 将output format改选为“BED-browser extensible data”, output file一定要填写,如果空着的话即使选择了output format为BED格式也是输出网页形式; file type returned选择gzip compressed的话,下载会相对快一些。
UCSC Table Browser提取hg38的BED文件举例
hg19的BED文件举例
看看我是怎么出错的
错误实例
- 按照下图例子进行参数设置
点击Get output之后会给我们一个选择输出形式的对话框,在Create one BED record per下面有一些选项,比如这里默认是Whole Gene,当然我们也可以选择启动子区域、外显子加周边区域、5' UTR区域、3' UTR区域等生成我们想要的BED文件。
到这里我们需要的bed文件就下载好了。
UCSC除了可以提供种类繁多的单一数据库下载外,还可以下载交叉数据库。
比如我们要在此次人类参考基因组下载的基础上,下载一个人类参考基因组和lincRNA数据库交叉的数据库,如图,点击intersection的create进入。
我们同样需要在Gene and Gene Predictions里找到lincRNA RNA-Seq数据库,最后点击submit。
后续的事情和下载单一数据库一样,到这里我们就成功下载两种数据库的交叉数据库了。