Pyrosetta 多方位解析

一、Pyrosetta 安裝

Pyrosetta 是 Rosetta 的 Python 包裝器,它可以為 Rosetta 提供 Python 接口,使 Rosetta 更加易用,便於進行蛋白質結構與功能分析等應用。Pyrosetta 的安裝需要先安裝 Rosetta ,具體步驟如下:


wget https://www.rosettacommons.org/downloads/Threading-libraries/rosetta3.11.source.tgz
tar zxvf rosetta3.11.source.tgz 
cd rosetta_source
./scons.py -j4 mode=release bin

安裝完成後需要下載 pyrosetta 相關庫:


git clone https://github.com/RosettaCommons/pyrosetta.git
cd pyrosetta
python setup.py install

二、Pyrosetta 和 Rosetta 的區別

在使用 Pyrosetta 前,需要先了解 Pyrosetta 和 Rosetta 的區別。

Rosetta 是一款蛋白質二次結構預測與蛋白質三維結構預測軟件包,它是一個成熟、龐大、靈活的軟件包,可以進行從單體到配體、蛋白結構優化、分子對接等範疇的計算。

Pyrosetta 則是 Rosetta 的 Python 包裝器,它為 Rosetta 提供 Python 接口。Pyrosetta 的主要功能是提供一種靈活方便的 Python 接口,使得 Rosetta 更加易用,方便用戶進行蛋白質結構與功能分析等應用。同時,Python 自身的特點也使得 Pyrosetta 在協同使用其他 Python 軟件包時更具方便性。

三、Pyrosetta 生成

Pyrosetta 對蛋白進行的幾何優化包括如下幾個方面:

1. 蛋白氨基酸二面角搜索;

2. 蛋白內外殘基間非共價相互作用力場優化;

3. 對於蛋白與配體之間的相互作用進行優化;

其中,對於配體的構象搜索與優化使用的也是 Rosetta 軟件包。

生成 Pyrosetta 分為兩種方式:

1. 通過 .pdb 文件讀取蛋白分子信息;


from pyrosetta import pose_from_pdb

pose = pose_from_pdb("filename.pdb")

2. 通過序列信息生成蛋白分子信息。


from pyrosetta.toolbox import generate_pose_from_sequence

sequence = "SEQ"
pose = generate_pose_from_sequence(sequence)

四、Pyrosetta 報錯

在使用 Pyrosetta 過程中可能會遇到一些報錯信息,例如無法找到庫文件等。在解決該問題前需要首先了解 Pyrosetta 報錯的原因。

Pyrosetta 報錯可能有如下原因:

1. Pyrosetta 版本不夠穩定或安裝不完全;

2. Pyrosetta 版本與 Rosetta 版本不匹配;

3. 路徑配置錯誤。

建議在使用 Pyrosetta 過程中,首先嘗試使用最新版本、完整安裝、合適匹配的 Pyrosetta 和 Rosetta 版本。如果還是遇到報錯,可以使用 Pyrosetta 的 verbose 參數,來調試解決問題。


from pyrosetta import init
init(extra_options='-mute all -mute JD2.ScoreFunctionFactory:')

# 或者使用更為詳細的 verbose 參數

init(options='-corrections:beta_nov16 true -mute all -mute core.conformation.util -mute core.pack.task')

五、Pyrosetta 自動生成

Pyrosetta 提供了 PDB 文件的自動生成功能,使得用戶能夠快速、方便地生成並操作 PDB 文件。


from pyrosetta import pose_from_sequence

pose = pose_from_sequence("ABC")
pose.dump_pdb("filename.pdb")

六、Pyrosetta4 安裝教程

Pyrosetta4 可以通過以下命令進行安裝:


git clone https://github.com/RosettaCommons/pyrosetta.git
cd pyrosetta
git checkout origin/release/v4.0
python3 setup.py install

七、Pyrosetta 用戶名密碼

在使用 Pyrosetta 進行計算時,經常需要輸入用戶名和密碼。這些信息可以在 Pyrosetta 的官方網站上註冊獲取。


from pyrosetta import init

init("-username  -password ")

八、Pyrosetta Torsion

Torsion angle 是描述蛋白質二級結構的基本參數之一。Pyrosetta 能夠通過其內建的函數獲取蛋白質的 torsion angle。


from pyrosetta import pose_from_sequence
from pyrosetta.rosetta.core.kinematics import FoldTree

pose = pose_from_sequence("SEQUENCE")
ft = FoldTree()
ft_from_pose = pose.fold_tree()
print(ft == ft_from_pose)

九、Pyrosetta 蛋白對接

Pyrosetta 提供了多種蛋白對接的方法,其中最常用的方法是 Fast Fourier Transform 基礎的蛋白質與配體對接方法。


from pyrosetta import *
from pyrosetta.rosetta.protocols.docking import *
from pyrosetta.rosetta.core.scoring import *
from pyrosetta.rosetta.core.pack.task import *
from pyrosetta.rosetta.core.select.residue_selector import *
from pyrosetta.rosetta.core.simple_metrics.metrics import *
from pyrosetta.rosetta.core.simple_metrics.per_residue_metrics import *
from pyrosetta.rosetta.core.pose import *
from pyrosetta.rosetta.core.scoring.docking import *

init()

