第二章 序列对比
2.1 序列对比中的基本概念
- 在没有充分对相关原理进行理解的情况下,盲目的使用工具,就会有称为被工具使用的“人标”的危险。
- 知其道,用其妙。
- 对于每一类方法可以从以下几个方面来进行介绍:
- Biology----What is the biological question or problem? 也就是这个方法要解决的生物学问题和背景是什么,或者说“为什么需要这个方法”;
- Data----What is the input data? What other supportive data can be used? 也就是说使用这个方法需要什么样的输入数据、以及哪些参数。
- Model----How is the problem formulated computationally? Or what's the data model? 我们会来介绍这个生物学问题是怎样被建模称为一个可以被计算机解决的计算问题。
- Algorithm----What is the computational algorithm? How about its performance/limitation? 我们会讨论具体来实现这个模型所需要使用的算法、其性能,以及其约束和限制。
- 序列对比的biological question:How can we determine the similarity between two sequences?
- 序列对比在生物学中很重要。
- Why is it important?
- Similar sequence--> Similar structure --> Similar function (The "Sequence-to-Structure-to-Function" Paradigm)
- 从演化的角度看:Similar sequence --> Common ancestor("Homology") 就是说不同物种中相似的序列往往意味着具有共同的祖先,也就是所谓的“同源”。
- 序列中的相似性是在演化分析中用来构建演化树的重要依据之一。
- The purpose of a sequence alignment is to line up all residues in the inputted sequence(s) for maximal level of similarity, in the sense of their functional or evolutionary relationship. 也就是说从生物学的角度来说,序列对比的目的就是根据序列之间的功能或演化关系,来有效地检测序列之间的相似性。
- 在目前的比对中,各个残基之间是相互独立的。
- BLSOM62矩阵:1.Symmetry(对称); 2.Context-intensitive(与上下文无关)。
- gap=insertion or deletion(indel) 在一条序列上的插入,就是在另一条序列上的删除。
- indel通常会对序列的功能产生影响,所以空位在对比过程中总是对应于一个负分,也就是所谓的空位罚分(Gap penalty).
- Affine gap penalty: opening a gap receives a penalty of d; extending a gap receives a penlty of e. So the total Penalty for a gap with length n would be: Penalty = d +(n-1)*e
- 一次插入和删除往往涉及到多个残基,这个与替换时不同,因此一个空位的长度常会大于1.
- Final Score = (sum of substitution scores)+(-1)*(sum of Gap Penalty)
2.2 利用动态规划进行全局对比
- Pairwise Sequence Alignment: in Maths
- Input data: Two sequences S1 and S2
- Parameter(s): A scoring function f for (Substitutions; Gaps)
- Output: The optimal alignment of S1 and S2, which has the maximal score.
- 一个残基可能的比对方式只有两种:Align to other residue, or Align to a gap
- 一对残基之间可能的对比关系也只有三种(一对残基对在一起或者是其中的一个对应着空位):S T; S -; - T
- The best alignment that ends at a given pair of symbols is the best alignment of the sequences up to that point, plus the best alignment for the two additional symbols. 即最好的对比就是之前最好的对比加上当前位置最好的对比。即动态规划。
- Dynamic Programming solves problems by combining the solutions to sub-problems. 动态规划是一种用来解决具有最优子结构的,性质的优化问题的计算机算法。
- 所谓最优子结构性质,就是指局部最优解的组合就是全局的最优解。
- 动态规划的基本步骤:1. Break the problem into smaller sub-problems; 2. Solve these sub-problems optimally recursively; 3. Use these optimal solutions to construct an optimal solution for the original problem.
- Sequence alignment with Dynamic Programming: the Formula
- Align two sequences: x and y
- F(i,j) is the score of the best alignment between
and
- s(A,B) is the score for substituting A with B; d is the (linear) gap penalty
- F(0,0)=0
- Traceback: Decode the "Real" Alignment
- Trace back to the upper left. Each arrrow introduces one symbol at the end of each aligned sequence.
- 动态规划的假设是局部最优解的组合就是全局的最优解。假设成立的条件应该是子问题非常相似。
2.3 从全局比对到局部比对
- 回溯的时候从右下角开始,到左上角的(0,0)点结束。也就是全局对比,global alignment。
- 动态规划的算法是由芝加哥的Needleman和Wunsch两位于上个世纪70年代初提出的,即Needleman-Wunsch算法。
- Needleman-Wunsch算法可以针对用户指定的打分函数,确定性地找出两条序列间的最优对比。
- 随着越来越多的序列数据的产生,该算法对两条序列所有残基进行全局对比的特点碰到了问题。
- 首先随着越来越多的蛋白序列被测定,研究人员发现功能相关的蛋白之间虽然可能在整体序列上相差甚远,却常常会具有相同的功能域。这些序列片段能够独立发挥特定的生物学功能,却在不同蛋白之间相当保守,但仅靠全局比对的算法显然是无法发现这样的片段的。
- 其次,70年代内含子的发现,使得做核酸水平的序列比对时,必须要能正确处理内含子导致的大片段的差异。
- 需求:Identify similar sub-sequence
- Local Alignment----局部比对
- 1980年,Smith and Waterman对Needle-Wunsch算法进行了改进,提出了后来被称之为Smith-Waterman的局部比对算法。文章引用超8000次,是生物信息学乃至生命科学领域被引用次数最多的文献之一。《Identification of Common Molecular Subsequences》
- 跟全局对比算法相比,就增加了一个0,一个止损下限. 也就是迭代路径可能会终止。
- 回溯的起点就未必是右下角,而终点也未必是左上角。
- Traceback: Decode the Local Alignment
- Trace back begins at the highest score in the matrix and continues until you reach 0.
- And also the secondary best alignment. 除了最优比对之外,还得到了次优的局部比对。
- Smith-Waterman算法实质上是提供了在差异过大区域之后“重启”比对的能力,从而可以有效地发现局部水平上的相似性。
- 思考:得到了这么对对比,哪个是最好的?