1

我有一组 3x3 旋转矩阵和一组对应的配体位姿平移向量。我一直在尝试实现一种 python 方法,在该方法中我将姿势转换为其原点,应用其中一个旋转矩阵,将姿势转换为其原始位置,然后应用平移向量。现在我一直在尝试实现 PyMOL API 命令:cmd.transform_selection()它需要一个选择和一个"ttt"PyMOL 矩阵(https://pymolwiki.org/index.php/Transform_selection)。

我目前的做法如下:

1.) 从原始姿势的 ( orig_pose),我使用 ProDy 函数来获取坐标 ( org_coords)。

2.)我计算中心;center = np.mean(org_coords, axis=0),其中中心是一个[x, y, z]矩阵。

3.) 然后我使用cmd.translate()withorig_pose作为选择,和 - center 作为平移向量。

4.)之后我想应用我的旋转矩阵并将其格式化为'ttt'矩阵(例如,[m0, m1, m2, 0, m4, m5, m6, 0, m8, m9, m10, 0, m12, m13, m14, 1];参见:https ://pymolwiki.org/index.php/Transform_selection )。然而,它似乎也对这个姿势应用了翻译。

有没有人有使用这个 API 命令的经验,或者遇到过一种方法让我在给定输入(一个 3x3 旋转矩阵和一个平移向量)的情况下转换一个对象?非常感谢您的帮助,谢谢!

4

0 回答 0