# 設置任務
tf = TaskFactory()
task = tf.create_packer_task(pose)
task.restrict_to_repacking()
mut_residues = [1]
for resi in mut_residues:
    task.nonconst_residue_task(resi).prevent_repacking()

# 進行蛋白對接
dock_protocol = DockingHighRes()
dock_protocol.set_scorefxn(get_fa_scorefxn())
dock_protocol.set_task_factory(tf)
dock_protocol.set_min_type("lbfgs_armijo_nonmonotone")
dock_pose = pose_from_pdb("complex.pdb")
dock_pose.delete_polymer_residue_range(1, 5) # 移除掉配體
dock_pose.pdb_info().name("docked_pose")
dock_pose = dock_protocol.apply(dock_pose)

十、Pyrosetta ligand docking

Pyrosetta 還支持蛋白質對配體進行 docking,其中最常用的方法是 Fast Fourier Transform 基礎的蛋白質與配體對接方法。


from pyrosetta import *
from pyrosetta.rosetta.protocols.docking import *
from pyrosetta.rosetta.core.scoring import *
from pyrosetta.rosetta.core.pack.task import *
from pyrosetta.rosetta.core.select.residue_selector import *
from pyrosetta.rosetta.core.simple_metrics.metrics import *
from pyrosetta.rosetta.core.simple_metrics.per_residue_metrics import *
from pyrosetta.rosetta.core.pose import *
from pyrosetta.rosetta.core.scoring.docking import *

init()

# 設置任務
task_factory = TaskFactory()
task_factory.push_back(InitializeFromCommandline())
packer_task = task_factory.create_task_and_apply_taskoperations(pose)
packer_task.restrict_to_repacking()
mut_residues = [1]
for resi in mut_residues:
    packer_task.nonconst_residue_task(resi).prevent_repacking()

# 進行配體 docking
docking = DockMCMProtocol()
scorefxn_low = create_score_function('ligand')
scorefxn_low.set_weight(str(core.scoring.ScoreType.fa_dun),0.5)
scorefxn_high = create_score_function_ws_patch('ligand','standard', 'basic', 'score12')
scorefxn_high.set_weight(str(core.scoring.ScoreType.fa_dun),0.5)
docking.set_scorefxn_low_resolution(scorefxn_low)
docking.set_scorefxn_high_resolution(scorefxn_high)
docking.set_mcm_cycles(10)
docking.apply(packed_pose_in)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/303866.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-31 11:50
下一篇 2024-12-31 11:50

相關推薦

  • NLP領域的多方位探索

    一、文本分類 文本分類是NLP領域中的一個重要任務,它的目的是自動將文本分配到不同的預定義類別中。文本分類技術可以在廣泛的領域中應用,例如情感分析、輿情監測等。 文本分類的一種常見…

    編程 2025-04-24
  • display屬性的多方位應用

    一、display屬性概述 display屬性是CSS中常用的一個屬性,它定義了一個元素的盒模型類型,以及其在頁面上的布局形式。在HTML文檔中,每個HTML標籤都有一個默認的di…

    編程 2025-04-23
  • 多方位詳解日期格式化

    一、基本概念 日期格式化是指將日期類型轉換為字符串類型的過程,常見於前端頁面的數據展示。日期格式化通常需要指定日期的格式。在 JavaScript 中,可以使用 Date 對象來表…

    編程 2025-04-23
  • 小企鵝輸入法的多方位優勢

    一、智能識別與糾錯能力 小企鵝輸入法在智能化方面成績突出。它能夠聚合用戶常用的表情符號、詞組和詞庫,預測和推薦輸入內容,大大提升了用戶的輸入效率。同時,它還能夠通過機器學習實現糾錯…

    編程 2025-04-23
  • Unity Toggle組件的多方位探索

    一、Toggle是什麼 Toggle是unity中的一個UI組件,可以理解為開關或者複選框,用於實現用戶交互中的選擇功能,常用於設置界面、遊戲中的道具選擇、任務選項等。 Toggl…

    編程 2025-04-22
  • str.substring()——多方位詳解

    一、基本介紹 在JavaScript中,字符串是常見數據類型之一,而在我們操作字符串時,常常需要截取其中一部分。這時,str.substring()方法就派上了用場。該方法用於獲取…

    編程 2025-04-12
  • 多方位了解查看Linux版本命令

    一、使用uname命令查看Linux版本 在Linux系統中,使用uname命令可以查看Linux系統的版本和系統基本信息。 例如,輸入如下命令: uname -a 輸出結果類似於…

    編程 2025-04-12
  • matlab if函數:多方位解析

    一、if函數基本用法 if是matlab中常用的基礎控制語句之一,它根據判斷條件是否成立,決定程序接下來執行的語句。if函數的基本語法為: if (condition) state…

    編程 2025-04-12
  • Matlab編輯器的多方位探究

    一、編輯器基礎功能 Matlab作為一種用於科學計算的高級編程語言和交互式環境,其內置的編輯器自然是其一個重要且基礎的部分。作為一個編輯器,它的基礎功能包括文件的打開、編輯、保存、…

    編程 2025-04-12
  • xmselect.render的多方位詳解

    一、簡介 xm-select是一款基於jQuery開發的多功能選擇器。它可以用於各種web頁面上,包括但不限於表單、操作界面等。其中xmselect.render就是用來生成xm-…

    編程 2025-04-12

發表回復

登錄後才能評論