生信課程筆記1-序列算法

這篇筆記是我蹭課《生物信息學(xué)》的課堂筆記,本人為非生信專業(yè),主要做實(shí)驗(yàn),所以此文僅供個(gè)人學(xué)習(xí)罐监。


序列搜索算法的進(jìn)化

雖然現(xiàn)代高通量生物分子技術(shù)產(chǎn)生了各種類型的數(shù)據(jù),但生物序列數(shù)據(jù)(biosequence data)仍然是生物信息學(xué)分析的核心瞒爬。

NCBI在2007年底推出了SRA(Sequence Read Archive)數(shù)據(jù)庫弓柱,用于存儲(chǔ)二代測序數(shù)據(jù),目前包含大約15PB堿基侧但,其中幾乎一半在開放訪問中矢空。SRA數(shù)據(jù)庫地址https://www.ncbi.nlm.nih.gov/sra/。SRA是國際核苷酸測序數(shù)據(jù)庫合作(INSDC)項(xiàng)目的一部分禀横,INSDC包括NCBI的SRA屁药,歐洲生物信息研究所(EBI)和日本DNA數(shù)據(jù)庫(DDBJ),SRA數(shù)據(jù)庫是美國國立衛(wèi)生研究院(NIH)存儲(chǔ)高通量測序數(shù)據(jù)的主要數(shù)據(jù)庫柏锄。數(shù)據(jù)上傳到以上任何一個(gè)組織者祖,其他兩個(gè)組織都是可以共享的立莉。

序列比對(duì)的意義:相似的序列可能會(huì)有相似的結(jié)構(gòu)绢彤,從而有相似的功能七问。序列之間的相似性可以幫助我們推斷一個(gè)未知新序列可能的功能。不同物種中相似的序列往往意味著其具有共同的祖先茫舶,即同源械巡。事實(shí)上,序列間的相似性是在演化分析中用來構(gòu)建演化樹的重要依據(jù)之一饶氏。(序列同源是指兩條序列有共同的祖先讥耗,然后經(jīng)過突變變得不同。同源無法考證疹启,只能通過相似性來推斷同源古程。同源不一定相似,相似也不一定同源喊崖。)

相似性矩陣(similarity matrix)或打分矩陣:兩條序列做全局比對(duì)挣磨,然后計(jì)算全局比對(duì)中一致字符的個(gè)數(shù)和相似字符的個(gè)數(shù),再除以全局比對(duì)的長度荤懂,就可以得到兩序列的一致度(identity)和相似度(similarity)茁裙。替換記分矩陣是反映殘基之間相互替換率的矩陣,也就是說它描述了殘基兩兩相似的量化關(guān)系节仿。DNA的替換計(jì)分矩陣有等價(jià)矩陣(相同1分晤锥,不同0分)、轉(zhuǎn)換-顛換矩陣(轉(zhuǎn)換-1分廊宪,顛換-5分)矾瘾、BLAST矩陣(相同5分,不同-4分箭启,是實(shí)踐經(jīng)驗(yàn)所得)壕翩。蛋白質(zhì)的常用替換計(jì)分矩陣PAM 矩陣基于進(jìn)化原理,如果兩種氨基酸替換頻繁册烈,說明自然界容易接受這種替換戈泼,那么這一對(duì)氨基酸替換的得分就高∩蜕基礎(chǔ)的PAM-1矩陣反應(yīng)的是進(jìn)化產(chǎn)生的每一百個(gè)氨基酸平均發(fā)生一個(gè)突變的量值大猛,由統(tǒng)計(jì)方法得到。PAM-1自乘n次淀零,可以得到PAM-n挽绩,表示兩序列的親緣關(guān)系更遠(yuǎn)。目前最常用的蛋白序列比對(duì)打分矩陣是BLOSUM 62矩陣驾中,這個(gè)矩陣是由一致度≥62%的序列計(jì)算而來的唉堪∧A≥0 的得分代表對(duì)應(yīng)的一對(duì)氨基酸為相似氨基酸,<0 的是不相似的氨基酸唠亚。

