Bio.PDB.SASA 模組

計算 Bio.PDB 實體的溶劑可及表面積。

使用 Shrake & Rupley 開發的「滾球」演算法,該演算法使用一個球體(半徑與溶劑分子相同)來探測分子的表面。

參考文獻

Shrake, A; Rupley, JA. (1973). J Mol Biol “Environment and exposure to solvent of protein atoms. Lysozyme and insulin”.

class Bio.PDB.SASA.ShrakeRupley(probe_radius=1.40, n_points=100, radii_dict=None)

基礎類別:object

使用 Shrake-Rupley 演算法計算 SASA。

__init__(probe_radius=1.40, n_points=100, radii_dict=None)

初始化類別。

參數:
  • probe_radius (float) – 探針半徑,單位為埃 (A)。預設值為 1.40,約為水分子半徑。

  • n_points (int) – 每個原子表面的解析度。預設值為 100。點的數量越高,測量結果越精確,但會減慢計算速度。

  • radii_dict (dict) – 使用者提供的原子半徑字典,用於計算。字典中的值將取代/補充預設 ATOMIC_RADII 字典中的值。

>>> sr = ShrakeRupley()
>>> sr = ShrakeRupley(n_points=960)
>>> sr = ShrakeRupley(radii_dict={"O": 3.1415})
compute(entity, level='A')

計算實體的表面可及表面積。

計算出的原子表面可及性值會根據 level 附加到每個實體(或原子)的 .sasa 屬性。例如,如果 level="R",則所有殘基都會有一個 .sasa 屬性。原子將始終被分配一個具有其個別值的 .sasa 屬性。

參數:
  • entity (Bio.PDB.Entity) – 輸入實體。

  • level – 分配 ASA 值的層級,可以是 "A"(原子)、"R"(殘基)、"C"(鏈)、"M"(模型)或 "S"(結構)之一。實體的 ASA 值是其所有子實體的 ASA 值之總和。預設值為 "A"。

>>> from Bio.PDB import PDBParser
>>> from Bio.PDB.SASA import ShrakeRupley
>>> p = PDBParser(QUIET=1)
>>> # This assumes you have a local copy of 1LCD.pdb in a directory called "PDB"
>>> struct = p.get_structure("1LCD", "PDB/1LCD.pdb")
>>> sr = ShrakeRupley()
>>> sr.compute(struct, level="S")
>>> print(round(struct.sasa, 2))
7053.43
>>> print(round(struct[0]["A"][11]["OE1"].sasa, 2))
9.64