在生物信息学研究中,序列比对是一个非常基础的问题,在很多研究中都会用到。主要几种算法包括全局比对算法(Needleman-Wunsch算法),局部比对算法(Smith-Waterman 算法),Blast等。开展一个课题时难免要构建克隆,寻找同源蛋白等,那当你在使用 NTI , MEGA 等进行比对时,你了解过序列比对的原理吗?
序列比对基本原理
-
输入数据
—— 序列 seq1,seq2,seq[n]
-
根据打分表打分
-
输出结果,选择最优比对
序列比对方法
枚举
进行序列比对最简单的办法就是自行对给定序列进行多种排列组合
比如有两条序列 seq1:LSPADK seq2:LTPEDK
这两条序列比对时会产生多种可能,如:
我们可以看到当序列比较短时我们确实能够一一列举得到最优的比对结果,但是当序列长度为300甚至更长时怎么办?
总结比对的规律,其实一对残基之间只有三种比对可能,比对上或比对到空位,如 T
,S
S S -
T - T
由此就产生了动态规划算法,其实就是先得到局部最优比对,最后得到全局最优比对,也就是 好的+好的=最好的
Needleman-Wunsch 算法 - 基于动态规划的序列全局比对
Needleman-Wunsch算法是序列全局比对的核心算法,会将给定的两条序列从头到尾进行比对
概念:打分表
对于不完全匹配的序列,会存在空位或者不匹配的位点,打分表是表示一种氨基酸(或核苷酸)变为另外一种氨基酸(核苷酸)的打分,对于空位则要罚分,最终综合所有位点的打分结果,获得两个序列的匹配分值,分值越高的表示两个序列相似度越高
对于蛋白质序列,常用的打分表有PAM250和BLOSUM62,其中PAM250是基于高同源序列构建,BLOSUM62基于远程同源序列构建,因此寻找远程同源序列一般用BLOSUM62
计算步骤
以核苷酸序列为例,核酸序列共四种碱基ATCG
-
定义打分表
A C G T A 2 -7 -5 -7