早期算法:動(dòng)態(tài)規(guī)劃(dynamic programing

檢測兩條短序列(如基因)的相似性(similarities)链方,通常只考慮點(diǎn)突變(point mutations),即字符替換(character substitutions)灶搜、插入或刪除(insertions or deletions祟蚀,indel)。最簡單的兩序列比對(duì)方法有打點(diǎn)法割卖,用對(duì)角線表示相同區(qū)域前酿。序列比對(duì)就是運(yùn)用特定的算法找出兩個(gè)或者多個(gè)序列之間產(chǎn)生最大相似度。根據(jù)比對(duì)序列的個(gè)數(shù)可以把序列比對(duì)分為雙序列比對(duì)和多序列比對(duì)鹏溯。根據(jù)序列比對(duì)的算法不同罢维,雙序列比對(duì)又分為全局比對(duì)和局部比對(duì)。

編輯距離(edit distance)是指兩個(gè)字符串之間丙挽,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù)肺孵。可進(jìn)行替換取试、插入或刪除操作悬槽。一般來說,編輯距離越小瞬浓,兩個(gè)字符串的相似度越大初婆。簡單的編輯距離不足以反映生物的距離,被加權(quán)編輯距離(weighted edit distance)所取代猿棉,通過相似性評(píng)分(similarity score)來定義磅叛,其中不同的字符替換可能有不同的罰分(penalties)。然后將兩個(gè)序列的整體比較形式化為最優(yōu)全局比對(duì)(optimal global alignment)問題萨赁,并用生物信息學(xué)中的經(jīng)典動(dòng)態(tài)規(guī)劃算法Needleman-Wunsch算法求解弊琴。

動(dòng)態(tài)規(guī)劃是求解最優(yōu)化問題的一種途徑,其基本思想是將過程分成若干個(gè)互相聯(lián)系的階段杖爽,在它的每一階段都作出最優(yōu)決策敲董,從而使整個(gè)過程達(dá)到最好的活動(dòng)效果。動(dòng)態(tài)規(guī)劃算法對(duì)于序列長度m慰安、n具有時(shí)間復(fù)雜度(time complexity)O(nm)腋寨,因此對(duì)于大規(guī)模序列搜索的計(jì)算要求太高。雖然全局比對(duì)的空間復(fù)雜度(space complexity)可以通過一個(gè)簡潔的分而治之的技巧(divide-and-conquer trick)使之線性化化焕。

最優(yōu)全局比對(duì)算法——Needleman-Wunsch算法:使用先前對(duì)于較小子序列的最優(yōu)比對(duì)結(jié)果萄窜,來進(jìn)行下一步的最優(yōu)比對(duì)。按照線性空位罰分(linear gap penalty)(1個(gè)gap -2分,k個(gè)gap -2k分)計(jì)算序列比對(duì)的得分查刻。

舉個(gè)栗子:右下圖比對(duì)键兜,繪制多一行多一列的表格,從左上角0開始穗泵,向下移動(dòng)(在橫向序列引入一個(gè)gap)得-2分普气,向右移動(dòng)(在縱向序列引入一個(gè)gap)得-2分,對(duì)角線移動(dòng)得到match得1分火欧,mismatch得-1分棋电。每個(gè)位置得分由它的上一個(gè)位置得分加上移動(dòng)得分計(jì)算得到。最終右下角最高得分為S(i,j)=-1苇侵,有3種最優(yōu)全局比對(duì)方式(從右下角到左上角回溯的路徑)。

