blat简介与格式解读
产生背景
2002年的时候,随着人类基因组项目不断推进,需要将大量ESTs(300万) 及mouse基因组的reads (130万)比对到人类基因组来进行注释,而这项任务需要在2周内完成 (90 CPU Linux 集群),因为blast工具速度相对偏慢,结果也不易处理,无法提供intron 的信息等,因此一款新的比对软件的开发迫在眉睫。为了完成这项任务,W.James Kent(UCSC)开发了一款生物信息学软件BLAT全称为BLAST-Like Alignment Tool。blat的速度大概是blast 的500倍,且可以共线性输出结果,易解读。
大致原理
比对软件一般是分为两部分来完成的.首先是搜索阶段(search stage):搜索两个序列之间可能是同源的部分;然后是比对阶段(alignment stage):更加仔细的审视上述可能是同源的部分,对于按照一定的标准被确定是同源的部分进行比对(align)。
2.1)首先是对物种数据库(以下称为基因组)构建索引(index),形成一个索引表(index list),索引表里存放着非重叠k-mer的坐标信息( non-overlapping k-mers)
2.2)将query中的重叠kmer(overlapping k-mers)在基因组中进行搜索 ,建立序列之间存在匹配的hits列表。采用不同的搜索策略会对下游的比对计算量产生影响
2.3)在比对阶段,根据query是蛋白还是核酸会采用不用的算法进行比对。想深入了解可以看最下面文献
应用
DNA上的BLAT被设计为快速发现长度>=25个碱基,相似性>=95%的序列。 蛋白质上的BLAT将发现长度>=20个碱基,相似性>=80%的序列。
3.1)将mRNA 比对到同种基因组来预测其在基因组上的坐标;
3.2)一个物种的蛋白或者mRNA比对到另外一个同源物种的数据库( 基因组),来请确定同源区域,适用于进化不太远的物种;
3.3)可以用来做蛋白序列间的比对,但是作者并不推荐。因为利用BLASTP足够灵敏胜任,而blat相对不足;
3.4)确定基因的外显子和内含子在基因上的分布。
与blast的区别
4.1)blat是对目标数据库构建索引,然后通过查询序列(query sequence) 线性搜索;Blast是将查询序列索引化,然后线性搜索庞大的目标数据库;
4.2)blast是将搜索数据库中所有与子系列精确匹配的序列(hits),作为种子,向两个方向继续延伸(extonsion)每个精确匹配,即延伸发生在一两个相邻位置hits ;blat则可以扩展任何数目的hits(perfect or near-perfect hits)。
4.3) blast将两个序列之间的每个同源区域作为单独的比对结果返回 (often exons),BLAT将它们’’缝合''在一起形成一个大的比对 (larger alignments ,typically genes)。blat有特殊的代码处理RNA/DNA比对过程中的内含子 。因此在RNA/DNA比对中,blast 返回的是一个包含每个exton的比对结果,而blat返回的结果是一个大的比对结果,可以给出正确的剪切位点(splice sites)。
在linux中安装及命令的运用
这里不做重点介绍,详细可参考
https://www.cnblogs.com/adawong/articles/7460300.html
http://www.mamicode.com/info-detail-107191.html
基本命令为:blat database query [-参数] output
格式解读
以数据NM_000531.5 ,U10421.1为例,在网页版中,选择参考基因组 (Feb 2009 GRCh37/hg19),默认输出排序参数为 (query, score),输出文件类型默认为 hyperlink。
输出结果
第一列:ACTIONS,其中点击ucsc browser可以在浏览详细图解信息,detials可以参看序列比对的详细信息
第二列:QUERY,表示query的序列名称
第三列:SCORE,得分情况,得分越高说明比对越好 。参数以score排序
第四列:START,query比对的其实位置
第五列:END,query比对结束的位置
第六列:QSIZE,表示query序列长度
第七列:IDENTITY,比对相似率
第八列:CHRO,位于哪条染色体上
第九列:STRAND,表示位于染色体的正链还是负链
第10列:START,表示位于染色体的起始位置
第11列:END,表示位于染色体的终止位置
第12列:SPAN,表示的是比对位置在染色体上的跨度。
而在linux中默认输出格式为psl格式,因为blat可以输出多种格式,因此这里就不在一一介绍。
习题
7.1)blat产生的背景是什么
7.2)blat有哪些用处?
7.3)blat和blast有哪些区别?
7.4)为什么在蛋白--蛋白比对的时候不太推荐blat?
7.5) 为什么在跨物种比对的时候,不建议进化分支太远的物种?
7.6)blat为什么速度会比blast快几百倍?
7.7)blat输入的格式是什么?
7.8)blat是如何识别基因的Exon-Intron的?
7.9)你的query确定在基因组中存在,为什么blat比对的时候没有找到?
7.10)kmer的选择如何影响blat的速率?
7.11)输出共有多少条query参与了比对
7.12)输出每个query最好的比对信息
7.13)计算每个query中最长的比对长度
7.14)输出每个query中位于负链上比对最好的信息
7.15)输出每个query在染色体上跨度最大的信息
7.16) 输出所有query在1号染色体中比对最好的信息
7.17)输出所有query在1号染色体中位于负链上比对最好的信息
7.18) 输出query比对最长,且在染色体上跨度最大的信息
7.19) 在detail中如何判断mRNA对应有几个外显子
7.20)在detail中查找外显子的序列信息
参考资源
Systematic identification of novel protein domain families associated with nuclear functions
Using BLAT to find sequence similarity in closely related genomes
https://www.cnblogs.com/adawong/articles/7460300.html
http://genome.ucsc.edu/FAQ/FAQblat.html
https://baike.baidu.com/item/blat/2088564
https://en.wikipedia.org/wiki/BLAT_(bioinformatics)