|||
Author: Zhaoqiang Chen @DDDC
Email: 744891290@qq.com
背景:解析蛋白晶体结构的时候,有时候会有一段loop区域解析不出来,
这时候可以借助于modeller来修补这段序列。
基于序列产生多个构象(10+);
然后根据已经知道的一些知识,来选择符合你要求的loop,或者选择不同摆向的loop.
‘’‘
对于我的课题(虚拟筛选),我的口袋离loop的距离大约9A,利用maestro自动修补的loop,摆向和其同源蛋白的摆向相反。
所以我产生50个构象,目的是从中选出具有不同摆向的蛋白。
1和同源蛋白的摆向 相近
2和同源蛋白的摆向 相反
3中间
当然我潜意识是亲向第一种情况的。
’‘’
======================================================================
具体操作:
1首先下载modeller,然后安装(推荐linux系统)
其中在使用软件之前,建议阅读FAQs
2下载蛋白结构 xxx.pdb
3观察蛋白的结构:
方法1.
缺失了几段loop区域。这里推荐chimera软件。
不推荐pymol,molecular模式并不准确比如1qg8.pdb
方法2
在pdb文本中查找missing的信息。
4提取pdb中的氨基酸信息
get_seq.py
===============================
#get_seq.py
# Get the sequence of the 1qg8 PDB file, and write to an alignment file
code = '1qg8' #要修补的蛋白的名字不需要后缀,
#该文件和脚本放在同一目录
e = environ()
m = model(e, file=code)
aln = alignment(e)
aln.append_model(m, align_codes=code)
aln.write(file=code+'.seq')#生成的文件是code加seq的后缀,其中存放氨基酸序列是不包含loop缺失的序列
===================================
input:1qg8.pdb(ent)
output:1qg8.seq
by the script:get_seq.py
==============================================================
5修改1qg8.seq文件
step1:在缺少氨基酸的地方添加‘-’
step2:复制到文本的下方,并把‘-’换成对应的氨基酸。
第一行起名字
第二行因为是不知道结构的所以要把关键词改成sequence
step3:另存为1qg8.ali
===============================
>P1;1qg8
structureX:1qg8: 2 :A: 256 :A:undefined:undefined:-1.00:-1.00
PKVSVIMTSYNKSDYVAKSISSILSQTFSDFELFIMDDNSNEETLNVIRPFLNDNRVRFYQSDISGVKERTEKTR
YAALINQAIEMAEGEYITYATDDNIYMPDRLLKMVRELDTHPEKAVIYSASKTYHLN---DIVKETVRPAAQVTW
NAPCAIDHCSVMHRYSVLEKVKEKFGSYWDESPAFYRIGDARFFWRVNHFYPFYPLDEELDLNYIT---------
-----EFVRNLPPQRNCRELRESLKKLGMG*
>P1;1qg8_fill
sequence:::::::::
PKVSVIMTSYNKSDYVAKSISSILSQTFSDFELFIMDDNSNEETLNVIRPFLNDNRVRFYQSDISGVKERTEKTR
YAALINQAIEMAEGEYITYATDDNIYMPDRLLKMVRELDTHPEKAVIYSASKTYHLNENRDIVKETVRPAAQVTW
NAPCAIDHCSVMHRYSVLEKVKEKFGSYWDESPAFYRIGDARFFWRVNHFYPFYPLDEELDLNYITDQSIHFQLF
ELEKNEFVRNLPPQRNCRELRESLKKLGMG*
================================
6fill_loop.py
====================================
from modeller import *
from modeller.automodel import * # Load the automodel class
log.verbose()
env = environ()
# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']#这里暂时不知道是干嘛的???
class MyModel(automodel):
def select_atoms(self):
return selection(self.residue_range('133', '135'),
self.residue_range('216', '230')) #缺失的氨基酸的范围
a = MyModel(env, alnfile = 'alignment.ali',
knowns = '1qg8', sequence = '1qg8_fill') #一个是比对一个是已经知道结构,一个是序列
a.starting_model= 1 #设置产生第一个mode的编号
a.ending_model = 1 #设置产生最后一个mode的编号,如果需要产生10个就改为10
a.make()
====================================
====================================
这里很明显是基于序列修补的loop,
如果有谁知道如何基于模板修补loop,请与我分享,谢谢。
如果操作有疑惑的也可以和我联系。
======================================
感谢
1http://bbs.sciencenet.cn/home.php?mod=space&uid=355217
让我有了写博客的想法,
感谢对每个学生细心耐心的回答。
这种热心,需要每个人传承下去。
=====================
参考
1http://salilab.org/modeller/wiki/Missing%20residues
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 13:37
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社