24小时热门版块排行榜    

查看: 5490  |  回复: 17

sijifengsd

银虫 (小有名气)

[交流] 【经验】用Modeller补全残基学习心得 已有8人参与

最近专注于分子动力学的模拟研究。发现好多的蛋白质晶体结构或多或少的有一部分残基丢失了,要做动力学模拟,就需要把丢失的残基给补上。看文献发现比较公认的、又是免费的软件当属Modeller了。所以本人花了两个周的时间研究了这个软件的使用方法。现把个人的心得体会奉献出来,希望给需要的同学们提供点帮助:
首先大家可以到这个网站 申请个序列号,下载个免费的软件:
http://salilab.org/modeller/registration.html
安装成功就可用了。
这个软件要用到一些脚本文件,补全残基可以带着配体,水,也可以不带。
一 没有配体、水分子:
第一步 处理大分子pdb 文件,删除杂原子 和水分子等。
第二步 建立一个get_ali.py 脚本文件

# get sequece of the 2FMX PDB file, and write to an alignment file.

log.verbose()
env = environ()

env.io.atom_files_directories = ['.', '../atom_file']

code = '2FMX'
m = model(env, file=code)
aln = alignment(env)

aln.append_model(m, align_codes=code)
aln.write(code+'.seq')

第三步 :运行 modpv7 get_ali.py 产生一个sequence 文件:2FMX.seq

>P1;2FMX
structureX:2FMX:  13 :A:+556 :B:MOL_ID  1; MOLECULE  GTP-BINDING PROTEIN SAR1B; CHAIN  A, B; FRAGMENT  RESIDUES 10-198; SYNONYM  SAR1, GTBPB; ENGINEERED  YES:MOL_ID  1; ORGANISM_SCIENTIFIC  CRICETULUS GRISEUS; ORGANISM_COMMON  CHINESE HAMSTER; ORGANISM_TAXID  10029; EXPRESSION_SYSTEM  ESCHERICHIA COLI; EXPRESSION_SYSTEM_TAXID  562; EXPRESSION_SYSTEM_VECTOR_TYPE  PLASMID; EXPRESSION_SYSTEM_PLASMID  PET11D: 1.82:-1.00
SSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYID
第四步:用产生的序列文件产生一个alignment.ali脚本文件:把上面的序列复制到脚本中

>P1;2FMX
structureX:2FMX.pdb:   13 :A:4872 :A:undefined:undefined:-1.00:-1.00
SSVL---QFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYID---

