生信步驟|MAFFT結合HMMER進行多序列比對和基于隱馬模型的基因搜索

蛋白質都是由相似的小型結構域組成的。如果我們有若干個已知的蛋白序列,那我們就可以根據這些蛋白序列比較其含有的保守域,尋找在蛋白數據庫中上是否也有一樣保守域的蛋白。而后根據統計學模型,將顯著性較高的蛋白序列預測為同一類基因家族蛋白。

隨著蛋白質數據庫的日趨完善,使用蛋白質結構域進行序列比對相比起傳統的序列全長比對更具優勢。對于每個蛋白質家族,通常有數千個已知的同源蛋白可以比對成較深的多重序列。序列比對揭示了一種特定于該結構域的結構和功能的進化模式(profile)。這些模式可以用概率模型捕捉到。HMMER能夠從蛋白或核酸序列中提取出域家族從而構建隱式馬爾可夫模型(profile hidden Markov models, profile HMMs),從而用于同源序列檢索,注釋新的序列。

隱式馬爾可夫模型預測domain示意圖


1.軟件安裝

需要用到的軟件包括mafft,hmmer,seqkit。

$ conda install -c bioconda mafft hmmer seqkit

2.MAFFT多序列比對蛋白質

MAFFT是一款多序列比對軟件,相比起多序列比對的明星軟件ClustalW,MAFFT在準確性和速度上均具有優勢。準確性上MAFFT>Muscle>T-Coffee>ClustalW,比對速度上Muscle>MAFFT>ClustalW>T-Coffee [1]。因此我們在這里采用MAFFT進行多序列比對。

將待比對的序列手動收集并存放于ZAR1_new.fas文件后,我們采用MAFFT的方式進行多序列比對。注意:mafft可調整的參數較多,可根據需求選擇適當的參數。

$ mafft --localpair --maxiterate 1000 ZAR1_new.fas > ZAR1_aligned.fas

2.1可調整的比對算法:

2.1.1 mafft準確度優先的比對算法(Accuracy-oriented methods)

#L-INS-i (最準確的算法;適用于200條序列以下的比對):
$ mafft --localpair --maxiterate 1000 input [> output]

#G-INS-i (適用于序列長度相似的比對;200條序列以下為佳):
$ mafft --globalpair --maxiterate 1000 input [> output]

#E-INS-i (適用于包含大范圍非比對區的序列;200條序列以下為佳;--ep 0選項代表允許超長gap的出現):
$ mafft --ep 0 --genafpair --maxiterate 1000 input [> output]

2.1.2 mafft速度優先的比對算法(Speed-oriented methods):

#FFT-NS-i法:
$ mafft --retree 2 --maxiterate 2 input [> output]

#FFT-NS-i法(最高1000次迭代):
$ mafft --retree 2 --maxiterate 1000 input [> output]

#FFT-NS-2法(快):
$ mafft --retree 2 --maxiterate 0 input [> output]

#NW-NS-2法(快,且不進行FFT近似估計):
$ mafft --retree 2 --maxiterate 0 --nofft input [> output]

#FFT-NS-1法(更快; 推薦在比對2000條以上序列時使用):
$ mafft --retree 1 --maxiterate 0 input [> output]

#NW-NS-PartTree-1 (推薦序列數~10,000到~50,000條時使用):
$ mafft --retree 1 --maxiterate 0 --nofft --parttree input [> output]

2.1.3 mafft群體間比對的算法(Group-to-group alignments):

$ mafft-profile group1 group2 [> output]

以上MAFFT的參數命令行均有簡寫形式,詳情請見Mafft Manual


3.hmmbuild將多序列比對文件轉化為隱馬模型

我們采用HMMER軟件進行隱馬模型的建立。

#將多序列比對文件轉化為隱式馬爾可夫模型
$ hmmbuild ZAR1.hmm ZAR1_aligned.fas

4.利用隱馬模型搜索結構域類似的蛋白質

通過隱馬模型搜索蛋白數據庫中符合該結構的蛋白質。將剛產生的profile輪廓文件作為輸入,檢索靶向數據庫中符合該輪廓的蛋白序列,最終按照符合度輸出序列結果。Hongyang_pep.fa是先行下載好的蛋白質組序列文件,以fasta格式呈現。

#在Hongyang_pep.fa蛋白質組中搜索具有ZAR1.hmm特征的蛋白質
$ hmmsearch ZAR1.hmm Hongyang_pep.fa > hmmer_result.out

#設定bit-score閾值篩選搜索結果,此處設定bit-score閾值為15
$ hmmsearch -T 15 ZAR1.hmm Hongyang_pep.fa > hmmer_bit.out

#設定bit-score閾值篩選搜索結果。默認為 10, 表示每個搜索報告大約 10 個錯誤結果。
$ hmmsearch -E 0.0001 ZAR1.hmm Hongyang_pep.fa > hmmer_e.out
#此處設定過濾閾值-E如果是e-100類似形式會報錯,因此建議比對后使用awk進行過濾。

此外,常用到的HMMER命令還包括:
hmmbuild: 用多重比對序列構建HMM模型;
hmmsearch: 使用HMM模型搜索序列庫;
hmmscan: 使用序列搜索HMM庫;
hmmalign: 使用HMM為線索,構建多重比對序列;


