在处理蛋白质结构时,常常需要对原子的坐标进行几何变换,如平移、旋转和缩放。这些变换在模拟、可视化和结构比较中非常有用。
以下是对这些操作的介绍以及示例代码。
1. 平移 (Translation)
平移就是将所有原子的坐标沿着某个方向进行移动。平移可以通过向每个原子的坐标加上一个固定的向量实现。
公式:
Python代码示例:
import numpy as np
def translate_coordinates(coords, translation_vector):
"""
对原子坐标进行平移
coords: (N, 3) numpy数组,表示N个原子的坐标
translation_vector: (3,) numpy数组,表示平移向量
"""
return coords + translation_vector
# 示例原子坐标 (单位:Å)
coords = np.array([[1.0, 1.0, 1.0],
[2.0, 2.0, 2.0],
[3.0, 3.0, 3.0]])
# 平移向量
translation_vector = np.array([1.0, -1.0, 0.5])
# 执行平移
new_coords = translate_coordinates(coords, translation_vecto