У меня есть набор вращательных матриц 3x3 и набор соответствующих векторов трансляции для поз лиганда.Я пытался реализовать метод python, в котором я перевожу позу в ее начало, применяю одну из вращательных матриц, перевожу позу в исходное положение, а затем применяю вектор перевода.На данный момент я пытаюсь реализовать команду API PyMOL: 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()
с orig_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 и вектор перевода)? Ваша помощь будет принята с благодарностью, спасибо!