The Packer: Optimizing Sidechains (侧链优化)
# The Packer: Optimizing Sidechains (侧链优化)
Rosetta 中用于优化侧链的主要算法称为 Packer。
可以这样理解这个问题:假设有一个结构(称之为 pose),其主链构象是固定的。在结构中的每个位置,都有一个离散的侧链可能列表,这些可能被称为 rotamers(旋转异构体),其中一个 rotamer 是某种特定氨基酸残基类型侧链的特定构象。的目标是为每个位置选择一个 rotamer,使得所有 rotamer 的组合具有最低的能量。这正是 Packer 要解决的问题。
下图解释什么是 rotamers (维基百科 (opens new window)):
由于这个问题很复杂,Packer 使用了蒙特卡洛方法来解决这个问题。
# 通过 fixbb 应用程序调用 Packer(最简单使用)
使用 Rosetta 的 fixbb
应用程序来在一个输入结构(pose)上调用 Packer。
<path_to_Rosetta_directory>/main/source/bin/fixbb.default.linuxgccrelease -in:file:s 1l2y.pdb -in:file:fullatom -resfile resfile.txt -nstruct 5 >log.txt 2>err.txt &
这个程序会对输入结构(这里是 trp cage mini-protein,1l2y.pdb)进行侧链打包(packing)。它将运行 5 次,并生成 5 个输出结构文件。
[!warning] 需要特别注意的是,如上所述的 Packer 问题对每个位置上候选侧链的性质并没有任何假设。这些可能性列表既可以包含同一种侧链的不同构象,也可以包含不同类型侧链的构象。因此,Packer 是一个功能非常强大的工具来进行氨基酸序列设计。 Packer 的默认行为是:对每个位点进行设计,允许 20 种标准氨基酸的所有 rotamer 被使用。
# 进阶使用 Packer:TaskOperations
在 Rosetta 中,TaskOperation 用来告诉 Packer,对于结构中的每个残基(residue),应该怎么处理。TaskOperations 可以通过多种方式传递给 Packer,而不同的 TaskOperation 会以不同方式改变 Packer 的行为。
用户可以在命令行中通过 -resfile
选项传入 resfile,从而控制 Packer 的行为,这实际上就隐式调用了 ReadResfile TaskOperation。
[!note] Resfile 可以基于残基编号控制:氨基酸类型;是否使用额外 rotamer;以及其他 packer 行为。 Resfile文件格式,简要说明如下:
NATRO
:保留原始 rotamer 和氨基酸;NATAA
:保留原始氨基酸,但允许 rotamer 改变;ALLAA
:允许任意氨基酸进行完整设计;PIKAA
后接一串氨基酸的单字母代码,限制该位置只允许这些氨基酸设计。 例如:1 A PIKAA NT
表示第 1 个残基可以是 N 或 T。