Bio.PDB.vectors 模組
向量類別,包括旋轉相關函數。
- Bio.PDB.vectors.m2rotaxis(m)
返回對應於旋轉矩陣 m 的角度、軸對。
當
m
是單位矩陣時,對應於一個奇點,其中任何旋轉軸都是有效的。在這種情況下,會返回Vector([1, 0, 0])
。
- Bio.PDB.vectors.vector_to_axis(line, point)
向量到軸的方法。
返回一個點和線上最近點之間的向量(即,點在線上的垂直投影)。
- 參數:
line (L{Vector}) – 定義一條直線的向量
point (L{Vector}) – 定義點的向量
- Bio.PDB.vectors.rotaxis2m(theta, vector)
計算左乘旋轉矩陣。
計算一個左乘旋轉矩陣,該矩陣將以向量為軸旋轉 theta 弧度。
- 參數:
theta (float) – 旋轉角度
vector (L{Vector}) – 旋轉軸
- 返回:
旋轉矩陣,一個 3x3 NumPy 陣列。
範例
>>> from numpy import pi >>> from Bio.PDB.vectors import rotaxis2m >>> from Bio.PDB.vectors import Vector >>> m = rotaxis2m(pi, Vector(1, 0, 0)) >>> Vector(1, 2, 3).left_multiply(m) <Vector 1.00, -2.00, -3.00>
- Bio.PDB.vectors.rotaxis(theta, vector)
計算左乘旋轉矩陣。
計算一個左乘旋轉矩陣,該矩陣將以向量為軸旋轉 theta 弧度。
- 參數:
theta (float) – 旋轉角度
vector (L{Vector}) – 旋轉軸
- 返回:
旋轉矩陣,一個 3x3 NumPy 陣列。
範例
>>> from numpy import pi >>> from Bio.PDB.vectors import rotaxis2m >>> from Bio.PDB.vectors import Vector >>> m = rotaxis2m(pi, Vector(1, 0, 0)) >>> Vector(1, 2, 3).left_multiply(m) <Vector 1.00, -2.00, -3.00>
- Bio.PDB.vectors.refmat(p, q)
返回一個(左乘)矩陣,該矩陣將 p 鏡像到 q 上。
- 返回:
鏡像操作,一個 3x3 NumPy 陣列。
範例
>>> from Bio.PDB.vectors import refmat >>> p, q = Vector(1, 2, 3), Vector(2, 3, 5) >>> mirror = refmat(p, q) >>> qq = p.left_multiply(mirror) >>> print(q) <Vector 2.00, 3.00, 5.00> >>> print(qq) <Vector 1.21, 1.82, 3.03>
- Bio.PDB.vectors.rotmat(p, q)
返回一個(左乘)矩陣,該矩陣將 p 旋轉到 q 上。
- 參數:
p (L{Vector}) – 移動向量
q (L{Vector}) – 固定向量
- 返回:
將 p 旋轉到 q 上的旋轉矩陣
- 返回類型:
3x3 NumPy 陣列
範例
>>> from Bio.PDB.vectors import rotmat >>> p, q = Vector(1, 2, 3), Vector(2, 3, 5) >>> r = rotmat(p, q) >>> print(q) <Vector 2.00, 3.00, 5.00> >>> print(p) <Vector 1.00, 2.00, 3.00> >>> p.left_multiply(r) <Vector 1.21, 1.82, 3.03>
- Bio.PDB.vectors.calc_angle(v1, v2, v3)
計算角度方法。
計算表示 3 個連接點的 3 個向量之間的角度。
- 參數:
v3 (v1, v2,) – 定義角度的三個點
- 返回:
角度
- 返回類型:
浮點數
- Bio.PDB.vectors.calc_dihedral(v1, v2, v3, v4)
計算二面角的方法。
計算表示 4 個連接點的 4 個向量之間的二面角。角度在 ]-pi, pi] 之間。
- 參數:
v4 (v1, v2, v3,) – 定義二面角的四個點
- class Bio.PDB.vectors.Vector(x, y=None, z=None)
基底類別:
object
3D 向量。
- __init__(x, y=None, z=None)
初始化類別。
- __repr__()
返回向量 3D 座標。
- __neg__()
返回 Vector(-x, -y, -z)。
- __add__(other)
返回 Vector+other 向量或純量。
- __sub__(other)
返回 Vector-other 向量或純量。
- __mul__(other)
返回 Vector.Vector(點積)。
- __truediv__(x)
返回 Vector(coords/a)。
- __pow__(other)
返回 VectorxVector(叉積)或 Vectorx 純量。
- __getitem__(i)
返回陣列索引 i 的值。
- __setitem__(i, value)
為陣列索引 i 指定值。
- __contains__(i)
驗證 i 是否在陣列中。
- norm()
返回向量範數。
- normsq()
返回向量範數的平方。
- normalize()
正規化 Vector 物件。
更改
self
的狀態,並且不返回值。如果您需要串聯函數調用或創建新物件,請使用normalized
方法。
- normalized()
返回正規化後的 Vector 複本。
為了避免配置新物件,請使用
normalize
方法。
- angle(other)
返回兩個向量之間的角度。
- get_array()
返回(座標陣列的副本)。
- left_multiply(matrix)
返回 Vector=Matrix x Vector。
- right_multiply(matrix)
返回 Vector=Vector x Matrix。
- copy()
返回 Vector 的深層複製。
- Bio.PDB.vectors.homog_rot_mtx(angle_rads: float, axis: str) ndarray
產生一個 4x4 單軸 NumPy 旋轉矩陣。
- 參數:
angle_rads (float) – 以弧度表示的所需旋轉角度
axis (char) – 指定旋轉軸的字元
- Bio.PDB.vectors.set_Z_homog_rot_mtx(angle_rads: float, mtx: ndarray)
將現有的 Z 軸旋轉矩陣更新為新的角度。
- Bio.PDB.vectors.set_Y_homog_rot_mtx(angle_rads: float, mtx: ndarray)
將現有的 Y 軸旋轉矩陣更新為新的角度。
- Bio.PDB.vectors.set_X_homog_rot_mtx(angle_rads: float, mtx: ndarray)
將現有的 X 軸旋轉矩陣更新為新的角度。
- Bio.PDB.vectors.homog_trans_mtx(x: float, y: float, z: float) ndarray
產生一個 4x4 NumPy 平移矩陣。
- 參數:
z (x, y,) – 在各軸上的平移量
- Bio.PDB.vectors.set_homog_trans_mtx(x: float, y: float, z: float, mtx: ndarray)
將現有的平移矩陣更新為新的值。
- Bio.PDB.vectors.homog_scale_mtx(scale: float) ndarray
產生一個 4x4 NumPy 縮放矩陣。
- 參數:
scale (float) – 縮放乘數
- Bio.PDB.vectors.get_spherical_coordinates(xyz: ndarray) tuple[float, float, float]
計算 X,Y,Z 點的球座標 (r, 方位角, 極角)。
- 參數:
xyz (array) – 行向量 (3 列 x 1 行 NumPy 陣列)
- 返回:
輸入座標的 r、方位角、極角的元組
- Bio.PDB.vectors.coord_space(a0: ndarray, a1: ndarray, a2: ndarray, rev: bool = False) tuple[ndarray, ndarray | None]
產生轉換矩陣,將座標轉換到由 3 個點定義的座標空間。
- 新的座標空間將具有
acs[0] 在 XZ 平面上,acs[1] 為原點,acs[2] 在 +Z 軸上
- 參數:
acs (NumPy 行陣列 x3) – X、Y、Z 行輸入座標 x3
rev (bool) – 若為 True,則同時回傳反向轉換矩陣 (從座標空間返回)
- 返回:
4x4 NumPy 陣列,若 rev=True 則為 x2
- Bio.PDB.vectors.multi_rot_Z(angle_rads: ndarray) ndarray
為 [entries] 個角度建立 [entries] 個 NumPy Z 軸旋轉矩陣。
- 參數:
entries – 生成的矩陣數量 (整數)。
angle_rads – 角度的 NumPy 陣列
- 返回:
entries x 4 x 4 個同質旋轉矩陣
- Bio.PDB.vectors.multi_rot_Y(angle_rads: ndarray) ndarray
為 [entries] 個角度建立 [entries] 個 NumPy Y 軸旋轉矩陣。
- 參數:
entries – 生成的矩陣數量 (整數)。
angle_rads – 角度的 NumPy 陣列
- 返回:
entries x 4 x 4 個同質旋轉矩陣
- Bio.PDB.vectors.multi_coord_space(a3: ndarray, dLen: int, rev: bool = False) ndarray
產生 [dLen] 個轉換矩陣,將座標轉換到由 3 個點定義的座標空間。
- 新的座標空間將具有
acs[0] 在 XZ 平面上,acs[1] 為原點,acs[2] 在 +Z 軸上
:param NumPy 陣列 [entries]x3x3 [entries] 3 個原子的 XYZ 座標 :param bool rev: 若為 True,則同時回傳反向轉換矩陣 (從座標空間返回) :returns: [entries] 個 4x4 NumPy 陣列,若 rev=True 則為 x2