Mikael Trellet mikael.trellet@gmail.com
指導員
João Rodrigues
Eric Talevich
您可以在以下連結找到介面分析模組的描述和「如何使用」部分
在殘基層次分析蛋白質-蛋白質複合物的介面,可以產生關於整體結合過程的重要資訊。這些資訊可以廣泛用於例如結合親和力研究、介面設計和酶學。為了利用這些資訊,需要有系統地自動分析蛋白質結構的工具,或提供達到此目的的方法。Protorop (http://www.bioinformatics.sussex.ac.uk/protorp/) 就是這樣一個工具的例子,而且自發表以來,該伺服器獲得了大量的引用,這證明了它的重要性。然而,作為一個網路伺服器,Protorop 不適合大規模分析,並且它讓社群依賴其維護者來保持服務可用。另一方面,Biopython 的結構生物學模組 Bio.PDB 提供了理想的解析機制和程式化結構,用於開發用於介面分析的離線開源函式庫。這個函式庫可以很容易地用於大規模分析蛋白質-蛋白質介面,例如在 CAPRI 實驗評估或基準統計中。如果時間允許,將這個模組擴展到處理蛋白質-DNA 或蛋白質-RNA 複合物也是合理的,因為 Biopython 已經支援核酸。
單元測試將在專案期間執行,允許在最後執行一個更大的測試,收集所有已經執行的測試。
然後,目標將是在不改變演算法層級的情況下,盡可能優化程式碼的某些部分,提高效率和速度。將預留幾天來打包程式碼,並確保一切都能與 Biopython 通訊。
我們開始思考一種簡單的方法,將介面新增為 SMCRA 方案的新部分。想法是讓這個新方案 = SM-I-CRA。不幸的是,介面物件不像模型的子類別和鏈的父類別那樣明確定義。事實上,介面的主要部分是殘基,甚至是殘基對。我們想保留鏈的資訊,但我們不能按照它們實際定義的方式保留它們,因為我們會得到一些重疊、重複以及模型鏈和介面鏈之間的不相容性。同樣地,我們嘗試將介面的建立與現有的模組(例如 StructureBuilder 和 Model)連結起來也沒有成功。因此,我們決定透過以獨立方式新增與介面相關的類別來簡化概念。顯然,SMCRA 的不同層級之間將存在連結,但介面現在將被視為一個並行實體,而不是完全整合到 SMCRA 方案中。
Interface.py 是從 Entity 繼承的介面物件的定義,具有以下方法:__init__(self, id)、add(self, entity) 和 get_chains(self)。
add 模組覆寫了 Entity 的 add 方法,以便輕鬆地根據殘基各自的鏈對其進行分類。get_chains 模組傳回介面物件定義的介面中涉及的鏈。
建立的第二個類別是 InterfaceBuilder.py,它直接處理介面建構(很難猜到..!)。我們找到這些不同的模組:__init__(self, model, id=None, threshold=5.0, include_waters=False, *chains)、_unpack_chains(self, list_of_tuples)、get_interface(self)、_add_residue(self, residue)、_build_interface(self, model, id, threshold, include_waters=False, *chains)
__init__:為了初始化介面,您需要提供您要計算介面的模型,這是唯一強制性的引數。
_unpack_chains:__init__ 使用的方法,以建立 self.chain_list,該變數在類別的許多部分中讀取。它將元組列表(使用者提供)轉換為表示將參與介面定義的鏈的字元列表。
get_interface:簡單地傳回介面
_add_residue:允許使用者將一些特定的殘基新增到他的介面
_build_interface:建立介面的機制,它使用 NeighborSearch 和 Selection 來根據使用者提供的引數定義介面。
Interface.py InterfaceBuilder.py
為了獲得關於殘基的幾個有用資訊,並為了在介面內部將它們用於進一步的計算,我們想要實作殘基的子類別。這個新類別將整合為殘基的繼承類別(如同 DisorderedResidues),並且預設將計算關於殘基的一些資訊,例如極性電荷、疏水性或權重。我們首先想到建立現有殘基的副本以建立擴充殘基,但考慮到記憶體消耗,我們更喜歡直接更改殘基類型。因此,我們更改了殘基的類別,並在初始化新的 ExtendedResidue 類別期間執行計算。因此,殘基的變更由 Residue.extend() 完成
ExtendedResidue 是 Residue 的繼承類別,以下是其中的不同方法
__init__:設定殘基的電荷、質量和疏水性。
__repr__:根據殘基 ID 定義殘基的新 ID。
set_hydrophobicity:根據尺度選擇設定殘基疏水性,KD {Kyle and Doolittle}、OHM {Sweet and Eisenberg} 或共識(預設= 共識)。傳回選擇的尺度。
set_charge:根據 pka 和使用者定義的 pH 值設定殘基的相對電荷(預設為 7.0)
set_mass:根據其原子的質量設定殘基的質量
為了使用複合物介面,需要一些重要資訊。其中一些是在介面初始化期間計算的,而另一些是透過函數計算的。
InterfaceBuilder 中的私有函數(在介面初始化期間使用)
_secondary_structure:使用 DSSP 計算介面每個殘基的二級結構。
_rsa_calculation:用於根據殘基可及性定義介面。
介面中的公共函數(由使用者使用)
set_neighbors:為介面的每個殘基建立鄰居字典。
calculate_accessibility:計算複合物的隱藏表面積,並間接計算介面的可及性。此函數也會計算總可及性和鏈的可及性。此計算透過 NACCESS 模組完成。
科學家使用幾種方法來測量兩個複合物之間的差異。特別是在結構生物學中,工作的一個重要部分是分析科學方法產生的模型。例如,對接的可靠性和準確性。為了知道一個模型是否可以被認為是可以接受的,需要採用一個參考,並從這個參考中進行一些計算,將模型與參考進行比較。例如,我們可以引用 RMSD 或原生接觸的比例。這是我們在介面分析模組中新增的兩個計算。
interface_ref.rmsd(interface_model):此函數使用 Superimposer 模組來計算 2 個介面殘基之間的均方根偏差。它也給出了介面 RMSD。
interface_ref.fnat(interface_model):此函數計算 2 個介面之間共同接觸的比例。