文章目录
约束文件
一、概述
Rosetta约束是对scorefunction的补充。(这相当于其他程序中的“约束”。)它们被用来对结构的几何和其他特征进行评分,而这些特征可能无法用标准评分术语来评估。例如,添加一个基于实验知识的评分偏差。
每个约束都包含两个部分:A)衡量的内容B)衡量的值如何转化为得分奖励/惩罚。这两个部分可以混合并匹配,以派生所需的行为。
为了让Rosetta正确地识别约束,必须发生两件事。首先,约束本身必须应用于pose(结构)。如何做到这一点与协议有关,但通常采用选项或参数的形式,指定哪个文件包含约束规范。(此文件的格式如下所述。)例如,通过使用ConstraintSetMover将它添加到xml脚本中。
第二个要求是,所使用的scorefunction对于适当的约束scoreterm需要具有非零权重。特定的scoreterm取决于使用的约束类型。惩罚/奖励的值由原始约束分数(来自测量值和所有约束的指定转换函数)乘以得分函数中适当scoreterm的权重之和组成。许多使用约束的协议会为您打开约束权重,但其他协议会要求您指定一个scorefunction权重文件,该文件具有非零约束条件。
二、Constraint Types
约束类型都实现为core::scoring::constraints::Constraint类的子类。
1. Single constraints
单个约束限制了单个度量的值。
AtomPair:
AtomPair Atom1_Name Atom1_ResNum Atom2_Name Atom2_ResNum Func_Type Func_Def
score term: atom_pair_constraint
限制原子1和原子2之间的距离。AtomPairConstraint与PDB编号兼容。
三、Function Types
HARMONIC x0 sd
FLAT_HARMONIC x0 sd tol
四、Code for Reading Constraints
有不同的函数集用于读取全原子和非全原子约束,如下面的函数所示。两个函数之间目前唯一的区别是读取哪个命令行参数。参数值的处理是相同的。
要使用约束,得分函数和pose对象都应该更新。向打分函数添加约束的函数有:
- core::scoring::constraints::add_fa_constraints_from_cmdline_to_scorefxn()
- core::scoring::constraints::add_constraints_from_cmdline_to_scorefxn()
目前,这些函数只将atom_pair_constraint、angle_constraint和dihedral_constraint得分函数项的权重设置为命令行参数-constraints:cst_fa_weight或-constraints:cst_weight的值。
向pose对象添加约束的函数有:
- core::scoring::constraints::add_fa_constraints_from_cmdline_to_pose()
- core::scoring::constraints::add_constraints_from_cmdline_to_pose()
这些函数从-constraints:cst_fa_file或-constraints:cst_file定义的列表中读取一个随机约束文件。
还有一些方便的函数可以同时做这两件事:
- core::scoring::constraints::add_fa_constraints_from_cmdline()
- core::scoring::constraints::add_constraints_from_cmdline()