蛋白質三維結構預測(MODELLER、單模板)(上)
原文:
1。 MODELLER軟體安裝
該軟體有windows, mac, linux版本,下載後安裝的時候需要提供註冊碼,不用擔心,先在https://salilab。org/modeller/registration。html註冊(需要學術郵箱或者含有edu的郵箱)。然後網站會自動稽核並且傳送
註冊碼
給輸入的郵箱。軟體的安裝步驟和大多數Windows軟體包一樣,除了輸入註冊碼那步,其它的一路點選“下一步”即可。
2。準備檔案
準備含有準備預測的目的蛋白序列的檔案TvLDH。ali
將下圖中的序列替換為準備預測的序列即可
準備pdb_95。pir檔案
pdb_95。pir檔案和TvLDH。ali可以在官網下載。
3。尋找與目的基因相近的pdb模板
%reset -f %clear # In[*] from modeller import * import os
os。chdir
(“D:\\Rwork\\modeller\\single\\1”) # In[*] from modeller import * log。verbose() env = environ() #—— Prepare the input files #—— Read in the sequence database sdb = sequence_db(env) sdb。read(seq_database_file=‘pdb_95。pir’, seq_database_format=‘PIR’, chains_list=‘ALL’, minmax_db_seq_len=(30, 4000), clean_sequences=True) #—— Write the sequence database in binary form sdb。write(seq_database_file=‘pdb_95。bin’, seq_database_format=‘BINARY’, chains_list=‘ALL’) #—— Now, read in the binary database sdb。read(seq_database_file=‘pdb_95。bin’, seq_
database_format
=‘BINARY’, chains_list=‘ALL’) # In[*] #—— Read in the target sequence/alignment aln = alignment(env) aln。append(file=‘TvLDH。ali’, alignment_format=‘PIR’, align_codes=‘ALL’) #—— Convert the input sequence/alignment into # profile format prf = aln。to_profile() #—— Scan sequence database to pick up homologous sequences prf。build(sdb,
matrix_offset
=-450, rr_file=‘${LIB}/
blosum62。sim。mat
’, gap_penalties_1d=(-500, -50), n_prof_iterations=1, check_profile=False, max_aln_evalue=0。01) #—— Write out the profile in text format prf。write(file=‘build_profile。prf’, profile_format=‘TEXT’) #—— Convert the profile back to alignment format aln = prf。to_alignment() #—— Write out the alignment file aln。write(file=‘build_profile。ali’, alignment_format=‘PIR’)
build_profile。prf 存放輸出結果,前6行記錄了MODELLER構建這個profile的引數,後續行對應profile。build()檢測到的相似處,其中最重要的是第2、10、11和12列。
第2列表示和目標序列進行對比的PDB序列的編號。每一行的編號代表一組PDB序列,第11列代表目標和對比序列相似的百分比,對比序列經過了長度的標準化(在第10列)一般相似性超過25%的對比序列可以選做模板(除非這個序列太短)第12列用e值更顯著的表示了差異。因為我們這裡得到的候選模板並不多,如果候選模板比較多的話,建議選擇相似度高和E值比較低的。
2:模板的PDB入口程式碼 。11:相似度百分比,大於25%即有可能成為有效模板。 12:錯誤率,越低越好,最好等於0
4。確定最佳模板
首先在
pdb資料庫
中下載上述的候選模板的
pdb檔案
。
篩選最佳模板
# In[*] from modeller import * env = environ() aln = alignment(env) #遍歷pdb檔案(需放在同一目錄下) for (pdb, chain) in ( (‘2dsp’, ‘B’), (‘1wqj’, ‘B’), (‘2dsq’, ‘A’),(‘3tjq’, ‘A’)): m = model(env, file=pdb, model_segment=(‘FIRST:’+chain, ‘LAST:’+chain)) aln。append_model(m, atom_files=pdb, align_codes=pdb+chain) aln。malign()
aln。malign3d
() aln。compare_structures() aln。id_table(matrix_file=‘family。mat’) env。dendrogram(matrix_file=‘family。mat’, cluster_cut=-1。0)
@符號後面對應的數字反應的是
晶體解析度
,數字越低代表解析度越高。結合此資訊和上述得到的序列同源性,可以選擇3tjqA為最佳模板。
5。 執行程式,得到預測結構
# In[*] from modeller import * env = environ() aln = alignment(env) #使用1bdm。pdb進行對齊 mdl = model(env, file=‘3tjq’, model_segment=(‘FIRST:A’,‘LAST:A’)) aln。append_model(mdl, align_codes=‘3tjqA’, atom_files=‘3tjq。pdb’) aln。append(file=‘TvLDH。ali’, align_codes=‘TvLDH’) aln。align2d() aln。write(file=‘TvLDH-3tjqA。ali’, alignment_format=‘PIR’) aln。write(file=‘TvLDH-3tjqA。pap’, alignment_format=‘PAP’) # In[*] from modeller import * from modeller。automodel import * #from modeller import soap_protein_od env = environ() #alnfile載入模板結構,sequence表示目標序列名 a = automodel(env, alnfile=‘TvLDH-3tjqA。ali’, knowns=‘3tjqA’, sequence=‘TvLDH’, assess_methods=(assess。DOPE, #soap_
protein_od
。Scorer(), assess。GA341)) #計算模型的個數 a。starting_model = 1 a。ending_model = 5 a。make()
最終得到五個預測出來的目標序列或者目標蛋白的蛋白質三維結構。
選擇其中最優的模型001或者004。pdb為最佳結果(選擇DOPE score最低且GA341 score最高的結果)。
6。使用pymol 開啟預測結果