用 PSSM 與多視窗 CNN 辨識外排蛋白

回顧我大學時做的第一個深度學習研究專題。

摘要

寫這篇文章,是因為在整理過去資料時,想用一份比履歷上的一行經歷更詳細、又比完整論文更好懂的筆記,把以前做過的事記錄下來。

這篇回顧的是我 2022 年在大學資工系的畢業專題,也是我第一次比較正式地接觸深度學習研究。特別感謝當時指導我的歐昱言教授,從老師身上學到的研究方法與思考問題的方式,到今天仍讓我受益良多。

當時我想回答的問題是:只看蛋白質的胺基酸序列,能不能用深度學習判斷它是不是會把抗生素排出細胞的「外排蛋白」?我的做法是先用 PSSM 把序列中的演化資訊編碼成矩陣,再用多視窗卷積神經網路(mCNN)掃描辨識。最後在獨立測試資料上,從膜蛋白與運輸蛋白中辨識外排蛋白的 MCC 分別達到 0.99 與 0.98,明顯高於傳統分類器中表現最好的 SVM(0.74 與 0.71)。

以下依照模型的流程說明:輸入的蛋白質序列、把序列變成數字的特徵工程、負責判斷的分類器,最後是評估方式與實驗結果。

研究問題

世界衛生組織(WHO)把抗微生物藥物抗藥性列為重大的全球健康威脅,並估計 2021 年全球有超過 470 萬人的死亡與細菌抗藥性有關。1

外排蛋白(efflux protein)是嵌在細胞膜上的一種運輸蛋白,負責把有毒物質排出細胞,抗生素也是它排出的對象之一:一篇 2023 年的綜述指出,抗生素外排是致病細菌最常見的抗藥性機制之一。2

細胞外細胞內細胞膜
外排蛋白示意:嵌在細胞膜上的運輸蛋白,把進入細胞的藥物分子排出去。

要確認一個膜蛋白是不是外排蛋白,傳統做法是做生物實驗,但膜蛋白的實驗既費時又費力。如果能先用電腦從序列快速篩選出可能的外排蛋白,實驗資源就能集中在最有希望的候選上。專題把問題拆成兩個二元分類任務:

  • 外排蛋白 vs. 膜蛋白:從一般的膜蛋白中找出外排蛋白。
  • 外排蛋白 vs. 運輸蛋白:從運輸蛋白中找出外排蛋白。後者比較難,因為外排蛋白本身就是運輸蛋白的一種。
專題的整體流程,以下各節依序說明從蛋白質序列 (輸入),接著 One-hot/PSSM (特徵工程),接著多視窗 CNN (分類器),接著判斷結果 (外排蛋白/非外排蛋白)。蛋白質序列輸入One-hot/PSSM特徵工程多視窗 CNN分類器判斷結果外排蛋白/非外排蛋白
專題的整體流程,以下各節依序說明

蛋白質序列:模型的輸入

蛋白質是由胺基酸一個接一個連成的長鏈。生物體內常見的胺基酸有 20 種,每一種都有一個單字母代號,例如 M 是甲硫胺酸、K 是離胺酸、A 是丙胺酸。把一條蛋白質從頭到尾的胺基酸依序寫下來,就是它的胺基酸序列,例如 MKTLLIAVAG…。

一條蛋白質的長度從幾十個到上千個胺基酸都有。這條鏈會摺疊成特定的立體結構,而結構決定了它的功能;所以不做實驗時,序列是推測一個蛋白質「做什麼」最直接的線索,也是這個模型唯一的輸入。

胺基酸序列MKTLLIAVAGFLLSAWQPERKDGS
疏水極性帶正電帶負電
摺疊後(示意)
蛋白質是胺基酸連成的鏈。每種胺基酸有一個單字母代號,依序寫下來就是胺基酸序列;這條鏈會摺疊成立體結構。(示意圖,非真實蛋白)

One-hot 與 PSSM:特徵工程

模型只能處理數字,所以要先把序列中的每個位置轉成一列數字。長度為 L 的序列,兩種編碼都會變成 L × 20 的矩陣,每一欄對應一種胺基酸,差別在格子裡放的是什麼。

One-hot 編碼是最直接的做法:每一列只有該位置實際出現的那種胺基酸是 1,其餘 19 格都是 0。它只記錄「這裡是什麼」,所以任兩種不同的胺基酸之間,差異都一樣大。

位置特定評分矩陣(Position-Specific Scoring Matrix,PSSM)的出發點是一個生物學上的觀察:功能相似的蛋白質,序列也會很像,但不會完全一樣。它們通常來自共同的祖先,在演化過程中,對功能很重要的位置很少改變,不重要的位置則可以換成別的胺基酸,蛋白質照樣能運作。

