2013年2月28日 星期四

BLAST

昨日下午在台大醫學院,很亢奮地講了三個小時的序列比對(sequence alignment);以前,我總試圖想把動態規劃法(dynamic programming)的觀念講清楚,為了講解為何一個位置只有(而且一定會有)三種可能性,常常耗掉至少半個小時仍徒勞無功;昨日,竟然連dynamic programming都還沒有碰,就講了三個小時,下課前,連BLAST都還沒有完整地講述,我想我真是可以出師了。

回程走在舟山路上,我不住在想,我到底講了什麼自以為重要的東西,它們真的都很重要嗎? 又有什麼也很重要的東西我還沒機會說? 以下是我有強調的觀念:

  • DNA序列是由四種字母組成的序列,RNA亦然;閱讀方向一律從5'end至3'end;
  • 蛋白質序列是由20種字母組成的序列;閱讀方向一律從N-terminal至C-terminal;
  • DNA是雙股螺旋,正股或反股都有可能有基因;
  • 正股和反股的閱讀方向相反;且配對的鹼基必為互補(A<=>T或C<=>G);
  • 真核生物的mRNA(messenger RNA)序列已經少掉了內含子(intron),如果未來要進行mRNA序列與genome sequence的比對,要注意開gaps的必要性;
  • mRNA序列和蛋白質序列有一定的編碼關係(codons),藉此可以進行DNA(或RNA)序列與蛋白質序列的比對;
  • 一條DNA序列因此會有六種讀法(reading frames),其中能順利產生蛋白質序列的讀法即為open reading frame (ORF);
  • 序列比對的目的在於產生兩條序列之間,各字母之間的對應關係(correspondence),在任何一條序列中,其字母的順序不得前後調換;此對應關係將被轉換成一個分數(或數種分數),旨於判斷哪一種alignment為最佳;
  • 所得之分數被期待能反應出兩序列之間的演化距離,分數達某特定門檻的序列比對結果,可以用來判斷此兩條序列是否同源(homology);同源序列暗示其彼此擁有相同功能/結構;
  • 各字母之間的對應,有既定的評分標準,相同字母之對應理應得到比不相同字母之對應(即演化中發生mutation)更高的分數,針對蛋白質序列的比對,常用的評分矩陣有二:(a) PAM (Point Accepted Mutation) tables;(b)BLOSUM (BLOck SUbstitution Matrix);see more about substitution matrix
  • 除了有些字母的對應會得到負分之外,alignment中出現gaps(常以"-"的符號表示之),也應該扣一些分數,gaps的出現反應出演化過程中可能發生的insertions和deletions(統合稱呼為indels);
  • 在生物序列的比對時,最常使用的gap評分方法是affine gap penalty;see more about gap penalties;在這邊需要理解的重要觀念是:open-gap penalty與extend-gap penalty的差異;
  • 接下來就得分區何謂:global alignment和local alignment;
  • 最後就是要回答,比對結果所得到的分數,是否具有統計意義? 常用的統計指標有z-score(假設normal distribution)與e-value(假設extreme-value distribution);
  • 如何利用z-score或e-value推斷兩序列之間具有同源性?
以上是針對生物序列比對的基本觀念,有此基礎之後,才能開始介紹目前最常使用的序列比對演算法:BLAST。