前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >榕树集-ROSETTA SCRIPT

榕树集-ROSETTA SCRIPT

作者头像
DrugSci
发布2023-05-24 10:26:11
4760
发布2023-05-24 10:26:11
举报
文章被收录于专栏:FindKeyFindKey

?

前言:

Rosetta是大分子模型设计软件,拥有310万行代码和许多最先进的应用程序。自1990年代中期以来,这个软件由RosettaCommons共同开发维护。RosettaCommons是一个来自60多个机构的学术社区,具有包括化学、生物学、生理学、物理学、工程学、数学和计算机科学在内的不同学科背景。

Rosetta早期的代码库是用Fortran编写的,后来由Objexx Engineering机翻成C++。2005年夏季发布为Rosetta++(也称为Rosetta2)。在接下来的两年中,发现自动翻译对于软件的持续发展是不可行的,因此雇用了一名软件工程师来将软件转变为面向对象的库,称为librosetta。首次创建面向对象层次结构的尝试被证明是笨重的,最终被放弃,但是提供了中心对象和其间关系的参考。下一个面向对象的代码库重写是由两个核心开发人员(Andrew Leaver-Fay,Kuhlman实验室的成员和Fred Hutchinson癌症研究中心的Phil Bradley)在2007年夏季启动的,该代码最初被称为miniRosetta,后来成为Rosetta3,在2009年初发布。MiniRosetta还纠正了Rosetta++的设计缺陷,它是一个整体应用软件,其中输入选项允许调用许多不同的Protocol。而在Rosetta3中,Protocl通常是具有自己名称的独立应用程序。目前容纳了超过200个应用程序。

Rosetta还支持两个脚本接口:RosettaScripts是基于XML的接口,允许从模块化构建块开发协议而无需进行额外的编译;PyRosetta允许使用Python开发协议并轻松集成第三方工具。这些不同的接口都根源于2007年的Rosetta3代码库,该代码库仍在使用、开发和维护中。

简介:

2011年,Fleishman等人创建RosettaScripts,这是一种基于XML的接口,用于在 Rosetta 框架中指定建模任务。它允许在不需要修改或重新编译底层 C++ 代码的情况下快速测试和部署复杂的协议,因为RosettaScripts中使用的大多数对象都在网上有文档记录。RosettaScripts还得益于XML Schema Definition (XSD)框架,可以在运行时识别XML脚本中的错误,提供详细的错误消息,并且现在已经集成到用户面向文档中。其目前支持蛋白质稳定、生成计算约束库以选择更高亲和力的结合蛋白、loop remodel、小分子对接、配体结合蛋白的设计以及 DNA 结合蛋白的重设计等功能。

简单示例

代码语言:javascript
复制
<ROSETTASCRIPTS> 
  <SCOREFXNS> 
 </SCOREFXNS>  
  <RESIDUE_SELECTORS> 
 </RESIDUE_SELECTORS>  
  <FILTERS> 
 </FILTERS>  
  <SIMPLE_METRICS>  
  </SIMPLE_METRICS>  
  <TASKOPERATIONS>  
  </TASKOPERATIONS>  
  <MOVERS> 
 </MOVERS>  
  <PROTOCOLS> 
 </PROTOCOLS> 
</ROSETTASCRIPTS> 

组成元素

RosettaScript是由一系列类XML的标签(Tag)组成的,可以递归地进行解析。XML的写作规则可以直接谷歌查询,这里不再赘述。每个Tag实例都包含两个映射关系:从字符串到字符串(例如选项),以及从字符串到Tag(子标签)。

一个RosettaScript包含五个Tag:MOVERS、FILTERS、SCOREFXNS、TASKOPERATIONS和PROTOCOLS。必须存在的Tag有MOVERS和PROTOCOLS。PROTOCOLS部分则定义了每次计算要执行的Movers和Filters的顺序。

Movers:

用于修改结构,XML中的基本组成对象,单一的Mover可以在不同的步骤中使用多次。

示例:

代码语言:javascript
复制
<MOVERS> 
 <PackRotamersMover name=“repack1” scorefxn=“ref2015” />  
</MOVERS> 

解释:

  • 使用的mover的名称 ?
  • 分配给此Mover的自定义的名称,方便在XML中的其他地方引用 ?
  • 其余的自定义设置

参见:

  1. https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/Movers/Movers-RosettaScripts
  2. https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/MoveMapFactories/MoveMapFactories-RosettaScripts

Filters

用于评估结构,来判断输出结构是否合适。如果输出结果不好,可以提前停止运行。也可以用于计算蛋白质度量(metrics),但是建议使用Simple Metrics来进行计算。

示例:

代码语言:javascript
复制
<FILTERS> 
 <ScoreType name=“score_type_filter” scorefxn=“ref2015” score_type=“total_score” Threshold=“-500” /> 
 <AverageDegree name=“avg_deg” threshold=“8” distance_threshold=“10” task_operations=“rtiv” /> 
</FILTERS>  

