原文:

1。 MODELLER軟體安裝

該軟體有windows, mac, linux版本,下載後安裝的時候需要提供註冊碼,不用擔心,先在https://salilab。org/modeller/registration。html註冊(需要學術郵箱或者含有edu的郵箱)。然後網站會自動稽核並且傳送

註冊碼

給輸入的郵箱。軟體的安裝步驟和大多數Windows軟體包一樣,除了輸入註冊碼那步,其它的一路點選“下一步”即可。

蛋白質三維結構預測(MODELLER、單模板)(上)

2。準備檔案

準備含有準備預測的目的蛋白序列的檔案TvLDH。ali

將下圖中的序列替換為準備預測的序列即可

蛋白質三維結構預測(MODELLER、單模板)(上)

準備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’)

蛋白質三維結構預測(MODELLER、單模板)(上)

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檔案

蛋白質三維結構預測(MODELLER、單模板)(上)

篩選最佳模板

# 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)

蛋白質三維結構預測(MODELLER、單模板)(上)

@符號後面對應的數字反應的是

晶體解析度

,數字越低代表解析度越高。結合此資訊和上述得到的序列同源性,可以選擇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()

蛋白質三維結構預測(MODELLER、單模板)(上)

最終得到五個預測出來的目標序列或者目標蛋白的蛋白質三維結構。

蛋白質三維結構預測(MODELLER、單模板)(上)

選擇其中最優的模型001或者004。pdb為最佳結果(選擇DOPE score最低且GA341 score最高的結果)。

6。使用pymol 開啟預測結果

蛋白質三維結構預測(MODELLER、單模板)(上)