ROSETTA使用技巧随笔--RosettaLigand Docking
时间不充分,简单记录下自己实践过程中的做法:
1. 首先,非标准残基都需要转换成.params文件,使用 <path-to-Rosetta>/main/source/scripts/python/public/molfile_to_params.py -n TPP TPP.mol2 --chain=F --clobber 转换,此命令会产生TPP_0001.pdb和TPP.params两个文件;
2. 其次,如果配体需要进行构象搜索,可以使用obabel,这个免费且简单,见博客http://www.cnblogs.com/wq242424/p/8231600.html,需要做限制性构象搜索的话,就比较难了,我用的是schrodinger的conformational search里的高级搜索;
3. 如果经过上一步产生了ligand_conformers.sdf,就需要为 <path-to-Rosetta>/main/source/scripts/python/public/molfile_to_params.py -n GAD -p GAD --chain=X --center=-31,-35.5,8 --clobber --conformers-in-one-file GAD_confs.sdf 命令多加一个参数 --conformers-in-one-file GAD_confs.sdf ,这个参数会在产生的.params文件末尾加一句 PDB_ROTAMERS GAD_conformers.pdb 来表明你的多重构象的文件,此命令会产生GAD.pdb,GAD.params和GAD_conformers.pdb三个文件,其中GAD.pdb是以conformers中第一个构象为结构;
4. 多底物对接的问题,经过查阅手册和论坛,得出的结论是通过控制需要dock的链("X/Y/F/。。。")来指定需要对接的小分子,比如我要对接TPP和GAD,就需要在single movers后面及前面LIGAND_AREAS和INTERFACE_BUILDERS那里指定分别对“F”和“X”链进行dock,并在MOVERS处指定两底物分子分别对应的操作,options不必特意根据双底物改变,下面给出了我做的两个XML文件的示例;
5. StartFrom,Transform,Translate和Rotate的差别和比较。StartFrom是在底物不在蛋白口袋内部,需要程序先将底物以Coordinates为基准放到口袋中的程序;Transform是使用蒙特卡洛的方法,对对接过程的底物和蛋白小分子随机取样的过程;Translate和Rotate则是对处于口袋中的小分子进行平移旋转的操作。底物在蛋白口袋中时,就可以不使用StartFrom;使用Transform时,则需要指定GRID。
6. 至于下面的high_resolution_dock XML文件,用途是在你已经知道你的底物的位置的情况下,对底物及周边残基进行高分辨率的对接,与其说对接,可能说packing和minimizing更恰当,因为它是对周围的残基优化的同时变换底物的构象,以求找到最优结果。
分享一下自己的两个xml文件及对应的flags:
low_resolution_dock+high_resolution_dock
This protocol will simply do low-resolution followed by high-resolution docking.
It will also report the binding energy (ddg) and buried-surface area (sasa) in the score file.
<ROSETTASCRIPTS>
<SCOREFXNS>
<ligand_soft_rep weights="ligand_soft_rep">
</ligand_soft_rep>
<hard_rep weights="ligand">
</hard_rep>
</SCOREFXNS>
<LIGAND_AREAS>
<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
</LIGAND_AREAS>
<INTERFACE_BUILDERS>
<side_chain_for_docking ligand_areas="docking_sidechain_X"/>
<side_chain_for_final ligand_areas="final_sidechain_X"/>
<backbone ligand_areas="final_backbone_X" extension_window="3"/>
</INTERFACE_BUILDERS>
<MOVEMAP_BUILDERS>
<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
</MOVEMAP_BUILDERS>
<MOVERS>
single movers
<StartFrom name="start_from_X" chain="X">
<Coordinates x="-31" y="-35.5" z="8"/>
</StartFrom>
<CompoundTranslate name="compound_translate" randomize_order="false" allow_overlap="false">
<Translate chain="X" distribution="uniform" angstroms="2.0" cycles="50"/>
</CompoundTranslate>
<Rotate name="rotate_X" chain="X" distribution="uniform" degrees="360" cycles="500"/>
<SlideTogether name="slide_together" chains="X"/>
<HighResDocker name="high_res_docker" cycles="6" repack_every_Nth="3" scorefxn="ligand_soft_rep" movemap_builder="docking"/>
<FinalMinimizer name="final" scorefxn="hard_rep" movemap_builder="final"/>
<InterfaceScoreCalculator name="add_scores" chains="X" scorefxn="hard_rep"/>
compound movers
<ParsedProtocol name="low_res_dock">
<Add mover_name="start_from_X"/>
<Add mover_name="compound_translate"/>
<Add mover_name="rotate_X"/>
<Add mover_name="slide_together"/>
</ParsedProtocol>
<ParsedProtocol name="high_res_dock">
<Add mover_name="high_res_docker"/>
<Add mover_name="final"/>
</ParsedProtocol>
</MOVERS>
<PROTOCOLS>
<Add mover_name="low_res_dock"/>
<Add mover_name="high_res_dock"/>
<Add mover_name="add_scores"/>
</PROTOCOLS>
</ROSETTASCRIPTS>
对应的flag options文件:
-in:file:s inputs_GAD/GALS_TPP_GAD.pdb
-in:file:extra_res_fa inputs_GAD/TPP.params inputs_GAD/GAD.params -packing
-ex1
-ex2aro
-ex2
-no_optH false
-flip_HNQ true
-ignore_ligand_chi true -parser
-protocol inputs_GAD/ligand_dock.xml -out
-path:all outputs_GAD
-nstruct 1000
-overwrite
high_resolution_dock_only
This protocol will simply do high-resolution docking.
It will also report the binding energy (ddg) and buried-surface area (sasa) in the score file.
<ROSETTASCRIPTS>
<SCOREFXNS>
<ligand_soft_rep weights="ligand_soft_rep">
</ligand_soft_rep>
<hard_rep weights="ligand">
</hard_rep>
</SCOREFXNS>
<LIGAND_AREAS>
<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
</LIGAND_AREAS>
<INTERFACE_BUILDERS>
<side_chain_for_docking ligand_areas="docking_sidechain_X"/>
<side_chain_for_final ligand_areas="final_sidechain_X"/>
<backbone ligand_areas="final_backbone_X" extension_window="3"/>
</INTERFACE_BUILDERS>
<MOVEMAP_BUILDERS>
<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
</MOVEMAP_BUILDERS>
<SCORINGGRIDS ligand_chain="X" width="15">
<classic grid_type="ClassicGrid" weight="1.0"/>
</SCORINGGRIDS>
<MOVERS>
<Transform name="transform" chain="X"box_size="7.0" move_distance="0.2" angle="20" cycles="500" repeats="1" temperature="5"/>
<HighResDocker name="high_res_docker" cycles="6" repack_every_Nth="3" scorefxn="ligand_soft_rep" movemap_builder="docking"/>
<FinalMinimizer name="final" scorefxn="hard_rep" movemap_builder="final"/>
<InterfaceScoreCalculator name="add_scores" chains="X" scorefxn="hard_rep"/>
</MOVERS>
<PROTOCOLS>
<Add mover_name="transform"/>
<Add mover_name="high_res_docker"/>
<Add mover_name="final"/>
<Add mover_name="add_scores"/>
</PROTOCOLS>
</ROSETTASCRIPTS>
对应的flag_options文件:
-in:file:s inputs_IMA/GALS_IMA.pdb
-in:file:extra_res_fa inputs_IMA/IMA.params -packing
-ex1
-ex2aro
-ex2
-no_optH false
-flip_HNQ true
-ignore_ligand_chi true -parser
-protocol inputs_IMA/ligand_dock.xml -out
-path:all outputs_IMA
-nstruct 1000
-overwrite
多底物对接(两个小分子的链分别对应“X”和“F”)
1. 手动指定两个小分子(“X”,“F”)的位置(使用StartFrom mover指定,对应的Coordinates)
This protocol will simply do low-resolution followed by high-resolution docking.
It will also report the binding energy (ddg) and buried-surface area (sasa) in the score file.
<ROSETTASCRIPTS>
<SCOREFXNS>
<ligand_soft_rep weights="ligand_soft_rep">
</ligand_soft_rep>
<hard_rep weights="ligand">
</hard_rep>
</SCOREFXNS>
<LIGAND_AREAS>
<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/> <docking_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
<final_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
<final_backbone_F chain="F" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
</LIGAND_AREAS>
<INTERFACE_BUILDERS>
<side_chain_for_docking ligand_areas="docking_sidechain_X,docking_sidechain_F"/>
<side_chain_for_final ligand_areas="final_sidechain_X,final_sidechain_F"/>
<backbone ligand_areas="final_backbone_X,final_backbone_F" extension_window="3"/>
</INTERFACE_BUILDERS>
<MOVEMAP_BUILDERS>
<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
</MOVEMAP_BUILDERS>
<MOVERS>
single movers_X
<StartFrom name="start_from_X" chain="X">
<Coordinates x="-31" y="-35.5" z="8"/>
</StartFrom>
<StartFrom name="start_from_F" chain="F">
<Coordinates x="-27.26" y="-34.56" z="4.87"/>
</StartFrom>
<CompoundTranslate name="compound_translate" randomize_order="false" allow_overlap="false">
<Translate chain="X" distribution="uniform" angstroms="2.0" cycles="50"/>
<Translate chain="F" distribution="uniform" angstroms="2.0" cycles="50"/>
</CompoundTranslate>
<Rotate name="rotate_X" chain="X" distribution="uniform" degrees="360" cycles="500"/>
<Rotate name="rotate_F" chain="F" distribution="uniform" degrees="360" cycles="500"/> <SlideTogether name="slide_together" chains="X,F"/>
<HighResDocker name="high_res_docker" cycles="6" repack_every_Nth="3" scorefxn="ligand_soft_rep" movemap_builder="docking"/>
<FinalMinimizer name="final" scorefxn="hard_rep" movemap_builder="final"/>
<InterfaceScoreCalculator name="add_scores" chains="X,F" scorefxn="hard_rep"/> compound movers
<ParsedProtocol name="low_res_dock">
<Add mover_name="start_from_X"/>
<Add mover_name="start_from_F"/>
<Add mover_name="compound_translate"/>
<Add mover_name="rotate_X"/>
<Add mover_name="rotate_F"/>
<Add mover_name="slide_together"/>
</ParsedProtocol>
<ParsedProtocol name="high_res_dock">
<Add mover_name="high_res_docker"/>
<Add mover_name="final"/>
</ParsedProtocol>
</MOVERS>
<PROTOCOLS>
<Add mover_name="low_res_dock"/>
<Add mover_name="high_res_dock"/>
<Add mover_name="add_scores"/>
</PROTOCOLS>
</ROSETTASCRIPTS>
2. 其中一个小分子(“F”)位置已知,另一个小分子(“X”)的位置需要指定(首先需使用SCORINGGRIDS为已知位置的小分子指定盒子,然后使用Transform指定其动作模式)
This protocol will simply do low-resolution followed by high-resolution docking.
It will also report the binding energy (ddg) and buried-surface area (sasa) in the score file.
<ROSETTASCRIPTS>
<SCOREFXNS>
<ligand_soft_rep weights="ligand_soft_rep">
</ligand_soft_rep>
<hard_rep weights="ligand">
</hard_rep>
</SCOREFXNS>
<LIGAND_AREAS>
<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/> <docking_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
<final_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
<final_backbone_F chain="F" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
</LIGAND_AREAS>
<INTERFACE_BUILDERS>
<side_chain_for_docking ligand_areas="docking_sidechain_X,docking_sidechain_F"/>
<side_chain_for_final ligand_areas="final_sidechain_X,final_sidechain_F"/>
<backbone ligand_areas="final_backbone_X,final_backbone_F" extension_window="3"/>
</INTERFACE_BUILDERS>
<MOVEMAP_BUILDERS>
<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
</MOVEMAP_BUILDERS>
<SCORINGGRIDS ligand_chain="F" width="15">
<classic grid_type="ClassicGrid" weight="1.0"/>
</SCORINGGRIDS>
<MOVERS>
single movers_X
<StartFrom name="start_from_X" chain="X">
<Coordinates x="-31" y="-35.5" z="8"/>
</StartFrom>
<Transform name="transform_F" chain="F" box_size="7.0" move_distance="0.2" angle="20" cycles="500" repeats="1" temperature="5"/>
<CompoundTranslate name="compound_translate" randomize_order="false" allow_overlap="false">
<Translate chain="X" distribution="uniform" angstroms="2.0" cycles="50"/>
<Translate chain="F" distribution="uniform" angstroms="2.0" cycles="50"/>
</CompoundTranslate>
<Rotate name="rotate_X" chain="X" distribution="uniform" degrees="360" cycles="500"/>
<Rotate name="rotate_F" chain="F" distribution="uniform" degrees="360" cycles="500"/> <SlideTogether name="slide_together" chains="X,F"/>
<HighResDocker name="high_res_docker" cycles="6" repack_every_Nth="3" scorefxn="ligand_soft_rep" movemap_builder="docking"/>
<FinalMinimizer name="final" scorefxn="hard_rep" movemap_builder="final"/>
<InterfaceScoreCalculator name="add_scores" chains="X,F" scorefxn="hard_rep"/> compound movers
<ParsedProtocol name="low_res_dock">
<Add mover_name="start_from_X"/>
<Add mover_name="transform_F"/>
<Add mover_name="compound_translate"/>
<Add mover_name="rotate_X"/>
<Add mover_name="rotate_F"/>
<Add mover_name="slide_together"/>
</ParsedProtocol>
<ParsedProtocol name="high_res_dock">
<Add mover_name="high_res_docker"/>
<Add mover_name="final"/>
</ParsedProtocol>
</MOVERS>
<PROTOCOLS>
<Add mover_name="low_res_dock"/>
<Add mover_name="high_res_dock"/>
<Add mover_name="add_scores"/>
</PROTOCOLS>
</ROSETTASCRIPTS>
ROSETTA使用技巧随笔--RosettaLigand Docking的更多相关文章
- ROSETTA使用技巧随笔--蛋白蛋白对接
先写简略版,以后再详细写. 1. 对输入结构进行预处理(refine) $> relax.default.linuxgccrelease -in:file:s input_files/from_ ...
- ROSETTA使用技巧随笔--relax使用
Purpose: 主要说目的,relax的作用就是对一个给定的蛋白进行构象搜索,寻找与WT相似并能量低于WT的结构,既包含packer又包含minimizer.主要的应用在对一个结构构象进行取样,获得 ...
- ROSETTA使用技巧随笔--PyMOL实时观测ROSETTA模拟过程中的结构变化
没有梦想的人,就是一只咸鱼,像我,就有一个梦想,就是让蛋白模拟过程变成动画,动起来! 虽然MD中有很多方法可以方模拟过程像动画一样播放出来,但是我一直想在ROSETTA中也找一个这样的功能,这不,我发 ...
- ROSETTA使用技巧随笔--控制Log输出等级
一般运行ROSETTA,屏幕上的Log很多,而且很复杂,让我们看着眼晕,现在我们可以通过控制Log等级来控制屏幕上输出的东西. Integer Level 0 Fatal 100 Error 200 ...
- ROSETTA使用技巧随笔--Full Atom Representation和Centroid Representation
Full Atom Representation vs Centroid Representation Full Atom Representation即全原子标识,氨基酸残基的所有相关原子,均原封不 ...
- ROSETTA使用技巧随笔--score.sc处理
对score.sc的便利操作: $ sort -n -k2 example_score_file.sc 此命令会以score文件的第二列进行排序(sort -n -k2,-n表示对数值型数据排序,可用 ...
- RF常用技巧随笔
合并xml输出文件: pybot --outputdir d:\test --log log1.html --report report1.html --output output1.xml -T d ...
- angular小技巧随笔
1. 重新刷新页面 同页面切换状态: $state.go('tab.index', {inviteId:inviteId}); self.location.reload();
- JavaScript小技巧随笔
1. 在用||做条件判断时,如果情况较多,我们可以考虑是否能够用Array.includes()方法代替 var conditionArray = [ test1, test2, test3 ]; i ...
随机推荐
- MPD软件工作坊上海站本周末在上海举行
本周末(5月26日至27日)由麦思博(msup)主办的第39届MPD软件工作坊即将在上海虹桥会议中心举行.本届MPD将继续围绕软件研发领域,邀请了21位技术大咖,从产品运营.团队管理.架构技术.自动化 ...
- SQL中的Continue和Break
x 在Sql Server中,sql语句包含While循环的时候,肯定都或多或少的用到Continue和Break... 下面撸了一个小Demo , Begin ),@Index) Begin Pri ...
- Codeforces 670E - Correct Bracket Sequence Editor - [链表]
题目链接:https://codeforces.com/contest/670/problem/E 题意: 给出一个已经匹配的括号串,给出起始的光标位置(光标总是指向某个括号). 有如下操作: 1.往 ...
- [No0000D4]批处理全部代码详解Allbat
COPY REM Copies one or more files from one location to another. REM [/d] - Allows the encrypted file ...
- [No0000CD]shell 中的单行注释和多行注释
1. 单行注释 众所周知,# 比如想要注释:echo “ni” # echo "ni" 2. 多行注释 法一: : << ! 语句1 语句2 语句3 语句4 ! 例如 ...
- mysql工具Navicat Premium使用
1.连接:打开Navicat, 连接mysql(此处localhost连接),(配置相应端口号用户名密码等) 2.创建数据库:右键localhost选择新建数据库,输入数据库名:struts_tuto ...
- 什么是cookie?cookie的使用(设置,读取,删除)
1.什么是cookie? 页面用来保存信息 比如:自动登录,记住用户名 cookie的特性 同一个网站所有页面共用一套cookie ...
- Java如何连接SQLServer,并实现查询、修改、删除方法
场景:A:在UI自动化时,删除数据时候,在界面UI提示“该XX已被使用,无法删除”. 这时候我们有需要做数据初始化的操作,需要把历史数据做删除,来确脚本运行的重复执行,和稳定性质. B: 在做新增操作 ...
- XSL常用用法语句
1.xsl的开始语句 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tra ...
- 7620N路由器刷openwrt系统并配置***
之前一直用goAgent***,主要用gmail.逛逛twitter.youtube.维基百科.加速stackoverflow等等.但goAgent只能PC使用,手机.iPad都不能用,直到我拿到了一 ...