ответить.
У меня есть «правильные» координаты молекулы и список из m связей, которые могут вращаться (rotatable bonds).
Ещё у меня есть конформация молекулы, сгенерированная с помощью rdkit.
Мне нужно посчитать три вектора:
• 3-мерный вектор сдвига,
• 3-мерный вектор эйлеровых углов,
• m-мерный вектор углов вращения каждой связи.
После применения преобразований, заданных этими векторами, к конформации должны получиться как можно более близкие координаты молекулы.
Я понимаю, как найти
• вектор сдвига (просто разница между центрами масс)
• вектор эйлеровых углов (Kabsch algorithm)
... но есть ли какие-то простые способы найти правильные повороты связей? Может уже есть библиотеки, написанные для этой задачи?
>но есть ли какие-то простые способы найти правильные повороты связей? а в смысле "правильные повороты связей"? если у вас есть два угла (a, b), то вы же можете просто найти минимальный угол между ними при помощи min(abs(a-b), abs(2*np.pi - abs(a-b))), нет? а все углы можно найти как-то так: https://github.com/rdkit/rdkit/discussions/4732
Вот углов у меня и не было. Спасибо за ссылку!
кстати, есть проблема из данной конформации не всегда получится получить «настоящие координаты» атомов молекулы поэтому выбор таких поворотов rotatable bonds не будет лучшим с точки зрения RMSD всей молекулы может знаете, что в таких случаях делают?
я не понял что вы имеете в виду
Обсуждают сегодня