数据挖掘 发表于 2013-9-17 10:18:37

MODELLER修补蛋白缺失Loop

背景:解析蛋白晶体结构的时候,有时候会有一段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

本文引用地址:http://bbs.sciencenet.cn/blog-950202-725573.html

ts2009 发表于 2013-9-17 17:29:05

顶一下谢谢分享

fenzimoni 发表于 2013-9-22 11:39:58

口袋离loop的距离大约为9A,请问这9A的距离是怎么定义的??质心的距离吗?

数据挖掘 发表于 2013-9-22 13:39:39

fenzimoni 发表于 2013-9-22 11:39 static/image/common/back.gif
口袋离loop的距离大约为9A,请问这9A的距离是怎么定义的??质心的距离吗? ...

选择口袋中目测离loop最近的氨基酸,和loop中的最近距离。
一个大概的距离。
凭感觉测量的距离

sky_lynn 发表于 2016-7-15 08:22:50

本帖最后由 sky_lynn 于 2016-7-15 08:50 编辑

版主你好,想和您请教下修补Loop的问题,蛋白在运行了教程中的py脚本后,原有的配体分子和金属原子消失了,因为还要做后续的对接,所以想问问这种情况应该怎样做呢?

251banwang 发表于 2017-4-11 11:16:44

标记了,必需好好看一看
页: [1]
查看完整版本: MODELLER修补蛋白缺失Loop