序列比較(上篇)

2021-10-06 19:44:44 字數 3818 閱讀 6151

由20個不同的字母(氨基酸)排列組合而成。

包括dna序列和rna序列。由4個不同的字母(鹼基)排列組合而成。

第一行:大於號加名稱或其它注釋。

第二行以後:每行60個字母(也有80的,不一定)。

對於乙個蛋白質或核酸序列,你需要從序列資料庫中找到與它相同或相似的序列。不可能再用眼睛去比較每一對序列,因為資料庫中有太多序列,甚至用眼睛去比較一對序列都是不可能做到的。

相似的序列往往起源於乙個共同的祖先序列。它們很可能有相似的空間結構和生物學功能,因此對於乙個已知序列但未知結構和功能的蛋白質,如果與它序列相似的某些蛋白質的結構和功能已知,則可以推測這個未知結構和功能的蛋白質的結構和功能。

一致度:如果兩個序列(蛋白質或核酸)長度相同,那麼它們的一致度定義為他們對應位置上相同的殘基(乙個字母,氨基酸或鹼基)的數目佔總長度的百分數。

相似度:如果兩個序列(蛋白質或核酸)長度相同,那麼它們的相似度定義為他們對應位置上相似的殘基與相同的殘基的數目和佔總長度的百分數。

替換記分矩陣(substitution matrix):反映殘基之間相互替換率的矩陣,它描述了殘基兩兩相似的量化關係。分為dna替換記分矩陣和蛋白質替換記分矩陣。矩陣中元素值大於零,則兩個殘基相似;否則兩個殘基不相似。

最簡單的替換記分矩陣,其中,相同核苷酸之間的匹配得分為1,不同核苷酸間的替換得分為0。由於不含有鹼基的理化資訊和不區別對待不同的替換,在實際的序列比較中使用較少。

核酸的鹼基按照環結構特徵被劃分為兩類,一類是嘌呤(腺嘌呤a、鳥嘌呤g),它們有兩個環;另一類是嘧啶(胞嘧啶c、胸腺嘧啶t),它們只有乙個環。如果dna鹼基的替換保持環數不變,則稱為轉換,即嘌呤變嘌呤、嘧啶變嘧啶;如果環數發生變化,則稱為顛換,即嘌呤變嘧啶、嘧啶變嘌呤。在進化過程中,轉換發生的頻率遠比顛換高。為了反映這一情況,通常該矩陣中轉換得分為-1,而顛換的得分為-5。

經過大量實際比對發現,如果令被比對的兩個核苷酸相同時得分為+5,反之為-4,則比對效果較好。這個矩陣廣泛被dna序列比較所採用。

與dna等價矩陣道理相同,相同氨基酸之間的匹配得分為1,不同氨基酸間的替換得分為0。在實際的序列比對中較少使用。

pam矩陣基於進化原理。如果兩種氨基酸替換頻繁,說明自然界易接受這種替換,那麼這對氨基酸替換得分就應該高。pam矩陣是目前蛋白質序列比較中最廣泛使用的記分方法之一,基礎的pam-1矩陣反應的是進化產生的每一百個氨基酸平均發生乙個突變的量值。pam-1自乘n次,可以得到pam-n,即發生了更多次突變。

blosum矩陣是通過關係較遠的序列來獲得矩陣元素的。pam-1矩陣的產生是基於相似度較高(>85%)的序列比對,那些進化距離較遠的矩陣,如pam-250,是通過pam-1自乘得到的。即,blosum矩陣的相似度是根據真實資料產生的,而pam矩陣是通過自乘外推而來的。和pam矩陣一樣,blosum矩陣也有不同的編號,如blosum-80,blosum-62。80代表該矩陣是由一致度》80%的序列計算而來,同理,62指該矩陣由一致度》62%的序列計算而來。

氨基酸差異%

pamblosum

1pam-1

blosum-99

10pam-11

blosum-90

20pam-23

blosum-80

30pam-38

blosum-70

40pam-56

blosum-60

50pam-80

blosum-50

60pam-112

blosum-40

70pam-159

blosum-30

80pam-246

blosum-20