所以,與其只看一條序列,不如把一群相似的序列對齊在一起,看每個位置「通常是什麼、還能換成什麼」。PSSM 就是這個統計結果。做法是用 PSI-BLAST 到大型蛋白質資料庫中反覆搜尋相似的序列:每一輪把找到的顯著比對結果整合成一個位置特定的分數矩陣,再用它進行下一輪搜尋。3 最後每一格是一個分數,表示在這群相似的蛋白質中,這個位置出現這種胺基酸的傾向有多高:

  • 保守的位置:在所有相似序列中幾乎都是同一種胺基酸,所以只有一兩種胺基酸是高分,其他都是負分。這通常表示這個位置對功能很重要。
  • 變化大的位置:不同序列在這裡放了不同的胺基酸,所以很多種胺基酸的分數都差不多。

換句話說,one-hot 只告訴模型「這條序列長什麼樣」,PSSM 則告訴模型「這一類蛋白質通常長什麼樣、哪裡可以變」。

點一下序列中的字母,比較同一個位置在兩種編碼下的差別:

相似序列
1MKTLLIAVAGFLLSAWQPERKDGS
2LRSILIAVANYMVTAWQPERREST
3MKTVFIAVADLILGAWEPEKNNGK
4VQNLIIGVAGFVINAWQPDREDAS
5IRAMVVAVSSWLFSAWQPERKSND
6MKSFLIAVAEIALAAWQPERTGGA
序列
One-hot:每個位置只有實際出現的胺基酸是 1,其餘是 0。PSSM:保守的欄只有一兩種胺基酸高分;變化大的欄分數比較分散。
數值01
分數−5+9
PSSM:保守的欄只有一兩種胺基酸高分;變化大的欄分數比較分散。
分數−5+9
同一段示意序列的兩種編碼。One-hot 只看這一條序列;PSSM 統計一群相似序列,記錄每個位置通常是什麼、還能換成什麼。

多視窗卷積神經網路:分類器

有了 PSSM 之後,我需要一個模型來讀這張 L × 20 的矩陣。我選擇卷積神經網路(CNN),因為它很擅長在一長串資料中找出局部的樣式。在序列上做卷積的方式是:

  1. 每個濾波器有固定的寬度 w,像一個視窗,一次蓋住連續 w 個位置的 20 個分數。
  2. 視窗沿著序列一格一格滑動,每到一個位置,就把視窗內的分數和濾波器的權重相乘再加總,得到一個分數。分數高,表示這一段序列很符合這個濾波器學到的樣式。
  3. 模型會同時學很多個濾波器,各自負責不同的樣式。

一開始我只用單一寬度的視窗,結果發現不管選哪個寬度,總有一些情況表現不好。我的理解是:蛋白質上有意義的區段長短不一,一種寬度的視窗只抓得到其中一種長度。所以我參考了多視窗卷積神經網路(multi-window CNN,以下簡稱 mCNN)的做法,同時用好幾種寬度的視窗掃描同一張 PSSM,再把結果合起來。4 視窗的寬度怎麼選,我是先逐一測試單一寬度,再把幾種寬度組合起來比較。

接著要處理的問題是序列長短不一。為了讓所有序列能一起送進模型,我先把每條序列的 PSSM 補零到同樣的長度。掃完之後,每個濾波器沿著序列得到的是一整排分數;我用 one-max pooling(只取最大值的池化)只保留每個濾波器的最高分,所以不管它要找的樣式出現在序列的哪個位置,每個濾波器都只輸出一個數字,所有濾波器合起來就是固定長度的特徵向量。最後,我在 dropout 之後接上一個有 1,024 個神經元的全連接層和 softmax,輸出這個蛋白是不是外排蛋白。

勾選不同的視窗寬度,按播放看掃描的過程,再試試把序列加長:

特徵向量 · 長度 13983101長度固定,跟序列長短無關

寬度 8 的視窗在位置 15–22 得到最高分:這段剛好對上一個保守區段。

多視窗卷積的示意。不同寬度的視窗沿序列滑動並計算分數;one-max pooling 只保留每個濾波器的最高分,所以輸出長度與序列長度無關。

把上面這些步驟串起來,就是整個模型的架構:

輸入 · L × 20,L = 24

卷積 · 每個寬度 3 個濾波器,分數條畫出其中一個

one-max pooling

串接 · 長度 = 寬度數 × 每個寬度的濾波器數 = 2 × 3 = 6

長度固定,跟序列長短無關

Dropout(0.7)→ 全連接層(1,024 個神經元)→ softmax · 示意

外排92%
非外排8%

訓練時,dropout 每次隨機關掉 70% 的特徵,減少過度擬合;預測時全部使用。

全連接層整合這些特徵,softmax 輸出是外排蛋白的機率。

多視窗 CNN 的完整架構。數值為示意;實際模型使用更寬的視窗與更多濾波器,見實驗結果。

如何評估:MCC

外排蛋白的數量遠少於其他兩類,在膜蛋白資料集中只占約一成。這種不平衡的資料不適合只看準確率:一個把所有蛋白都猜成「不是外排蛋白」的模型,準確率也能超過九成,卻完全沒有用。

