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齐次旋转矩阵