代码改变世界

RosettaScripts学习笔记-2021-11-18

2021-11-18 10:18  丨o聽乄雨o丨  阅读(492)  评论(0编辑  收藏  举报

1. Cartesian minimization based on moving atoms in xyz Cartesian space, rather than with Internal Coordinates. This requires an extra term (cart_bonded) to maintain bond lengths and angles to their near-ideal values. 笛卡尔坐标代表3个自由度的维度。对于蛋白,键长键角一般都有个理想值,所以内坐标下一般只采样二面角,所以自由度特别低,相对来说cartesian coordinates的自由度是xyz,所以自由度高,所以cartesian minimization优化幅度大于基于internal coordinates的优化。

可以参考:https://www.rosettacommons.org/docs/latest/rosetta_basics/structural_concepts/Internal-coordinates

Cartesian minimization和cart_bonded是绑定的,例如MinMover中开启cartesian minimization(cartesian=T),就必须在其匹配的scorefxn (scorefxn=”r15_cart”)中加入(reweigtht)cart_bonded项。

如下:

<ScoreFunction name="r15_cart" weights="ref2015" >

<Reweight scoretype="pro_close" weight="0.0" />

<Reweight scoretype="cart_bonded" weight="0.625" />

Similarly, there will be, by default, exactly as many internal coordinates as Cartesian coordinates: bond lengths, angles, and dihedrals correspond to each of the x, y, and z coordinates for each atom

2. linmin是一种最速下降算法进行能量最小化,但是对于production run来说,提高linmin的次数对run的效果增强不多,但是对于做benchmark或者testing来说,多做几次linmin还是不错的(linmin_iterated)。

3. MinMover的功能是对氨基酸侧链和/或主链进行能量最小化,这与packing不同之处在于,并不涉及对氨基酸rotamers的采样,MinMover可以使用MoverMap控制mover作用的residue范围,可以用Span里的chibb等控制氨基酸的自由度(degrees of freedom)。

4. packing mover PackRotamersMover需要指定task_operations否则会报错,task_operations里的顺序无影响。PackRotamersMover只对氨基酸侧链进行repack(即对氨基酸侧链进行rotamers采样优化,这与MinMover的能量最小化不同)。

5. TaskoperationsRestrictToRepacking表示只repack不design,即对每个位置只进行当前WT氨基酸的rotamers采样,如果不加此taskoperation,packer会对每个氨基酸位置进行所有20种天然氨基酸的rotamers采样,相当于序列设计,且运算cost很大;ExtraRotamersGeneric可以增加额外的rotamers用以增加采样;IncludeCurrent表示rotamer采样时包含current rotamer;ReadResfile从文件中读取resfile限制;OperareOnResiqueSubset可以对从RESIDUE_SELECTORS指定来的残基集进行特殊的操作,属于residue level,包括RestrictToRepackingRL, PreventRepackingRLT等;。

6. repack和minimize是有区别的,repack主要针对氨基酸的侧链进行rotamers的采样,但是minimize是针对于主链和侧链的一个能量最小化。从能量变化浮动来说,repack的能量变化范围更宽,minimization相对较小。通常来说要对一个结构进行能量优化的话一般是组合了多轮的repack和minimizations,然后最简单最直接的应用就是FastRelax, FastRelax包含了多轮的packing和minimization,最终得到优化的结构。

7. PROTOCOL里packer和minmover的前后顺序不同会造成total score不同,还没有找到合适的顺序,多测试几次,再详细了解chi角omega角具体是哪个?

8.RESIDUE_SELECTORS和TASKOPERATIONS都能指定residues的范围,但是前者比后者应用更广,包括但不仅仅包含使用布尔值进行逻辑运算、增加filter等,Layer是RESIDUE_SELECTORS中的一种选取residues方式,可以使用“selector”将residues传到mover中;ResidueName可以根据氨基酸名称(residue_names和residue_name3)选择相应类型的氨基酸;AndResidueSelectorOrResidueSelectorNotResidueSelector三类布尔逻辑运算ResidueSelector可以进行复杂的residues筛选操作。

9.TaskOperations的commutativity什么时候是逻辑AND,什么时候是逻辑OR,是不是不同类型的taskoperation之间是OR关系,而同种类型是AND?Readresfile是AND的关系,而OperateOnResidueSubset是OR的关系?真奇怪。

10. 正常情况下,在不同的protocol里,packing和minimization需要分别单独进行配置,因为他们可以使用不同的方式对结构进行取样和优化,并且也有自己控制residues的方式。FastDesignFastRelax均执行多轮的packing和minimization,并且逐渐使fa_rep的weight由低增加到正常值。

11. FILTER作为结束程序运行的过滤条件,过滤掉不符合filter规则的pose,以减少运行过程中非production构象的时间浪费,同样也经常放置在output之前的最后一步,可以显著的减少output结构的数量。AtomicDistance是一种基于两原子间距离的一种filter,两个原子可以指定为PDB文件里的特定原子名称(OE2),也可以指定为Rosetta-specific的原子类型(OOC),Rosetta-specific的原子类型的泛用性会更广。Filter是一种先计算后评估的运行模式,其实不如直接在计算之前加入想限制的结构特性,所以filter是一种没有合适constraints的次选方式。

12. -jd2:ntrials number可以设置nstruct中每次运算失败后重复试验的次数,如果失败number次数内有成功,则会返回成功结构。

13. FILTER作为度量评估器把不符合度量的output过滤掉,使输出的结构符合度量要求。SidechainRmsd作为评估某氨基酸侧链rmsd的一种filter,可以计算侧链(及主链“include_backbone=1”)的rmsd,但是需要注意的是在进行rmsd运算前不会进行结构叠加操作(叠加操作可以用Superimpose实现,见14),使用confidence控制此filter生效的时间比例(0.5意味着有一半时间会生效,1意味着全程生效),threshold控制rmsd值,当运算值高于设定值时结果会被抛弃。

14. Superimpose mover可以把target的residues叠加到ref的residues上,此mover需要指定-in:file:native ref.pdb作为reference,CA_only为1时叠加CA原子,CA_only为0时,叠加BB原子。

15. Dualspace minimization即双空间minimization,包含3轮内坐标和两轮cartesian minimization。