>P1;2FMX_fill
sequence:2FMX_fill:     :A  :     :A ::: 0.00: 0.00
SSVLHJKQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYIDLPO
注意:上面的一个序列是pdb源文件的残基,而下面是加上缺失残基的全序列。13 :A:4872 A:表示在源文件中开始和结束的残基序号。
第五步 建立一个select.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_directories = ['.', '../atom_file']
class MyModel(loopmodel):
    def select_atoms(self):
        return selection(self.residue_range('1:A', '9:A'),
                         self.residue_range('68:A', '73:A'),
               
a = MyModel(env,
            alnfile = 'alignment.ali',
            knowns = '2FMX',
            sequence = '2FMX_fill')

a.starting_model = 1
a.ending_model = 2

a.make()

注释: 上面的'1:A', '9:A','68:A', '73:A' 是加入的那部分残基在从1开始中的序列编号;下面的红字表示可以改动的地方。class MyModel(automodel) 中的automodel也可以换成loopmodel,这样对已loop区的优化更好。
第六步 运行 mod9v7 select.py 结果提取pdb文件即可。
二 包含配体和水分子
第一步 大分子就不要处理了。
第二步 建立一个get_ali.py 脚本文件

# get sequece of the 2FMX PDB file, and write to an alignment file.

log.verbose()
env = environ()

env.io.atom_files_directories = ['.', '../atom_file']

code = '2FMX'
m = model(env, file=code)
aln = alignment(env)

aln.append_model(m, align_codes=code)
aln.write(code+'.seq')

第三步 :运行 modpv7 get_ali.py 产生一个sequence 文件:2FMX.seq

>P1;2FMX
structureX:2FMX:  13 :A:+556 :B:MOL_ID  1; MOLECULE  GTP-BINDING PROTEIN SAR1B; CHAIN  A, B; FRAGMENT  RESIDUES 10-198; SYNONYM  SAR1, GTBPB; ENGINEERED  YES:MOL_ID  1; ORGANISM_SCIENTIFIC  CRICETULUS GRISEUS; ORGANISM_COMMON  CHINESE HAMSTER; ORGANISM_TAXID  10029; EXPRESSION_SYSTEM  ESCHERICHIA COLI; EXPRESSION_SYSTEM_TAXID  562; EXPRESSION_SYSTEM_VECTOR_TYPE  PLASMID; EXPRESSION_SYSTEM_PLASMID  PET11D: 1.82:-1.00
SSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYID
第四步:用产生的序列文件产生一个alignment.ali脚本文件:把上面的序列复制到脚本中

>P1;2FMX
structureX:2FMX.pdb:   13 :A:4890 :A:undefined:undefined:-1.00:-1.00
SSVL---QFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYID---.wwwwwwwwwwww

>P1;2FMX_fill
sequence:2FMX_fill:     :A  :     :A ::: 0.00: 0.00
SSVLHJKQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYIDLPO. wwwwwwwwwwww
注意:到这一步和上面有区别了,因为有配体和水分子就要在序列的后面加上”.(表示配体,有几个配体杂原子加几个点)” 和”w(表示水分子,有几个加几个w)”。如果水分子和配体时单独成链的要加/例如:/. Wwwwwwwwwwww,或者 . /wwwwwwwwwwww
第五步 建立一个select.py文件 ,在这个文件中我们只优化补全的那部分残基。

from modeller import *
from modeller.automodel import * # Load the automodel class

log.verbose()
env = environ()
env.io.water = True
env.io.hetatm = True

# directories for input atom files
env.io.atom_files_directories = ['.', '../atom_file']
class MyModel(loopmodel):
    def select_atoms(self):
        return selection(self.residue_range('1:A', '9:A'),
                         self.residue_range('68:A', '73:A'),
               
a = MyModel(env,
            alnfile = 'alignment.ali',
            knowns = '2FMX',
            sequence = '2FMX_fill')

a.starting_model = 1
a.ending_model = 2

a.make()

注释:这里加入了env.io.water = True  env.io.hetatm = True还识别水分子和配体。
第六步 运行 mod9v7 select.py 结果提取pdb文件即可
三 复杂点的 比如两条链的

第一步 下载pdb
第二步 建立一个get_ali.py 脚本文件

# get sequece of the 2FMX PDB file, and write to an alignment file.

log.verbose()
env = environ()
env.io.water = True
env.io.hetatm = True

env.io.atom_files_directories = ['.', '../atom_file']

code = '2FMX'
m = model(env, file=code)
aln = alignment(env)

aln.append_model(m, align_codes=code)
aln.write(code+'.seq')
注:这里直接用env.io.water = True  nv.io.hetatm = True 会直接把配体、水给你表示出来

第三步 :运行 modpv7 get_ali.py 产生一个sequence 文件:2FMX.seq
>P1;2FMX
structureX:2FMX:  13 :A:+556 :B:MOL_ID  1; MOLECULE  GTP-BINDING PROTEIN SAR1B; CHAIN  A, B; FRAGMENT  RESIDUES 10-198; SYNONYM  SAR1, GTBPB; ENGINEERED  YES:MOL_ID  1; ORGANISM_SCIENTIFIC  CRICETULUS GRISEUS; ORGANISM_COMMON  CHINESE HAMSTER; ORGANISM_TAXID  10029; EXPRESSION_SYSTEM  ESCHERICHIA COLI; EXPRESSION_SYSTEM_TAXID  562; EXPRESSION_SYSTEM_VECTOR_TYPE  PLASMID; EXPRESSION_SYSTEM_PLASMID  PET11D: 1.82:-1.00
SSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYID/SSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDPTLHPTSEE
LTIAGMTFTTFDLGVWKNYLPAINGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEE
RLREMFGLYGQTTGKGSVSLKELNARPLEVFMCSVLKRQGYGEGFRWMAQYID/.x/.$x/wwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwww/wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww*

第四步:用产生的序列文件产生一个alignment.ali脚本文件:把上面的序列复制到脚本中

>P1;2FMX
structureX:2FMX.pdb:   13 :A:4872 :B:undefined:undefined:-1.00:-1.00
---------SSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLG------RVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYID/---------SSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKD-------PTLHPTSEE
LTIAGMTFTTFDLG-------VWKNYLPAINGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEE
RLREMFGLYGQTTGKGSVSLKELNARPLEVFMCSVLKRQGYGEGFRWMAQYID/.x/.$x/wwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwww/wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww*

>P1;2FMX_fill
sequence:2FMX_fill:     :A  :     :B ::: 0.00: 0.00
HHHHHHSGFSSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEELTIAGMTFTTFDLGGHIQARRVWKNYLPAI
NGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEERLREMFGLYGQTTGKGSVSLKEL
NARPLEVFMCSVLKRQGYGEGFRWMAQYID/HHHHHHSGFSSVLQFLGLYKKTGKLVFLGLDNAGKTTLLHMLKDDRLGQHVPTLHPTSEE
LTIAGMTFTTFDLGGHIQARRVWKNYLPAINGIVFLVDCADHERLLESKEELDSLMTDETIANVPILILGNKIDRPEAISEE
RLREMFGLYGQTTGKGSVSLKELNARPLEVFMCSVLKRQGYGEGFRWMAQYID/.x/.$x/wwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwww/wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww*
第五步 建立一个select.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_directories = ['.', '../atom_file']
env.io.water = True
env.io.hetatm = True


class MyModel(loopmodel):
    def select_atoms(self):
        return selection(self.residue_range('1:A', '9:A'),
                         self.residue_range('68:A', '73:A'),
                         self.residue_range('196:B', '204:B'),
                         self.residue_range('240:B', '246:B'),
                         self.residue_range('270:B', '276:B'))
                        
                                      
a = MyModel(env,
            alnfile = 'ali-ligand.ali',
            knowns = '2FMX',
            sequence = '2FMX_fill')

a.starting_model = 1
a.ending_model = 2

a.make()
注释:这里因为有两条链所以编号时B链的是在A链的基础上编的
第六步 运行 mod9v7 select.py 结果提取pdb文件即可上面说的只是一些基本的东西,要想深入的学好Modeller 还要花点时间看看在线的tutorial
http://salilab.org/modeller/tutorial/

[ Last edited by lei0736 on 2009-11-24 at 22:03 ]
回复此楼
似水年华
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoling0523

木虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
非常感谢您的资料,正在学习,太有帮助了
2楼2009-10-12 15:02:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sijifengsd

银虫 (小有名气)

呵呵

希望如此,共同交流
似水年华
3楼2009-10-12 16:03:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mophyworld

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
看上去很专业啊。先收藏了
Ineedsomeinspirationandsomeconfidence
4楼2009-10-14 15:55:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gogen

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
基础差啊,看到我头晕死了。。LZ这类软件有没有最简单的教学版本啊。。想先入门。。那个官方版的介绍基本看不懂
5楼2010-03-07 22:33:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
谢谢分享
6楼2010-03-08 17:22:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjegg

铁杆木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
不错,谢谢搂住,非常感谢您的资料,太有帮助了
除了你的亲人,没有人应该对你好,对你好的人,一定要珍惜。
7楼2010-03-08 19:09:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

patent

至尊木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
第四步:用产生的序列文件产生一个alignment.ali脚本文件:把上面的序列复制到脚本中

请问这一步具体怎样操作呀,怎样用产生的序列文件产生一个alignment.ali脚本文件
8楼2010-03-09 20:52:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sijifengsd

银虫 (小有名气)


lei0736(金币+1):谢谢 2010-04-10 10:14
引用回帖:
Originally posted by patent at 2010-03-09 20:52:22:
第四步:用产生的序列文件产生一个alignment.ali脚本文件:把上面的序列复制到脚本中

请问这一步具体怎样操作呀,怎样用产生的序列文件产生一个alignment.ali脚本文件

这个很简单,就是先建一个alignment.ali文件,然后把序列复制进去就行了
似水年华
9楼2010-04-10 08:36:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

奋斗1s

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by sijifengsd at 2009-10-12 10:01:04:
最近专注于分子动力学的模拟研究。发现好多的蛋白质晶体结构或多或少的有一部分残基丢失了,要做动力学模拟,就需要把丢失的残基给补上。看文献发现比较公认的、又是免费的软件当属Modeller了。所以本人花了两个周 ...

你好,我现在在学习modeller,但是有很多地方不懂,我想问你一下:env.io.atom_files_directory = ['.', '../atom_files']中,① ['.', '../atom_files']中应该写什么?路径?还是什么都不用写?要写的话你能给我一个模板吗?②atom_files应该怎样准备?
麻烦你了,谢谢
10楼2011-04-05 10:00:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sijifengsd 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国社科又开始会评了,不知道这次命运如何 +7 雨打竹帘 2026-08-30 11/550 2026-08-31 23:16 by hittle2008
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 EZ67DG6CvcKL 2026-08-31 3/150 2026-08-31 22:22 by o3EMxHUAQDtS
[考博] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 EZ67DG6CvcKL 2026-08-31 3/150 2026-08-31 22:14 by o3EMxHUAQDtS
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 EZ67DG6CvcKL 2026-08-31 3/150 2026-08-31 22:12 by o3EMxHUAQDtS
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-08-31 21:30 by xiangy672
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[考博] 找导师 +6 yuanjiabao 2026-08-29 7/350 2026-08-30 14:40 by 生科新手
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +6 gdd2018 2026-08-28 11/550 2026-08-30 08:58 by 超级无敌华子
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
信息提示
请填处理意见