蛋白质中的侧链旋转异构体取样

计算科学 软件 计算生物学 分子力学
2021-12-21 01:34:39

对蛋白质侧链氨基酸中的旋转异构体进行采样的最佳工具是什么?更准确地说,我想仅对赖氨酸残基采样不同的旋转异构体,同时保持骨架刚性。我曾尝试在 Rosetta3.4 中使用固定骨干设计应用程序(“fixbb”),但该程序仅提供一个(优化的?)解决方案。这是我的输入文件:

-s file.pdb
-resfile RESFILE
-nstruct 50
-ex1
-ex2
-database /path/to/rosetta_database

对于 RESFILE:

NATAA
start
2 E NATRO
3 E NATRO
4 E NATRO
5 E NATRO
[...]
212 E NATRO
213 E NATRO
214 E NATRO
215 E NATRO

start 之前的标头NATAA表示我只想重新打包输入序列,例如2 E NATRO,命令表示冻结考虑的残基(这里是链 E 的第二个残基)。对于输出,我获得了 50 ( nstruct)个相同的结构file.pdb,除了赖氨酸残基之外,所有的天然构象中的残基都由 给出。我的问题是如何获得nstruct赖氨酸侧链旋转异构体的不同模型?

3个回答

从 PDB 估计侧链中原子距离向量的协方差矩阵减去模板距离向量。

然后使用具有此协方差矩阵的多元高斯模拟对模板距离的随机校正。

将每个距离向量转换为距离矩阵。然后将随机校正的距离矩阵转换为 Gram 矩阵,参见。https://scicomp.stackexchange.com/a/1946/1117

然后将 gram 矩阵截断到 3 级(使用 SVD)以获得具有大致正确分布的随机侧链结构的坐标。

最后,旋转这些结构以匹配主干。

您可以使用set_residue_to_rotamer_number()Coot 中的功能来执行此操作。

m = read_pdb("test.pdb")
for irot in range(n_rotamers(m, "A", 30, "")):
    set_residue_to_rotamer_number(m, "A", 30, "", "", irot)
    fn = "sample-A-30-rot-" + str(irot) + ".pdb"
    write_pdb_file(m, fn)

我实际上已经使用BASILISK来解决我的问题。我编写了计算二面角的 python 函数和 python 模块,以根据 basilisk 给出的分布旋转侧链。