Bio.PDB.Atom 模組

用於結構物件的原子類別。

class Bio.PDB.Atom.Atom(name: str, coord: ndarray, bfactor: float | None, occupancy: float | None, altloc: str, fullname: str, serial_number, element: str | None = None, pqr_charge: float | None = None, radius: float | None = None)

基底:object

定義原子類別。

Atom 物件儲存原子名稱(包含有空格和無空格的名稱)、座標、B 因子、佔有率、替代位置指定符,以及(可選的)非等向性 B 因子和 B 因子及位置的標準差。

在 PQR 檔案的情況下,B 因子和佔有率會被原子電荷和半徑取代。

__init__(name: str, coord: ndarray, bfactor: float | None, occupancy: float | None, altloc: str, fullname: str, serial_number, element: str | None = None, pqr_charge: float | None = None, radius: float | None = None)

初始化 Atom 物件。

參數:
  • name (字串) – 原子名稱(例如 “CA”)。請注意,空格通常會被移除。

  • coord (NumPy 陣列 (Float0, 長度 3)) – 原子座標 (x,y,z)

  • bfactor (數字) – 等向性 B 因子

  • occupancy (數字) – 佔有率 (0.0-1.0)

  • altloc (字串) – 無序原子的替代位置指定符

  • fullname (字串) – 完整的原子名稱,包括空格,例如 “ CA “。通常這些空格會從原子名稱中移除。

  • element (大寫字串 (如果未知則為 None)) – 原子元素,例如「C」代表碳,「HG」代表汞。

  • pqr_charge (數字) – 原子電荷

  • radius (數字) – 原子半徑

__eq__(other)

測試相等性。

__ne__(other)

測試不相等性。

__gt__(other)

測試大於。

__ge__(other)

測試大於或等於。

__lt__(other)

測試小於。

__le__(other)

測試小於或等於。

__hash__()

傳回完整的原子識別碼。

__repr__()

將 Atom 物件列印為 <Atom atom_name>。

__sub__(other)

計算兩個原子之間的距離。

參數:

other (L{Atom}) – 另一個原子

範例

這是一個不完整但具有說明性的範例

distance = atom1 - atom2
strictly_equals(other: _AtomT, compare_coordinates: bool = False) bool

使用嚴格的相等性定義將此原子與另一個原子進行比較。

表示原子是否具有相同的名稱、B 因子、佔有率、替代位置指示符 (altloc)、完整名稱、元素、電荷和半徑。如果 compare_coordinates 為 true,也會比較座標。

參數:
  • other (Atom) – 要與此原子比較的原子

  • compare_coordinates (bool) – 是否要比較原子的座標

傳回:

原子是否完全相等

傳回類型:

bool

set_serial_number(n)

設定序號。

set_bfactor(bfactor)

設定等向性 B 因子。

set_coord(coord)

設定座標。

set_altloc(altloc)

設定替代位置指定符。

set_occupancy(occupancy)

設定佔有率。

set_sigatm(sigatm_array)

設定原子參數的標準差。

原子參數的標準差包含 3 個位置、1 個 B 因子和 1 個佔有率的標準差。

參數:

sigatm_array (NumPy 陣列 (長度 5)) – 原子參數的標準差。

set_siguij(siguij_array)

設定非等向性溫度因子的標準差。

參數:

siguij_array (NumPy 陣列 (長度 6)) – 非等向性溫度因子的標準差。

set_anisou(anisou_array)

設定非等向性 B 因子。

參數:

anisou_array (NumPy 陣列 (長度 6)) – 非等向性 B 因子。

set_charge(pqr_charge)

設定電荷。

set_radius(radius)

設定半徑。

flag_disorder()

將無序標記設定為 1。

無序標記表示原子是否無序。

is_disordered()

傳回無序標記 (如果無序則為 1,否則為 0)。

set_parent(parent)

設定父殘基。

參數
  • parent - 殘基物件

detach_parent()

移除對父元素的參考。

get_sigatm()

傳回原子參數的標準差。

get_siguij()

傳回非等向性溫度因子的標準差。

get_anisou()

傳回非等向性 B 因子。

get_parent()

傳回父殘基。

get_serial_number()

傳回序號。

get_name()

傳回原子名稱。

get_id()

傳回原子的 ID (即其原子名稱)。

get_full_id()

傳回原子的完整 ID。

原子的完整 ID 是一個用來唯一識別原子的元組,包含以下元素:(結構 ID、模型 ID、鏈 ID、殘基 ID、原子名稱、altloc)

get_coord()

傳回原子座標。

get_bfactor()

傳回 B 因子。

get_occupancy()

傳回佔有率。

get_fullname()

傳回原子名稱,包含前導和尾隨空格。

get_altloc()

傳回替代位置指定符。

get_level()

傳回層級。

get_charge()

傳回電荷。

get_radius()

傳回半徑。

transform(rot, tran)

將旋轉和平移套用到原子座標。

參數:
  • rot (3x3 NumPy 陣列) – 一個右乘旋轉矩陣

  • tran (大小為 3 的 NumPy 陣列) – 平移向量

範例

這是一個不完整但具有說明性的範例

from numpy import pi, array
from Bio.PDB.vectors import Vector, rotmat
rotation = rotmat(pi, Vector(1, 0, 0))
translation = array((0, 0, 1), 'f')
atom.transform(rotation, translation)
get_vector()

以向量形式傳回座標。

傳回:

座標為 3D 向量

傳回類型:

Bio.PDB.Vector 類別

copy()

建立 Atom 的副本。

父元素資訊會遺失。

class Bio.PDB.Atom.DisorderedAtom(id)

基底類別:DisorderedEntityWrapper

包含所有代表同一個無序原子的 Atom 物件。

這些原子其中一個會被「選取」,而 DisorderedAtom 未捕獲的所有方法呼叫都會轉發到選取的 Atom 物件。如此一來,DisorderedAtom 的行為就和一般的 Atom 完全相同。預設情況下,選取的 Atom 物件代表佔有率最高的 Atom 物件,但可以使用 disordered_select(altloc) 方法選取不同的 Atom 物件。

__init__(id)

建立 DisorderedAtom。

參數
  • id - 字串,原子名稱

__iter__()

逐一查看無序原子。

__repr__()

傳回無序原子識別符。

center_of_mass()

以 numpy 陣列的形式傳回 DisorderedAtom 的質心。

假設所有子原子的質量都相同 (相同的元素)。

disordered_get_list()

傳回原子實例的清單。

依 altloc (空白,然後按字母順序) 對子元素進行排序。

disordered_add(atom)

新增無序原子。

disordered_remove(altloc)

從 DisorderedAtom 移除子原子 altloc。

參數
  • altloc - 要移除的 altloc 名稱,為字串。

transform(rot, tran)

將旋轉和平移套用到所有子元素。

請參閱 Atom.transform 的文件以了解詳細資訊。