5.獲取匹配的蛋白質并進行tblastn檢索新的同源蛋白

利用hmm模型在蛋白質組序列中尋找相似的蛋白后,可以通過seqkit提取該序列(新建grep.txt文件并將待提取序列的名稱保存于此)。再通過tblastn會將庫中的核酸翻譯成蛋白序列,在核酸庫中尋找與該蛋白相似的核酸序列。實際使用時可以采用全基因組建立核酸庫,即可搜索全基因組內可能與目標蛋白相似的序列。

#seqkit提取隱馬模型預測的序列,保存于Actinidia05846.t1.fa文件
$ seqkit grep -f grep.txt Hongyang_pep.fa -o Actinidia05846.t1.fa

#基因組建立核酸庫并命名為:canu_genome
$ makeblastdb -in 11251AaHscanu.contigs.fasta -dbtype nucl -parse_seqids -input_type fasta -out canu_genome

#核酸庫中比對目標序列
$ tblastn -db canu_genome -query Actinidia05846.t1.fa -outfmt 6 -out tblastn_canu.result

6.對新檢索的蛋白序列進行HMM結構域的注釋

對于剛剛找到的蛋白,如果我們希望探究其功能,往往會對其結構域進行搜索。畢竟結構決定了功能。待探究的輸入文件可以是單個蛋白序列,多蛋白序列,hmm隱馬模型。我們采用pfam網站對蛋白序列進行注釋。首先需要下載Pfam注釋庫文件,Pfam網站中保留的庫文件目前只有A數據庫,A數據庫代表著經過手工校正的高質量數據庫。此外,我們還需要對庫文件進行初步的二進制壓縮和引索處理。

#下載Pfam庫文件
$ wget https://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.hmm.gz
#解壓Pfam庫文件
$ gzip -d Pfam-A.hmm.gz
#壓縮Pfam庫文件:此處的Hmm文件以文本形式保存,壓縮為二進制有助于加速運算,建立成索引數據庫。
$ hmmpress Pfam-A.hmm

而后我們需要用到HMMER軟件中的hmmscan進行Pfam注釋。將待比對的序列放在hongyang_RPM1_like.fa文件中,使用剛剛壓縮得到的庫Pfam-A.hmm作為注釋參考。得到的三個文件result.txtresult.tblresult.dom分別表示待比對序列的注釋結果文件,注釋出的蛋白域信息文件,帶有起止位置信息的蛋白結構域信息文件。

#hmmscan搜索蛋白質所含的結構域
$ hmmscan -o result.txt --tblout result.tbl --domtblout result.dom --noali -E 1e-5 Pfam-A.hmm hongyang_RPM1_like.fa
#更多可選參數:
# -h:顯示幫助信息
# -o FILE:將結果輸出到指定的文件中。默認是輸出到標準輸出。
# --tblout FILE:將蛋白質家族的結果以表格形式輸出到指定的文件中。默認不輸出該文件。
# --domtblout FILE:將蛋白結構域的比對結果以表格形式輸出到指定的文件中。默認不輸出該文件。該表格中包含query序列起始結束位點與目標序列起始結束位點的匹配信息。
# --acc:在輸出結果中包含 PF 的編號,默認是蛋白質家族的名稱。
# --noali:在輸出結果中不包含比對信息。輸出文件的大小則會更小。
# -E FLOAT:設定 E_value 閾值,推薦設置為 1e-5 。
# -T FLOAT:設定 Score 閾值。
# --domE FLOAT:設定domain比對的E_value閾值。類似-E參數。
# --cpu:多線程運行的CPU。默認應該是大于1的,表示支持多線程運行。但其實估計一般一個hmmscan程序利用150%個CPU。并且若進行并行化調用hmmscan,當并行數高于4的時候,會報錯:Fatal exception (source file esl_threads.c, line 129)。這時,設置--cpu的值為1即可。

結果文件示例如下:

Query: Actinidia05846.t1 [L=955]
Scores for complete sequence (score includes all domains):
--- full sequence --- --- best 1 domain --- -#dom-
E-value score bias E-value score bias exp N Model Description
------- ------ ----- ------- ------ ----- ---- -- -------- -----------
1.1e-60 205.0 0.2 1.7e-60 204.5 0.2 1.3 1 NB-ARC NB-ARC domain
7.6e-24 83.9 0.2 2.9e-23 82.1 0.2 2.1 1 Rx_N Rx N-terminal domain
3.4e-06 26.8 16.8 0.0049 16.7 0.5 4.6 5 LRR_8 Leucine rich repeat


參考資料:

  1. 多序列比對算法MAFFT以及HMMER和profile文件的使用 CSDN:https://blog.csdn.net/weixin_45429249/article/details/109021162
  2. HMMER User’s Guide. http://eddylab.org/software/hmmer/Userguide.pdf
  3. Mafft Manual. https://mafft.cbrc.jp/alignment/software/manual/manual.html
  4. HMMSCAN使用pfam數據庫對多序列文件進行結構域注釋。http://www.lxweimin.com/p/f6db8af1e2cb
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容