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