Bio.PDB.SCADIO 模組

SCADIO:撰寫 OpenSCAD 程式以建立蛋白質結構 3D 模型。

由於整體複雜性以及列印時對支撐懸垂區域的一般要求,3D 列印蛋白質結構並非易事。此軟體是產生用於列印的模型(例如 STL 檔案)的一種途徑,並未解決將模型轉換為實體產品的問題。 OpenSCAD <http://www.openscad.org/> 可以從此軟體產生的腳本建立可列印的模型。MeshMixer <http://www.meshmixer.com/>、各種切片軟體以及您可用的 3D 列印機技術提供了各種選項來解決實際渲染模型的問題。

此處產生的模型包含 OpenSCAD 基本幾何圖形,例如球體和圓柱體,代表蛋白質結構明確模型中的個別原子和鍵。好處是可以選擇個別原子/鍵進行與 3D 列印相關的特定列印自訂(例如可旋轉的鍵機制或氫鍵磁鐵)。或者,使用例如 Chimera 將結構渲染為帶狀或類似形狀,以便列印為單一物件。

我建議使用此處提供的 OpenSCAD 腳本產生您的初始模型,然後根據您的需求修改該腳本。變更 atomScale 和 bondRadius 值可以透過移除間隙和相應的支撐需求來簡化模型,或者您可能希望修改 hedronDispatch() 例程,以選擇殘基或鏈段以單獨列印,然後使用可旋轉的鍵連接。在此開發階段,您可能會讓您的版本僅包含此處產生的資料矩陣,方法是使用 includeCode=False 選項來 write_SCAD()。一個使用可旋轉骨幹和磁性氫鍵的範例專案位於 <https://www.thingiverse.com/thing:3957471>。

Bio.PDB.SCADIO.write_SCAD(entity, file, scale=None, pdbid=None, backboneOnly=False, includeCode=True, maxPeptideBond=None, start=None, fin=None, handle='protein')

將立體裝配件以 OpenSCAD 矩陣的形式寫入檔案。

此例程會同時呼叫 IC_Chain.internal_to_atom_coordinates()IC_Chain.atom_to_internal_coordinates(),原因在於縮放、環周圍的明確鍵以及設定輸出模型的座標空間的要求。

輸出資料格式主要為

  • 每個立體的矩陣

    len1、angle2、len3、原子共價鍵類別、旗標,指出先前立體中表示的原子/鍵(OpenSCAD 在使用冗餘重疊元素時速度非常慢)、鍵功能的旗標

  • 轉換矩陣,將每個立體組裝成殘基二面角集合

  • 每個殘基的轉換矩陣,以便在鏈中定位

此 Python 檔案中包含 OpenSCAD 軟體,以將這些矩陣處理成適用於 3D 列印專案的模型。

參數:
  • entity – Biopython PDB Structure 實體結構資料,用於匯出

  • file – Bipoython as_handle() 檔案名稱或開啟的檔案指標,用於寫入資料

  • scale (float) – 每個埃在 STL 輸出中的單位(通常是公釐),寫入輸出

  • pdbid (str) – PDB idcode,寫入輸出。如果未提供,且實體中未設定「idcode」,則預設為「0PDB」

  • backboneOnly (bool) – 預設為 False。如果為 True,則不輸出 Cbeta 之後的側鏈資料

  • includeCode (bool) – 預設為 True。包含 OpenSCAD 軟體(如下列內嵌),以便將輸出檔案載入 OpenSCAD;如果為 False,則僅輸出資料矩陣

  • maxPeptideBond (float) – 可選預設值為 None。覆寫 IC_Chain 類別中的截止值(預設值為 1.4),以偵測鏈斷裂。如果您的目標有鏈斷裂,請在此處傳遞一個很大的數字,以建立一個跨越斷裂的非常長的「鍵」。

  • start,fin (int) – 預設值為 None。internal_to_atom_coords() 的參數,用於限制鏈段。

  • handle (str) – 產生的 OpenSCAD 矩陣結構頂層的預設名稱「protein」

請參閱 IC_Residue.set_flexible(),以設定特定殘基具有可旋轉鍵的旗標,以及 IC_Residue.set_hbond(),以包含小磁鐵的空腔,使其能作為氫鍵運作。請參閱 <https://www.thingiverse.com/thing:3957471> 以取得實作範例。

OpenSCAD 程式碼明確建立球體和圓柱體,以表示 3D 模型中的原子和鍵。可以使用選項來支援可旋轉的鍵和磁性氫鍵。

寫入矩陣以連結、列舉和描述殘基、二面角、立體和鏈,反映相關 IC_* 資料結構的內容。

立體的 OpenSCAD 矩陣具有下列其他資訊

  • 記錄原子和鍵的狀態(單鍵、雙鍵、共振)

    以便在 3D 模型中使用共價半徑作為原子球體

  • 追蹤鍵和原子,以便每個僅建立一次

  • 可以指定用於旋轉和磁鐵支架的鍵選項,用於氫鍵

    (請參閱 IC_Residue.set_flexible()IC_Residue.set_hbond()

請注意 Bio.PDB.internal_coords.IC_Chain.MaxPeptideBond 的應用:可以透過將此值設定為較大的值來連結遺失的殘基(用任意長度的鍵連接鏈段)。

請注意,這會使用每個殘基的序列組裝,將每個殘基放置在原點,並將座標空間轉換提供給 OpenaSCAD

所有 ALTLOC(無序)殘基和原子都會寫入輸出模型。(請參閱 Bio.PDB.internal_coords.IC_Residue.no_altloc