最優(yōu)局部序列比對(duì)(Local sequence alignment)算法——Smith-Waterman算法:尋找輸入的兩個(gè)序列V和M的子序列(subsequences)的最優(yōu)全局比對(duì)企锌。適用于尋找相似的小片段榆浓,如蛋白質(zhì)的共有結(jié)構(gòu)域、不同序列的保守區(qū)域撕攒。計(jì)算方法與全局比對(duì)相似陡鹃,只是整個(gè)表格中沒有負(fù)分,最小為0分抖坪。在整個(gè)計(jì)分表中找到最大的分?jǐn)?shù)萍鲸,并向前追溯到0停止。

Gotoh’s算法進(jìn)一步將Needleman-Wunsch算法和Smith-Waterman算法擴(kuò)展到仿射空位罰分(affine gap penalties)的情況擦俐,對(duì)k個(gè)連續(xù)(consecutive)插入或刪除的罰分是空位開始罰分g(gap opening penalty)與空位延伸罰分e(k gap extension penalties)之和脊阴,penalty = g + (k ? 1)e,|e|≤|g|蚯瞧,往往第一個(gè)空位罰分較多嘿期。gap開頭罰分大,gap延長罰分小的時(shí)候埋合,gap集中連成長串出現(xiàn)备徐。

長度分別為m和n的兩條序列的所有可能的比對(duì)個(gè)數(shù)為

Filtration-based heuristics and database search 基于過濾的試探法和數(shù)據(jù)庫搜索

基本局部比對(duì)搜索工具BLAST(Basic Local Alignment Search Tool)是一種啟發(fā)式的(heuristic)序列比對(duì)方法甚颂,它遵循兩種一般的思想:過濾和索引(filtration and indexing)蜜猾。與給出最優(yōu)解的動(dòng)態(tài)規(guī)劃算法不同,BLAST是一種近似算法振诬。

BLASTp是用蛋白質(zhì)序列搜索蛋白質(zhì)序列數(shù)據(jù)庫蹭睡,BLASTn是用核酸序列搜索核酸序列數(shù)據(jù)庫,BLASTx是將核酸序列按6條鏈翻譯成蛋白質(zhì)序列后搜索蛋白質(zhì)序列數(shù)據(jù)庫贷揽。tBLASTn 是用蛋白質(zhì)序列搜核酸序列數(shù)據(jù)庫棠笑,核酸數(shù)據(jù)庫中的核酸序列要按6條鏈翻譯成蛋白質(zhì)序列后再被搜索。tBLASTx是將核酸序列按6條鏈翻譯成蛋白質(zhì)序列后搜索核酸序列數(shù)據(jù)庫禽绪,核酸數(shù)據(jù)庫中的所有核酸序列也要按6條鏈翻譯成的蛋白質(zhì)序列后再被搜索。除了按照搜索內(nèi)容分類萨蚕,BLAST還可以根據(jù)搜索算法不同分為標(biāo)準(zhǔn)BLAST敷搪,PSI-BLAST(位點(diǎn)特異性迭代,Position-Specific Iterated)和PHI-BLAST(模式識(shí)別斩例,Pattern-Hit Initiated)等。

BLAST的思想是真正匹配的比對(duì)很有可能包含得分非常高的配對(duì)片段从橘,即seeds念赶。片段對(duì)是指兩個(gè)給定序列中的一對(duì)子序列,它們的長度相等恰力,且可以形成無空位的完全匹配叉谜。首先在搜索的序列中選取固定長度的小片段(如3個(gè)氨基酸或11個(gè)核苷酸),稱為seeds/anchors踩萎,也就是在序列中從頭到尾一個(gè)殘基一個(gè)殘基地移動(dòng)停局,每3個(gè)作為一個(gè)seeds。然后從打分矩陣計(jì)算各種3氨基酸組合的得分香府,設(shè)置一個(gè)閾值董栽,大于閾值的3氨基酸作為比對(duì)上的,數(shù)據(jù)庫中不能匹配的部分都從考慮中丟棄(過濾filtered out)企孩。然后從seeds開始向兩端擴(kuò)展锭碳,得到高分值片段對(duì)(high scoring segment pairs,HSPs)勿璃。注意擒抛,低復(fù)雜度的序列(重復(fù)序列)應(yīng)該首先過濾掉。這樣計(jì)算復(fù)雜度是序列長度n的一次方蝗柔,如果做雙序列比對(duì)話需要構(gòu)建一個(gè)n乘以n的表格闻葵,計(jì)算復(fù)雜度是n的二次方。