所以專題主要用 MCC(Matthews 相關係數)評估模型。MCC 同時考慮兩類的對錯,範圍是 −1 到 1:1 代表全部判斷正確,0 代表跟隨機猜差不多,上面那個「全部猜不是」的模型 MCC 就是 0。

實驗結果

以下各表來自不同階段的實驗,視窗組合與濾波器數量不同,所以 PSSM + mCNN 的 MCC 不完全一樣;最終模型的結果是最後一張表。

資料與設定

  • 資料來源:從 UniProt 下載膜蛋白、運輸蛋白與外排蛋白序列,移除長度小於 50 個胺基酸的序列。
  • 去除相似序列:用 CD-HIT 把相似度超過 70% 的序列歸為同一群,每群只保留一條,避免幾乎一樣的序列同時出現在訓練與測試資料中。
  • 切分:各類別依 80% / 20% 分成訓練資料與獨立測試資料。
  • 不平衡處理:在訓練資料上用 SMOTE 補足少數類別的樣本。
  • 調參:以 K-fold 交叉驗證選擇視窗組合與濾波器數量。
類別原始序列去除相似序列後訓練(80%)獨立測試(20%)
外排蛋白6,458570457113
膜蛋白13,1115,4224,3381,084
運輸蛋白7,3282,2721,818454

特徵:PSSM 比 one-hot 好

在相同的 mCNN 模型下:

輸入特徵外排 vs. 膜蛋白(MCC)外排 vs. 運輸蛋白(MCC)
PSSM0.950.97
One-hot0.900.88

分類器:多種寬度比單一寬度好

以外排 vs. 膜蛋白為例:

視窗寬度MCC
單一寬度(最佳:24)0.85
兩種寬度(28、16)0.96
三種寬度(28、16、24)0.96
四種寬度(28、16、24、20)0.93

從一種寬度增加到兩種,MCC 從 0.85 提升到 0.96;再增加寬度,MCC 維持在 0.93 到 0.96 之間,沒有再明顯提升,所以視窗組合是一個需要調整的超參數。以四種寬度(28、16、24、20)測試濾波器數量時,濾波器從 4 個增加到 256 個,MCC 也從 0.65 提升到 0.98。

與傳統分類器比較

在獨立測試資料上,使用相同的 PSSM 特徵:

模型外排 vs. 膜蛋白(MCC)外排 vs. 運輸蛋白(MCC)
KNN0.470.26
Random Forest0.540.61
SVM(RBF kernel)0.740.71
PSSM + mCNN0.990.98

結論

PSSM 把「功能相似的蛋白質會長得像、但不完全一樣」的演化資訊帶進每一個位置,讓模型知道哪些位置是保守的;多視窗 CNN 則用不同寬度的視窗同時掃描,再用 one-max pooling 把每個濾波器的結果濃縮成一個數字。兩者結合,在這份資料上能有效區分外排蛋白與一般的膜蛋白、運輸蛋白。

回頭看,這個專題也有幾個限制:

  • 只在單一資料集上驗證:所有結果來自同一份資料與切分。MCC 接近 0.99 是非常高的分數,若要確認結果能推廣到其他資料,可以再用一份獨立收集的資料驗證。
  • 相似度門檻:70% 的門檻只排除了非常接近的序列,訓練與測試資料之間仍可能有中度相似的序列。若要更嚴格地評估,可以考慮更低的門檻。
  • PSSM 的計算成本:每條序列都要用 PSI-BLAST 在大型資料庫上反覆搜尋,序列一多就很耗時。這也是後來研究轉向蛋白質語言模型的原因之一。5
  • 只解決第一步:這個模型只負責篩選出可能的外排蛋白,之後的結構分析與藥物篩選不在專題的範圍。

註腳

  1. World Health Organization,Antimicrobial resistance(fact sheet)。

  2. Gaurav, A. et al.(2023)。Role of bacterial efflux pumps in antibiotic resistance, virulence, and strategies to discover novel efflux pump inhibitors。Microbiology, 169(5), 001333。

  3. Altschul, S. F. et al.(1997)。Gapped BLAST and PSI-BLAST: a new generation of protein database search programs。Nucleic Acids Research, 25(17), 3389–3402。

  4. 多視窗掃描的做法參考 Ho, Q.-T., Le, N. Q. K., & Ou, Y.-Y.(2022)。mCNN-ETC: identifying electron transporters and their functional families by using multiple windows scanning techniques in convolutional neural networks with evolutionary information of protein sequences。Briefings in Bioinformatics, 23(1), bbab352。

  5. 從多重序列比對到蛋白質語言模型的演進,可參考我們實驗室之後發表的綜述,整理了膜蛋白序列特徵從 PSSM 等演化資訊到預訓練語言模型的發展:Ou, Y.-Y., Ho, Q.-T., & Chang, H.-T.(2023)。Recent advances in features generation for membrane protein sequences: From multiple sequence alignment to pre-trained language models。Proteomics, 23(23–24), 2200494。