解释:

  • 使用的Filter的名称 ?
  • 分配给此Filter的自定义的名称,方便在XML中的其他地方引用 ?
  • 其余的自定义设置,阈值等

Predefined Filters

参见:https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/Filters/Filters-RosettaScripts

ScoreFunction

用于评估结构能量,打分函数,可以自定义修改一些权重, 不同的动作可以使用不同的打分函数

示例:

代码语言:javascript
复制
<SCOREFXNS> 
 <ScoreFunction name=“ref2015” weights=“ref2015.wts” />  
  <ScoreFunction name=“ref2015_soft” weights=“ref2015_soft.wts”> 
  <Reweight scoretype=“atom_pair_constraint” weight=“1.0” /> </ScoreFunction> 
</SCOREFXNS> 

Predefined Scorefunctions

  • talaris2014: 默认使用的全原子打分函数
  • talaris2013: talaris2014之前的版本
  • score12: talaris2013之前的默认得分函数(在命令行中需要使用“-restore_pre_talaris_2013_behavior”选项)
  • score_docking: 高分辨率对接得分函数(pre_talaris_2013_standard+docking_patch)
  • score_docking_low: 低分辨率对接得分函数(interchain_cen)
  • soft_rep: soft_rep_design权重
  • score4L: 用于循环重建的低分辨率得分函数(chainbreak权重开启)
  • commandline: 由命令行选项指定的得分函数(注意:不建议常规使用)

TaskOperations

选择残基,指定侧链移动的方式,指定允许设计的残基。Rosetta中的离散构象采样功能都是使用快速的Metropolis-Monte Carlo模拟退火引擎实现的,称为packer。packer用于搜索低能量的侧链构象组合。

TaskOperations一般有三种类型:

  1. 没有选项的操作:在整个Pose上应用的统一行为;
  2. 具有选项的操作:针对整个Pose应用基于选项(参数)的行为;
  3. 氨基酸级别的TaskOperations:行为应用于属于某个类别的Pose残基的子集。以下是一个例子:

示例:

代码语言:javascript
复制
<TASKOPERATIONS> 
 <ReadResfile name=“rrf” filename=“resfile” /> 
 <RestrictToRepacking name=“rtrp” /> 
 <RestrictResidueToRepacking name=“restrict_Y100” resnum=“100” /> 
</TASKOPERATIONS>  
<PackRotamersMover name=“repack1” taskoperations=“rtrp” /> 

Predefined TaskOperations???

参见:

  1. https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/TaskOperations/TaskOperations-RosettaScripts
  2. https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/TaskOperations/taskoperations_pages/Residue-Level-TaskOperations

RESIDUE_SELECTORS

它们根据不同的属性指定不同的残基集合。并且由mover、filter和task operations在运行时自己指定选择的残基运行。

示例:

代码语言:javascript
复制
<RESIDUE_SELECTORs> 
 <Chain name=“chA” chains=“A”/> 
</RESIDUE_SELECTORS> 
<MOVERS> 
 <AwesomeScienceMover name=“solve” residue_selector=“chA” />  
</MOVERS> 

解释:

选择链A,命名为chA,并且在 solve这个mover中应用

Predefined RESIDUE_SELECTORS

参见: https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/ResidueSelectors/ResidueSelectors

SIMPLE_METRICS

? 用于计算蛋白质指标 ? 可以在Protocol的不同阶段运行,并将结果输出到得分文件中 ? 与 RunSimpleMetrics Mover 结合使用

示例:

代码语言:javascript
复制
<SIMPLE_METRICS> 
 <TotalEnergyMetric name=“total_energy” residue_selector=“L1” /> 
</SIMPLE_METRICS> 
<MOVERS> 
 <RunSimpleMetrics name="run_metrics1" metrics="total_energy" prefix="m1_" />  
</MOVERS> 

解释:

计算整体能量命名为total_energy,选择子为L1,在run_metrics1这个mover中使用

Predefined SIMPLE_METRICS

参见:https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/SimpleMetrics/SimpleMetrics

Protocols

PROTOCOLS是XML的顺序部分,实际上指定了XML如何运行。

通常,PROTOCOLS部分是一系列<Add ../> Tags。每个标签将指定要应用的mover、filter和simple metric。

RosettaScript协议按顺序逐个步骤遍历每个子标签,并进行运算。

示例:

代码语言:javascript
复制
<PROTOCOLS> 
 <Add mover=“Repack1”/> 
 <Add mover=“Repack2” filter=“avg_deg” />  
  <Add mover=“iface” /> 
</PROTOCOLS> 

运行方式

代码语言:javascript
复制
$> rosetta_scripts.static.macosclangrelease -s 1ubq.pdb -parser:protocol anything.xml 

实例

以下实例均来自于:https://journals.plos.org/plosone/article/file?type=supplementary&id=10.1371/journal.pone.0020161.s001

注:注意检查拼写错误;可以使用tools/xsd_xrw/rewrite_rosetta_script.py重写老的XML;有问题直接邮件开发人员列表,SLACK,或者Rosetta论坛

  1. Flexible backbone design
  • XML
