Bio.PDB.Vector模块

向量类,包括与旋转相关的函数。

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)

计算左乘旋转矩阵。

计算一个围绕向量旋转θrad的左乘旋转矩阵。

参数:
  • theta (float) -- 旋转角度

  • vector (L{Vector}) -- 旋转轴

返回:

旋转矩阵,3x3数值数组。

示例

>>> 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)

计算左乘旋转矩阵。

计算一个围绕向量旋转θrad的左乘旋转矩阵。

参数:
  • theta (float) -- 旋转角度

  • vector (L{Vector}) -- 旋转轴

返回:

旋转矩阵,3x3数值数组。

示例

>>> 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数值数组。

示例

>>> 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 Numeric array

示例

>>> 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,) -- 定义角度的树点

返回:

角度

返回类型:

float

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

三维矢量。

__init__(x, y=None, z=None)

初始化类。

__repr__()

返回矢量3D坐标。

__neg__()

返回向量(-x,-y,-z)。

__add__(other)

返回向量+其他向量或标量。

__sub__(other)

返回向量-其他向量或标量。

__mul__(other)

返回Vector.Vector(点积)。

__truediv__(x)

返回矢量(坐标/a)。

__pow__(other)

返回VectorxVector(叉积)或Vectorxscalar。

__getitem__(i)

数组索引i的返回值。

__setitem__(i, value)

为数组索引i赋值。

__contains__(i)

验证我是否在数组中。

norm()

返回向量范数。

normsq()

返回向量范数的平方。

normalize()

规格化Vector对象。

更改的状态 self 并且不返回值。如果需要链接函数调用或创建新对象,请使用 normalized 方法。

normalized()

返回Vector的规格化副本。

若要避免分配新对象,请使用 normalize 方法。

angle(other)

两个矢量之间的返回角度。

get_array()

返回坐标数组(副本)。

left_multiply(matrix)

返回向量=矩阵x向量。

right_multiply(matrix)

返回向量=向量x矩阵。

copy()

返回Vector的深层副本。

Bio.PDB.vectors.homog_rot_mtx(angle_rads: float, axis: str) array

生成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) array

生成4x4数值转换矩阵。

参数:

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) array

生成4x4数值缩放矩阵。

参数:

scale (float) -- 比例乘数

Bio.PDB.vectors.get_spherical_coordinates(xyz: array) Tuple[float, float, float]

计算X、Y、Z点的球面坐标(r、方位角、极角)。

参数:

xyz (array) -- 列向量(3行x 1列数组)

返回:

输入坐标的r、方位、极角的元组

Bio.PDB.vectors.coord_space(a0: ndarray, a1: ndarray, a2: ndarray, rev: bool = False) Tuple[ndarray, Optional[ndarray]]

生成由3个点定义的坐标空间的变换矩阵。

新坐标空间将具有:

ACS [0] 关于XZ平面ACS [1] 源ACS [2] 在+Z轴上

参数:
  • acs (numpy column array x3) -- X、Y、Z列输入坐标x3

  • rev (bool) -- 如果为True,还返回反向转换矩阵(从coord_space返回)

返回:

4x4数值数组,如果rev=True,则为x2

Bio.PDB.vectors.multi_rot_Z(angle_rads: ndarray) ndarray

创建 [条目] 的数值Z旋转矩阵 [条目] 角度。

参数:
  • entries -- 生成的矩阵的整数个数。

  • angle_rads -- 稀疏的角度阵列

返回:

条目x 4 x 4齐次旋转矩阵

Bio.PDB.vectors.multi_rot_Y(angle_rads: ndarray) ndarray

创建 [条目] 的数值Y旋转矩阵 [条目] 角度。

参数:
  • entries -- 生成的矩阵的整数个数。

  • angle_rads -- 稀疏的角度阵列

返回:

条目x 4 x 4齐次旋转矩阵