演算法基本原理:
blast演算法是
1990
年由altschul
等人提出的兩序列區域性比對演算法,採用了一種短片段匹配演算法和一種有效的統計模型來找出目的序列和資料庫之間的最佳區域性比對效果。
blast
演算法是一種基於區域性序列比對的序列比對演算法。廣泛被使用在蛋白質
dna序列的分析問題中,在其他序列相似性比對中也有應用。傳統的基於動態規劃的區域性性比對性演算法採用的是精確的序列比對,雖然有著較好的比較結果,但是對於長度為n和
m的兩個待比較序列,區域性性比對演算法的時間複雜度有
o(mn)
,這個時間複雜度對於序列匹配來說代價太大。
blast
是一種在區域性性比對基本上一種近似比對的演算法。它在保持較高精度的情況下可以大大減少程式執行的時間,是大規模序列對比問題乙個速度和精確性都可以接受的乙個解決方法。它的基本思想是:通過產生數量更少的但質量更好的增強點來提高匹配的精確度。首先採用雜湊法對查詢序列以鹼基的位置為索引建立雜湊表,然後將查詢序列和資料庫中所有序列聯配,找出精確匹配的「種子」
,以「種子」
為中心,使用動態規劃法向兩邊擴充套件成更長的聯配,最後在一定精度範圍內選取符合條件的聯配按序輸出。得分最高的聯配序列就是最有比對序列。
其演算法過程可簡單描述為:
1) 從兩個序列中找出一些長度相等且可以形成無空位完全匹配的子串行,即序列片段對;
2) 找出兩個序列之間所有匹配程度超過一定值的序列片段對;
3) 將得到的序列片段對根據給定的相似性閡值延伸,得到一定長度的相似性片段,稱為高分值片段對。
1. 構建待查詢的k-
字母表,對於
dna序列,選擇長度為11
個字母的字母表。對於待查詢佇列,從前向後依次掃瞄,對每個位置開始的連續11
個字母作為乙個
key存入雜湊,將位置作為
value
存入hash
。對於資料庫序列做和上面同樣的工作。
2. 根據打分矩陣為所有的字母對打分。打分矩陣我選擇的是乙個在dna
序列比對中
u比較常用的乙個打分絕陣,相同匹配加2,
ag,ct減
5,其他不匹配減
7,空位減
5。給出乙個閾值
t,留下高於
t的單詞匹配對,作為後面
extend
的seed。
agct
a-5-7-7g-5
-7-7c-7
-7-5t-7
-7-5
字母對打分表
3. 為每對單詞執行上面步驟,找出所有打分高於t
單詞對。找到所有的
seed。
4.(優化步驟)在實際執行中,演算法最大的消耗在步驟extend
上面,減少
extend
的方法就是減少
seed
的數目。對於選出的
seed
,可以將距離相近的合併為乙個
seed
,這樣就可以減少大量
extend
的計算量。
5. 下一步是extend
的步驟,對於每一對選擇出來的種子,將其向兩邊延伸,使其在盡可能長的距離得到盡可能多的分數。具體方法是逐漸向兩邊擴充套件,規定常數
d,在擴充套件到分數為
highestscore-d
時停止,如果最終得分大於得分閾值
s,則將其設為高分區域
hsp。
6. 將相鄰的或距離較近的hsp
合併。
7. 對於每部分hsp
使用smith-watermans
演算法進行區域性性比對,為每部分打分,作為最終結果。
BLAST(基本區域性比對工具)
nucletide blast blastn 短序列標準搜尋 megablast 相似序列 單物種 之間比對 discontiguous megablast 跨物種序列比對 protein blast blasp 標準搜尋 psi blast 使用blastp搜尋結果構建位置特異性得分矩陣 pssm...
生物序列比對與計算智慧型
生物資訊學的首要任務之一就是從資料庫中搜尋同源序列,尋找保守的序列模式。而序列比對是最常用的方法,對於發現生物序列中的功能 結構和進化的資訊具有非常重要的意義。下面給出序列比對的定義 定義 序列比對問題可以表示為乙個五元組 msa s a f 其中 1 為序列比對的符號集 表示空位 gap 表示基本...
序列比對 七 序列比對之線性空間演算法
原創 hxj7 一般而言,運用動態規劃演算法進行序列比對對記憶體空間的要求是 o mn 階的,本文介紹了一種線性空間要求的序列比對方法。前文如 序列比對 一 全域性比對needleman wunsch演算法 所介紹的運用動態規劃演算法進行序列比對時,對記憶體空間的要求是o mn 階的。如果只是要求最...