搜索使用數(shù)據(jù)庫的預(yù)構(gòu)建索引(pre-built index)癣丧,通常是哈希表(hash table)槽畔,加快定位seed patterns的位置。這種方法的性能被定義為靈敏性(Sensitivity)與特異性(specificity)之間的權(quán)衡(trade-off)胁编,并由用于過濾的種子類型決定厢钧。由于分?jǐn)?shù)小于閾值的seeds被直接過濾掉了,所以其靈敏性不高嬉橙。靈敏性是指真實(shí)為陽性的樣本中早直,用這種方法能夠檢測出來的比率。

由于連續(xù)11個(gè)核苷酸完全相同(k consecutive matching nucleotides)要求太高市框,又提出了一種改進(jìn)的算法霞扬,選擇根據(jù)給定模式的k個(gè)間隔的匹配核苷酸作為種子,即間隔的種子(spaced seed),可以改善靈敏性與特異性之間的權(quán)衡喻圃。

索引是為了加速對(duì)表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲(chǔ)結(jié)構(gòu)萤彩。索引是針對(duì)表而建立的,它是由數(shù)據(jù)頁面以外的索引頁面組成的斧拍,每個(gè)索引頁面中的行都會(huì)含有邏輯指針雀扶,以便加速檢索物理數(shù)據(jù)。哈希表(Hash table肆汹,也叫散列表)愚墓,是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu),通過把關(guān)鍵碼值映射到表中一個(gè)位置來訪問記錄昂勉,以加快查找的速度浪册,這個(gè)映射函數(shù)叫做哈希函數(shù)或散列函數(shù)。Hash(散列硼啤、哈希)议经,就是把任意長度的輸入通過算法變成固定長度的輸出。直觀解釋起來谴返,就是對(duì)一串?dāng)?shù)據(jù)m進(jìn)行雜糅,輸出另一段固定長度的數(shù)據(jù)h咧织,作為這段數(shù)據(jù)的特征(指紋)嗓袱。MD5和SHA都是歷史悠久的Hash算法。


(參考文獻(xiàn):Kucherov,G. (2019) Evolution of biosequence search algorithms: a brief survey. Bioinformatics, 35, 3547–3552.)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末习绢,一起剝皮案震驚了整個(gè)濱河市渠抹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闪萄,老刑警劉巖梧却,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異败去,居然都是意外死亡放航,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門圆裕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來广鳍,“玉大人,你說我怎么就攤上這事吓妆∩奘保” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵行拢,是天一觀的道長祖秒。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么竭缝? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任房维,我火速辦了婚禮,結(jié)果婚禮上歌馍,老公的妹妹穿的比我還像新娘握巢。我一直安慰自己,他們只是感情好松却,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布暴浦。 她就那樣靜靜地躺著,像睡著了一般晓锻。 火紅的嫁衣襯著肌膚如雪歌焦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天砚哆,我揣著相機(jī)與錄音独撇,去河邊找鬼。 笑死躁锁,一個(gè)胖子當(dāng)著我的面吹牛纷铣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播战转,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼搜立,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了槐秧?” 一聲冷哼從身側(cè)響起啄踊,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎刁标,沒想到半個(gè)月后颠通,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡膀懈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年顿锰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吏砂。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撵儿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狐血,到底是詐尸還是另有隱情淀歇,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布匈织,位于F島的核電站浪默,受9級(jí)特大地震影響牡直,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纳决,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一碰逸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阔加,春花似錦饵史、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至夭织,卻和暖如春吭露,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尊惰。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工讲竿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弄屡。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓题禀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親膀捷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子投剥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345