總結:對於關係較遠的序列的比較,由於pam-250是推算而來,所以其準確度受到一定限制,blosum-45更具優勢。對於關係較近的序列之間的比較,用pam或blosum矩陣做出的比對結果,差別不大。

最常用的:blosum-62

遺傳密碼矩陣通過計算乙個氨基酸轉換成另乙個氨基酸所需的密碼子變化的數目而得到,矩陣的值對應為據此付出的代價。如果變化乙個鹼基就可以使乙個氨基酸的密碼子轉換為另乙個氨基酸的密碼子,則這兩個氨基酸的替換代價為1;如果需要2個鹼基的改變,則替換代價為2,再比如從met到tyr三個密碼子都需要變,則代價為3。

遺傳密碼矩陣常用於進化距離的計算,其優點是計算結果可以直接用於繪製進化樹,但是它在蛋白質序列比對(尤其是相似程度很低的蛋白質序列比對)中,很少被使用。

根據氨基酸殘基替換前後疏水性的變化而得到得分矩陣。若一次氨基酸替換疏水性特性不發生太大變化,則這種替換得分高,否則替換得分低。該矩陣物理意義明確(親水性與疏水性),有一定的理化性質依據,適用於偏重蛋白質功能方面的序列比對。

打點法是最簡單的比較兩個序列的方法,理論上可以用紙和筆完成。

假設待比較序列為seq1:thefastcat,seq2:thefatcat

依次橫橫豎豎比較每乙個位置上的殘基,相同則在這個位置上打乙個點,不同則什麼也不幹。

結論:連續的對角線及對角線的平行線代表兩條序列中相同的區域。

可以用一條序列自己對自己打點,從而可以發現序列中重複的片段。這樣的打點矩陣必然是對稱的,並且有一條主對角線。在橫向或縱向上,與主對角線平行的短平行線所物件的片段就是重複的部分。

序列比對(alignment)是運用特定的演算法找出兩個或多個序列之間產生最大相似度得分的空格插入和序列排列方案。通俗來講,就是通過插入空位,讓上下兩行中盡可能多的一致的和相似的字元對在一起。

序列s:lqrhkrthtgekpye-cnqcgkafaq-

序列t:lqrhkrthtgekpymnvinmvkplhns

全域性比對(global alignment):用於比較兩個長度近似的序列。

needleman-wunsch演算法。2023年,saulneedleman和christian wunsch兩人首先將動態規劃演算法應用於兩條序列的全域性比對,這個演算法後稱為needleman-wunsch演算法。

區域性比對(local alignment):用於比較一長一短兩條序列。

2023年temple smith和michael waterman對區域性比對進行了研究,產生了smith-waterman演算法。

一致性(identity)= 一致字元的個數/全域性比對長度

相似度(similarity)= 一致及相似的字元的個數/全域性比對長度

無論兩個序列長度是否相同,都要先做雙序列全域性比對,然後根據比對結果及比對長度計算它們的一致度和相似度。

序列和集合演算法之序列比較

將乙個序列變成另乙個序列的最少修改步數。例如下圖,將字串a變成字串b,所需要的步驟為6個步驟,match表示0步,其他操作表示1步 設計演算法如下 public sealed class minimumeditdistance else 三者取最小代價 c i,j math.min math.min...

絮叨 接上篇

突然發現上篇之中,只是提出了問題,而沒有給出問題的解決方案,從而草草的給出此篇 1 專案組人沒有歸屬感 很多人沒有歸屬感,那麼如何解決呢,如何讓他們感覺有歸屬感?提公升專案組文化宣傳,宣傳專案組的理念,何理念?運維組的潛意識之中是解決問題,重要的是問題解決了,不論是用何種方法解決的,讓業務能夠持續的...

Shell演算法(上篇)

演算法 二分法查詢適用於資料量較大時,但是資料需要先排好順序。主要思想是 設查詢的陣列區間為array low,high 1 確定該區間的中間位置k 2 將查詢的值t與array k 比較。若相等,查詢成功返回此位置 否則確定新的查詢區域,繼續二分查詢。區域確定如下 a.array k t 由陣列的...