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