代码语言:javascript
复制
<ROSETTASCRIPTS> 
    <SCOREFXNS> 
        <ScoreFunction name="SFXN1" weights="score12_w_corrections">  
            <Reweight scoretype="atom_pair_constraint" weight="1.0"/> 
        </ScoreFunction> 
    </SCOREFXNS> 
    <TASKOPERATIONS> 
        <LayerDesign name="layer" layer="core_boundary_surface"/> 
    </TASKOPERATIONS> 
    <FILTERS> 
        <PackStat name="pstat" threshold="0.60"/> 
    </FILTERS> 
    <MOVERS> 
        <FlxbbDesign name="flxbb" ncycles="3" constraints_sheet="100.0" sfxn_design="SFXN1" sfxn_relax="SFXN1" clear_all_residues="1" task_operations="layer"/> 
    </MOVERS> 
    <PROTOCOLS> 
        <Add mover="flxbb"/> 
        <Add filter="pstat"/> 
    </PROTOCOLS> 
    <OUTPUT /> 
</ROSETTASCRIPTS> 
  • Shell
代码语言:javascript
复制
rosetta_scripts.static.macosclangrelease -s motif.pdb -parser:protocol fbb.xml -restore_pre_talaris_2013_behavior
  1. Protein-protein interface redesign and conformational sampling
  • XML
代码语言:javascript
复制
<ROSETTASCRIPTS> 
  
 <TASKOPERATIONS> 
    ProteinInterfaceDesign name=pido repack_chain1=1 repack_chain2=1 design_chain1=0 design_chain2=1 interface_distance_cutoff=10/> task operation that designates which residues are designable and repackable at the interface 
 </TASKOPERATIONS> 
 
 <FILTERS> 
    <Ddg name="ddG" scorefxn="score12" threshold="-15" repeats="2"/> binding energy calculation; an average of two repeats is computed for better numerical accuracy 
    <Sasa name="sasa" threshold="800"/> Buried surface area upon complex formation 
    <Rmsd name="rmsd" confidence="0"/> confidence=0 means that the filter will be evaluated but not used as an acceptance criterion 
    <CompoundStatement name="ddg_sasa"> combine filters into a single logical statement 
      <AND filter_name="ddG"/> 
      <AND filter_name="sasa"/> 
    </CompoundStatement> 
 </FILTERS> 
 
 <MOVERS> 
    <Docking name="docking" score_high="soft_rep" fullatom="1" local_refine="1"/> Invokes RosettaDock local-refinement (in full-atom) with a soft potential 
    <BackrubDD name="backrubdd" partner1="0" partner2="1" interface_distance_cutoff="8.0" moves="1000" sc_move_probability="0.25" scorefxn="score12" small_move_probability="0.15" bbg_move_probability="0.25"/> perturb the backbone of chain2 
    <RepackMinimize name="des1" scorefxn_repack="soft_rep" scorefxn_minimize="soft_rep" minimize_bb="0" minimize_rb="1"/> 
    <RepackMinimize name="des2" scorefxn_repack="score12" scorefxn_minimize="score12" minimize_bb="0" minimize_rb="1"/> Design and minimizatio 
n at the interface 
    <RepackMinimize name="des3" minimize_bb="1"/> 
   
     <ParsedProtocol name="design"> 
      <Add mover_name="des1"/> 
      <Add mover_name="des2"/> 
      <Add mover_name="des3"/> 
      <Add mover_name="backrubdd"/> 
      <Add mover_name="des3" filter_name="ddg_sasa"/> 
    </ParsedProtocol> 
    <GenericMonteCarlo name="iterate" scorefxn_name="score12" mover_name="design" trials="10"/> 
 </MOVERS> 
   
 <PROTOCOLS> 
    <Add mover="docking"/> 
    <Add mover="iterate"/> 
    <Add filter="ddG"/> 
    <Add filter="sasa"/> 
    <Add filter="rmsd"/> 
  </PROTOCOLS> 
</ROSETTASCRIPTS>  
  • flags
代码语言:javascript
复制
-s 2wpt.ppk.pdb 
-restore_pre_talaris_2013_behavior 
-ex1 
-ex2 
-extrachi_cutoff 5 
-ignore_unrecognized_res 
-run:constant_seed 
-nstruct 1 
-jd2:ntrials 10 
-parser:protocol flexbb-interfacedesign_2.xml 
-docking:no_filters 
-overwrite 
  • Shell
代码语言:javascript
复制
rosetta_scripts.static.macosclangrelease @flags 
本文参与?腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-08,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 DrugSci 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 简介:
  • 简单示例
  • 组成元素
    • Movers:
      • Filters
        • ScoreFunction
          • TaskOperations
            • RESIDUE_SELECTORS
              • SIMPLE_METRICS
                • Protocols
                • 运行方式
                • 实例
                相关产品与服务
                机器翻译
                机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                http://www.vxiaotou.com