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模板
代码语言:javascript复制%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. 运行程序,得到预测结构
代码语言:javascript复制# 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最高的结果)。