北京大学生物信息学 (4)序列数据库
https://www.bilibili.com/video/BV13t411G7oh?p=9&spm_id_from=pageDriver
搜库算法
BLAST 算法的原理
和之前的双序列比对和局部比对的原理相似
三种不同的比对算法的差异
关于局部比对、全局比对和序列比对的使用和意义。
https://zhuanlan.zhihu.com/p/150579075
北京大学生物信息学 (5)序列数据库的搜索
Blast 算法的基本原理
先在2个或者多个序列中,先找到高度相似的种子序列,然后以此为基础向2端延申,然后进行比对,为了避免假阳性,BLAST 还会进行统计显著性分析。
BLAST: BLAST算法的基本思想是通过产生数量更少的但质量更好的增强点来提高比对的速度。算法的原理主要分为以下五步:(1)过滤:首先过滤掉低复杂度区域,即含有大量重复的序列(这个过程主要是通过对于序列的现场分析来进行过滤;(2)Seeding:将Query序列中每k个字组合成一个表,即将一个序列拆分成多个连续的‘seed words’(通常蛋白质k=3,核酸k=11);(3)比对:列出我们所关心的所有可能的字组,再配合置换矩阵给出高分值的字组并组织成快速搜索树结构或者哈希索引,因此此步骤可以快速搜索出大数据集中的所有匹配序列,找到每个seed words在参考序列中的位置;(4)延伸:当找到seed words的位置后,接下来需要将seed word延伸成长片段,延伸过程中,得分值也在变化,当得分值小于阈值时即停止延伸,最后得到的片段成为高分片段对,HSP(High-scoring segment pair);(5)显著性分析,最后我们使用如下公式计算E值,E值衡量了在随机情况下,数据库存在的比当前匹配分数更好的比对的数目,因此可以用该值作为指标评价HSP比对序列的可信度[2,3]。
在第一步中过滤掉低复杂度的原因
防止产生大量的具有显著性结果但是无意义的序列,
寻找种子序列在数据库中的位置
去掉复杂度低的序列
这里的N是根据比对的序列类别,如果蛋白序列,则N代表20中氨基酸,如果是核酸序列,N代表4种核酸,如果是其他的序列,则根据字符的数目取值。其中ni的阶乘,表示字母(这里可以是氨基酸或者核苷酸在一定窗口长度(6)中出现的频率。
对于一个微卫星序列的低复杂度序列的计算
为了提高灵敏度,除了种子本身以外,与种子具有高度相似性的序列也被认为是种子序列。
对于一个给定的蛋白质序列,每个氨基酸在一个正确位置上的概率都是1/20=0.05,那么如果窗口是6的话,一条目标氨基酸的概率是1.56*10^(-8),那么在如下含有192,206,270个氨基酸的库里进行搜索的话,理论上可得到3条完全匹配的序列。
对得到的最终比对的结果,还需要进行统计显著性分析。
其中,m是数据库长度,n是query的长度,S是HSP分数,其他两个参数是修正系数。原理及步骤示意图如下图。
其中的S值越高,E值越小。k 和指数系数是修正值,是与打分系统和搜索空间相关的两个数据,用来平衡打分系统和搜索空间。常将e=0.05作为一个cut off。
Blast 是一种启发式的算法,其并不能保证能找到最优解,但是其可以在最短时间内找到最好的解,其计算速度得到明显的提升,但是付出的代价是灵敏度下降。
需要E值的原因
使用BLAST 的原因。
搜库,来研究蛋白的保守性和功能。
NCBI中常见的几种序列比对的方法
此外,需要明确一个概念,序列相似性和同源性是2个不同的概念
那么BLAST 的程序
step0 filter
Step1
Step2 搜索种子序列以及临近相似的序列,此步可以通过设置阈值进行筛取相邻的相似种子序列
Step 3的方法,搜库,哈希表和有限状态机的方法(确定字符转换的状态)
Step 4 extending 有中子序列进行向2端延申,从而极大的降低了整个搜库的时间。
Step5 显著性评估
此处通过对原始的分数通过S和λ来进行归一化,最后的E值 越小,表示比对的序列和查询的序列之间的相似性越好
97年的BLAST2.0版本进行升级,加入了Gapped BLAST 和PSI-BLAST
第二个常用于蛋白质的比对
参考文献