一、蛋白質(zhì)功能預(yù)測
蛋白質(zhì)功能預(yù)測
??近年來高通量實驗方法快速發(fā)展,隨之產(chǎn)生大量新型蛋白質(zhì),發(fā)現(xiàn)的蛋白質(zhì)數(shù)量與其功能注釋之間的差距越來越大,蛋白質(zhì)功能預(yù)測成為分子生物學(xué)研究領(lǐng)域的核心問題。傳統(tǒng)的蛋白質(zhì)功能預(yù)測方法耗時且昂貴,依靠單一數(shù)據(jù)源的特征信息表達不全面,因此如何選用合適的機器學(xué)習(xí)方法,構(gòu)建有效的模型來融合多種生物數(shù)據(jù),對預(yù)測蛋白質(zhì)功能具有重要意義。
??蛋白質(zhì)功能預(yù)測通常被視為多標(biāo)簽分類問題,當(dāng)前用于蛋白質(zhì)功能預(yù)測的最新方法是使用機器學(xué)習(xí)技術(shù)來訓(xùn)練分類器,這些技術(shù)是基于大量網(wǎng)絡(luò)、序列和基因表達等多種數(shù)據(jù)源進行預(yù)測。機器學(xué)習(xí)模型的應(yīng)用離不開數(shù)據(jù)和算法,但是原始數(shù)據(jù)往往不能直接應(yīng)用在模型中進行訓(xùn)練,通常需要特征向量化。受到受到氨基酸序列排列順序及其折疊形成的空間結(jié)構(gòu)影響,蛋白質(zhì)蘊含不同的理化性質(zhì),體現(xiàn)出復(fù)雜多樣的生物學(xué)功能,進而影響生命活動機制。
??研究人員挖掘氨基酸特性的角度存在多樣化,故能從序列中得到的生物信息也不同。近些年的研究表明,序列特征表示方法大多從氨基酸組成、氨基酸理化性質(zhì)、進化信息等生物本質(zhì)或者深度學(xué)習(xí)的角度提取想要的信息。本文主要介紹位置特異性打分矩陣 (Position-Specific Scoring Matrix, PSSM)是 Gribskov 等人首次在實驗中采用的序列特征表示方法。對比其他序列特征提取方法,一級結(jié)構(gòu)的進化信息借助PSSM得到有效表達,使得蛋白質(zhì)分配功能注釋、預(yù)測蛋白質(zhì)結(jié)構(gòu)、蛋白質(zhì)結(jié)合位點預(yù)測等多類生物學(xué)研究取得一定的進步。PSSM通過序列相似性比對生成,將氨基酸的保守性信息包含在矩陣中。
二、PSSM矩陣
??PSSM矩陣全稱是“position-specific scoring matrix”,翻譯為中文是“位置特異性打分矩陣”,也被稱為“位置權(quán)重矩陣”(position weight matrix,PWM)、“位置特定權(quán)重矩陣”(position-specific weight matrix,PSWM),是生物序列中基序(模式)的常用表現(xiàn)形式。對于氨基酸和核苷酸,矩陣的形式不太一樣,根據(jù)維基百科的解釋,DNA(或RNA)序列對應(yīng)的PSSM矩陣的行數(shù)為4,對應(yīng)著四種不同的核苷酸;蛋白質(zhì)序列的PSSM矩陣的行數(shù)為20,對應(yīng)著二十種氨基酸。不過二者的PSSM的列數(shù)均為序列長度。(注:在使用軟件生成的PSSM矩陣中,恰好相反,列數(shù)分別為固定的4或20,行數(shù)為序列長度。)如下圖所示:
??圖中所示的就是一個具體的蛋白質(zhì)序列生成的PSSM矩陣,通常來說我們只關(guān)注紅框中的內(nèi)容,后面的內(nèi)容不做過多關(guān)注。紅框中的內(nèi)容是一個L*20維的矩陣,L代表著蛋白質(zhì)序列的長度(圖中綠色部分),20代表著20中氨基酸(圖中藍色部分)。
??對于其中的數(shù)字,十分常見的一個解釋是:對于PSSM中的一個元素Pij,其數(shù)值表示序列第i個位置上的氨基酸在進化過程中突變成第j個氨基酸的可能性,若值為正,就表示可能性越大;反之則表示可能性越小。
??接下來介紹使用BLAST軟件生成PSSM矩陣的過程,推導(dǎo)過程可看這篇文章:PSSM(一)-什么是PSSM – Ayanokouji Monki的博客
三、生成PSSM矩陣
生成序列文件
??在UniPort網(wǎng)頁中搜索蛋白質(zhì)名稱,并從中下載包含序列等信息的fasta文件,只讀取其中的序列并生成單獨的序列文件。(在使用BLAST軟件生成PSSM時,文件中只能包含一條序列)
fasta文件格式
下載與安裝BLAST
??在Windows下下載適合的BLAST版本并配置相應(yīng)的環(huán)境變量。下載地址為:Index of /blast/executables/blast+/LATEST (nih.gov)。我的主頁提供了已經(jīng)下載好的2.13.0版本的BLAST,下載完成后雙擊進行安裝。
??安裝完成后需要配置環(huán)境變量,在系統(tǒng)變量下方“Path”添加變量值,路徑寫到安裝BLAST軟件的bin目錄下。例如E:\BLAST\blast-BLAST_VERSION+\bin。
??若想要查看是否安裝成功,可以點擊window的“開始”菜單,輸入cmd,打開DOS命令行模式,輸入psiblast -version命令來查看安裝的版本信息,若能查詢到,則代表成功安裝。
構(gòu)建BLAST本地數(shù)據(jù)庫
??我們需要首先下載數(shù)據(jù)庫并對其解壓,數(shù)據(jù)庫的下載地址為:Index of /blast/db (nih.gov)。通常情況會選擇SwissProt數(shù)據(jù)庫、nr數(shù)據(jù)庫等,但nr數(shù)據(jù)庫是一個非冗余的蛋白質(zhì)序列數(shù)據(jù)庫,整個nr數(shù)據(jù)庫大約上百G,構(gòu)建本地數(shù)據(jù)庫非常耗時,故通常選擇SwissProt數(shù)據(jù)庫。
??下載好數(shù)據(jù)庫后,在blast文件夾下創(chuàng)建一個db文件夾,存放解壓后的數(shù)據(jù)庫文件。解壓后在DOS命令行運行格式化數(shù)據(jù)庫的命令:makeblastdb -in swissprot -dbtype prot -title “swissprot” -out sp。這樣就完成了本地數(shù)據(jù)庫的建立。(最新下載下來的數(shù)據(jù)庫文件解壓后好像可以直接使用,不用在DOS命令行執(zhí)行操作,大家可以跳過此步。)
??①-in:后面跟要格式化的數(shù)據(jù)庫
??②-dbtype:后跟所格式化的序列的類型,nucl指的是核酸,prot指的是蛋白質(zhì)
生成PSSM
??應(yīng)用PSI-BLAST讀取每個蛋白質(zhì)對應(yīng)的氨基酸序列,生成相應(yīng)的位置特異性打分矩陣。此命令是:psiblast -query 蛋白質(zhì)序列所在位置 -db 數(shù)據(jù)庫所在位置 -evalue 0.001 -num_iterations 3 -out_ascii_pssm 輸出pssm文件的位置。注意:當(dāng)文件路徑中出現(xiàn)空格時,一定要用雙引號將路徑引起來。例如:
psiblast -query "F:\Protein Prediction SVM\Data\aa.fasta" -db E:\BLAST\blast-BLAST_VERSION+\db\swissprot -evalue 0.001 -num_iterations 3 -out_ascii_pssm C:\Users\DELL\Desktop\ttttt.pssm
??參數(shù)列表:
????①-query:后面跟需要比對的序列位置,文件必須為fasta格式
????②-num_iterations:迭代次數(shù),一般選擇3次
????③-db:后面跟本地數(shù)據(jù)庫的位置
????④-out_ascii_pssm:如果需要生成PSSM矩陣,則需要輸入此參數(shù),參數(shù)后面跟pssm矩陣的名字,可任意取名
????⑤-evalue:期望閾值,一般選擇0.001
??經(jīng)過以上的步驟,便可以生成一個L*20維的PSSM,但是通過DOS命令行的方式,一次只能為一條蛋白質(zhì)序列生成PSSM,效率非常底下,故可以選擇使用Python程序來實現(xiàn)自動為任意條序列生成PSSM的工作。
四、Python實現(xiàn)批量生成PSSM矩陣
??先放代碼,然后解釋。(本人Python不是特別熟悉,故實現(xiàn)時沒有考慮效率問題,大家如果有什么建議,還請發(fā)表在評論區(qū)相互學(xué)習(xí))
import os
import re
import codecs #或者io,使用哪種包無所謂
import pandas as pandas
def Get_PSSM(species_id):
df = pandas.read_excel(r'../Data/'+str(species_id)+'.xlsx', engine='openpyxl')
for i in range(0, df.shape[0]) :
f = open(r'../Data/Temporary.fasta', 'w')
f.write(df.values[i][1])
f.close()
os.system('psiblast -query "F:\Protein Prediction SVM\Data\Temporary.fasta"' + ' -db E:\BLAST\\blast-BLAST_VERSION+\db\swissprot -evalue 0.001 -num_iterations 3' + ' -out_ascii_pssm "F:\Protein Prediction SVM\Data\\'+str(species_id)+'\\' + str(df.values[i][0]) + '.pssm"')
print("step_1:所有PSSM矩陣構(gòu)建成功")
??我是將一個物種的所有蛋白質(zhì)名稱及序列利用爬蟲技術(shù)獲取到以后,存在一個名為該物種ID的Excel表格中,然后依次讀取表格中的每一行內(nèi)容,將序列數(shù)據(jù)放到一個臨時的fasta文件中,然后生成該序列對應(yīng)的PSSM,每一個PSSM的名稱都是對應(yīng)序列的蛋白質(zhì)的名稱。
注意事項
??①一些過短的蛋白質(zhì)序列是沒有辦法在swissprot數(shù)據(jù)庫中完成搜索,并生成PSSM的,一般長度在15以下就無法生成了,可以選擇更換nr數(shù)據(jù)庫進行嘗試。
??②使用PSI_BLAST生成的PSSM是一個L*20維的矩陣,并不是一個固定長度。但是基于機器學(xué)習(xí)或其他方法,通常是需要使用相同長度的特征向量進行訓(xùn)練,所以還需要對不同大小的PSSM矩陣進行信息提取和歸一化處理,大家可以上網(wǎng)搜索相關(guān)的論文。文章來源:http://www.zghlxwxcb.cn/news/detail-787596.html
??如何生成PSSM矩陣就介紹到這里啦,大家有什么問題可以在評論區(qū)討論!文章來源地址http://www.zghlxwxcb.cn/news/detail-787596.html
到了這里,關(guān)于蛋白質(zhì)功能預(yù)測中PSSM矩陣的生成的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!