Как правильно использовать cmd.transform_selection () - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть набор вращательных матриц 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 и вектор перевода)? Ваша помощь будет принята с благодарностью, спасибо!

...