【爆肝萬字】基于Rosetta的配體結(jié)合位點的設(shè)計(Rosetta,Design of Ligand Binding)
1. 前言
Rosetta是蛋白質(zhì)設(shè)計中的重要平臺,在蛋白質(zhì)設(shè)計領(lǐng)域中占有重要地位。本文以2016年的文獻Rosetta and the Design of Ligand Binding Sites進行實踐,探索用Rosetta進行配體結(jié)合位點的設(shè)計。經(jīng)過三個月實踐成功,得到本文檔,在此分享給讀者,希望能夠幫到有需要的讀者完成實驗工作,早發(fā)文章!
覺得有用還請點個贊呀!ヾ(?°?°?)??
文獻信息:Methods Mol Biol. 2016 ; 1414: 47–62. doi:10.1007/978-1-4939-3569-7_4.
Rosetta and the Design of Ligand Binding Sites - PubMed

總體設(shè)計流程如下圖所示。
2. 材料
(1)運行類Unix操作系統(tǒng)(如Linux或MacOS)的計算機。盡管測試運行和小型生產(chǎn)運行可以在傳統(tǒng)的筆記本電腦和臺式機系統(tǒng)上執(zhí)行,但建議在生產(chǎn)運行中使用多處理器計算群集。
(2)Rosetta。Rosetta建模包可以從RosettaCommons網(wǎng)站(https://www.rosettacommons.org/software/license-and-download)獲得。Rosetta許可證免費提供給學(xué)術(shù)用戶。Rosetta以源代碼形式提供,必須在使用前編譯。有關(guān)如何編譯Rosetta的說明,請參閱Rosetta文檔(https://www.rosettacommons.org/docs/latest/)。本文中的方案已使用Rosetta每周發(fā)布版本2021.16.61629進行了測試。
特別注意:版本不同,使用時會有所差別,比如原文章中使用的是2016版本的Rosetta,具體到2021年的版本是有些差異的。
(3)處理小分子的程序。OpenBabel是一個自由軟件包,允許操作許多小分子文件格式。有關(guān)下載和安裝信息,請訪問http://openbabel.org獲取下載和安裝信息。本文中的協(xié)議已在OpenBabel版本2.3.1中進行了測試。也可以使用其它小分子操作程序。
(4)配體構(gòu)象生成程序。我們推薦BCL,可從http://meilerlab.org/index.php/bclcommons免費獲得,用于學(xué)術(shù)用途,但需要劍橋結(jié)構(gòu)數(shù)據(jù)庫的額外許可證才能生成構(gòu)象異構(gòu)體。本文中的協(xié)議已使用BCL 3.2版進行了測試。也可以使用其他構(gòu)象異構(gòu)體生成程序,如Omega、MOE或RDKit。
(5)標準格式的靶小分子結(jié)構(gòu),如SDF或SMILES。
雖然Rosetta可以忽略遠離結(jié)合位點的鏈斷裂和缺失環(huán),但蛋白質(zhì)的結(jié)構(gòu)在配體結(jié)合區(qū)域應(yīng)該是完整的。如果結(jié)合口袋缺失殘基,使用起始結(jié)構(gòu)作為模板,用比較建模方案重塑這些殘基。
(6)待重新設(shè)計的蛋白質(zhì)結(jié)構(gòu),PDB格式。
可接受的格式取決于小分子處理程序的能力。OpenBabel可用于將大多數(shù)小分子表示(包括SMILES和InChI)轉(zhuǎn)換為Rosetta所需的sdf格式。
在與密切相關(guān)的配體的絡(luò)合物中測定的高分辨率實驗結(jié)構(gòu)是最理想的,但不是必需的??梢允褂梦磁潴w化蛋白質(zhì)的實驗結(jié)構(gòu)甚至同源性模型。
3. 方法
總述:在整個方案中,${ROSETTA}表示安裝Rosetta的目錄。文件內(nèi)容和要在終端中運行的命令以斜體顯示。假定使用bash shell-其他shell的用戶可能需要修改命令行的語法。
參照本部分理論,使用Rosetta的relax protocol優(yōu)化蛋白結(jié)構(gòu),在存放蛋白結(jié)構(gòu)文件(以DEBP.pdb為例)的目錄下打開Linux命令行界面。我本地Rosetta安裝路徑為:
/home/hdeng/software/rosetta_bin_linux_2021.16.61629_bundle
注意:運行時需要找到個人安裝Rosetta的路徑進行替換。
3.1 將蛋白質(zhì)結(jié)構(gòu)預(yù)松弛到Rosetta評分函數(shù)
具體命令如下:
/home/hdeng/software/rosetta_bin_linux_2021.16.61629_bundle/main/source/bin/relax.mpi.linuxgccrelease -ignore_unrecognized_res -ignore_zero_occupancy false -use_input_sc -flip_HNQ -no_optH false -relax:constrain_relax_to_start_coords -relax:coord_constrain_sidechains -relax:ramp_constraints false -s DEBP.pdb
命令正確,開始運行,輸出日志!

運行結(jié)束后輸出文件為DEBP_0001.pdb。

為方便起見,重命名輸出結(jié)構(gòu)??梢灾苯釉趚ftp中更改文件名,或用mv命令更改文件名(命令如下)。
mv DEBP_0001.pdb DEBP_relaxed.pdb
3.2 準備配體
3.2.1 將小分子轉(zhuǎn)化為SDF格式,包括根據(jù)需要添加氫
從RCSB數(shù)據(jù)庫中下載AKG的?sdf?小分子構(gòu)象文件AKG_ideal.sdf。
使用?OpenBabel軟件為?AKG補加氫原子,在存放配體構(gòu)象文件的目錄下打開?Win10?命令行窗口。

輸入以下命令:
obabel AKG_ideal.sdf -p 7.4 -O AKG.sdf
其中,-p?指定在?pH?=?7.4?的條件下為?AKG加氫。程序運行結(jié)束后會輸出氫原子數(shù)符合體液?pH?條件的?AKG構(gòu)象?AKG.sdf。
運行后顯示“1 molecule converted”,即一個分子已經(jīng)轉(zhuǎn)化完成。

在原路徑下新生成了AKG.sdf這個文件。

以下對OpenBabel軟件處理前后的sdf文件做一下簡單對比,可以發(fā)現(xiàn)處理后去掉了兩個氫原子。即程序認為4個氫原子符合體液?pH?為7.4的條件。

分析AKG的結(jié)構(gòu)可以發(fā)現(xiàn)一些端倪,AKG中含有兩個羧基,在ph設(shè)置為7.4的弱堿性環(huán)境下,可以猜想去掉兩個氫原子是合理的。

后續(xù)嘗試將PH設(shè)置為14,強堿性環(huán)境下失去兩個氫原子,而PH=1的強酸性環(huán)境下沒有去掉氫原子,即酸性環(huán)境下AKG不會失去氫原子,這和之前的猜想是一致的。

3.2.2 生成配體構(gòu)象異構(gòu)體庫,將構(gòu)象異構(gòu)體庫轉(zhuǎn)換為Rosetta格式的“參數(shù)文件”
不同于蛋白大分子,配體小分子一般都具有相當大的靈活性,同一分子會以不同的構(gòu)象與蛋白發(fā)生相互作用。因此,為了在設(shè)計時考慮到小分子的靈活性,需要生成小分子的構(gòu)象異構(gòu)體集合。
原文獻中使用的是BCL的本地應(yīng)用程序,而以下使用更為簡便的BCL::Conf網(wǎng)絡(luò)服務(wù)器生成配體構(gòu)象異構(gòu)體庫。
從[文獻](https://pubmed.ncbi.nlm.nih.gov/33351632/)中了解到BCL下載,以及BCL::Conf網(wǎng)絡(luò)服務(wù)器的網(wǎng)址(如下),二者均可以實現(xiàn)生成配體構(gòu)象異構(gòu)體庫,但實際使用時打不開。
BCL下載:http://meilerlab.org/bclcommons
BCL::Conf網(wǎng)絡(luò)服務(wù)器:http://meilerlab.org/bclconf
之后通過檢索找到可用的[BCL::Conf網(wǎng)絡(luò)服務(wù)器](Meiler Lab)。

在 Molecules選項中上傳已加氫的AKG.sdf;在Conformer Generation Mode選項中選擇Standard;在Number of Conformers Desired / Molecule選項中填寫100。

提交設(shè)置和任務(wù)后,提示在頁面要等待大約48秒。
結(jié)果不到30秒就自動刷新頁面顯示了結(jié)果。

點擊conformers_bcl_conf.sdf文件即可下載,該文件中含有100個加氫后的AKG分子的構(gòu)象。將其重命名為AKG_conf.sdf以便進行后續(xù)操作。
接下來將該構(gòu)象集合轉(zhuǎn)換為 Rosetta 可讀取的、用于儲存小分子形狀及化學(xué)性質(zhì)信息的專有格式:params 文件。在存放構(gòu)象異構(gòu)體集合文件(AKG_conf.sdf)的目錄下打開 Linux 命令行界面,輸入以下命令:
${ROSETTA}/main/source/scripts/python/public/molfile_to_params.py -n LIG -p LIG -- conformers-in-one-file AKG_conf.sdf
其中,-n 指定在 pdb 和 params 文件中用來表示配體名稱的 3 字符縮寫,這里命名為 LIG 即配體 ligand 的縮寫(需要注意的是,這里不能沿用 GLY 或者其他氨基酸、金屬原子的縮寫,否則生成的 params 文件會在后續(xù)突變結(jié)構(gòu)時,與 Rosetta 自帶的氨基酸或部分金屬原子的 params 文件發(fā)生沖突);-p 指定生成文件的命名。
我實際輸入命令(${ROSETTA}代表的路徑不同,需替換成本地的路徑):
/home/hdeng/software/rosetta_bin_linux_2021.16.61629_bundle/main/source/scripts/python/public/molfile_to_params.py -n LIG -p LIG --conformers-in-one-file AKG_conf.sdf
輸出正常,很快運行完成。

在Xftp中查看輸出文件,可以看到新產(chǎn)生了3個文件:配體形狀及化學(xué)信息文件 LIG.params,Rosetta 選定的 1 個配體構(gòu)象LIG.pdb,配體構(gòu)象集合 LIG_conformers.pdb。

用PyMOL查看LIG.pdb和LIG_conformers.pdb的結(jié)構(gòu),分別如下圖所示。


至此,配體準備工作完成。
3.3 將配體置于蛋白質(zhì)中
Rosetta要求原子名稱與molfile_to_params.py步驟中生成的名稱匹配。即使具有正確放置了配體的起始結(jié)構(gòu),也應(yīng)該將molfile_to_params.py生成的結(jié)構(gòu)對齊到口袋中,以便原子命名正確。
在進行蛋白設(shè)計時會包含蛋白與配體的多次對接,因此需要先指定配體每個原子的起始坐標,這樣配體才能在指定的對接盒子中移動和扭轉(zhuǎn),與結(jié)合口袋發(fā)生相互作用。
為此,只需要在PyMOL中打開蛋白結(jié)構(gòu)、以及前文Rosetta選定的其中1個配體構(gòu)象LIG.pdb,將配體移動至結(jié)合口袋內(nèi)即可。
為了提高定位的準確性、縮小對接需要搜索的空間范圍,在PyMOL中打開含原配體Glu 的蛋白結(jié)構(gòu)2VHA.pdb和 LIG.pdb,將鼠標操作改為編輯模式,移動和旋轉(zhuǎn)LIG.pdb,使之與2VHA.pdb中的原配體Glu在羧基處大致重合,如下圖所示。

調(diào)整好LIG.pdb的位置之后,刪除原配體Glu和蛋白DEBP的復(fù)合物結(jié)構(gòu)2VHA.pdb,只留下已移動到結(jié)合口袋處的AKG,保存為 LIG_positioned.pdb。
這個過程相對簡單,實際操作中需要注意一些細節(jié),以下進行簡單說明。
(1)如何在PyMOL中設(shè)置鼠標操作為編輯模式?
在界面右下角可以看到“Mouse Mode”,即鼠標操作模式。

只需在上圖紅框區(qū)域單擊鼠標即可實現(xiàn)顯示模式(3-Button Viewing)和編輯模式(3-Button Editing)的切換。

(2)在PyMOL中調(diào)整配體位置過程中的細節(jié)
因為上述操作過程中,我們只想移動配體LIG.pdb,而不想蛋白質(zhì)2VHA.pdb位置發(fā)生改變,因此可以在顯示模式對蛋白進行固定,固定方式為:選中蛋白結(jié)構(gòu)→A(ACTION)→MOVEMENT→PROTECT。
在編輯模式下,一些鼠標操作如下:
Shift鍵+鼠標左鍵——旋轉(zhuǎn)配體;
Shift鍵+鼠標中鍵——可平移配體;
長按鼠標右鍵滑動——縮放視野;
Ctrl+Shift+鼠標中鍵——將鼠標所在位置設(shè)置為旋轉(zhuǎn)中心。
(3)為蛋白質(zhì)設(shè)置透明度和透明方式
在移動和旋轉(zhuǎn)配體時,不透明的蛋白顯示方式會造成遮擋,不便于操作。因此可以在顯示模式下選中蛋白質(zhì),為其設(shè)置透明度,如果顯示的方式為cartoon,將其設(shè)置成透明度設(shè)置為50%,可以按以下步驟操作:點擊菜單欄中的Setting→Transparency→cartoon→50%。
更多透明度和透明方式的設(shè)置,可參見[PyMOL中文教程](入門教程 - PyMOL中文教程 2022.09 文檔)。
(4)檢查
調(diào)整好LIG.pdb的位置,保存為LIG_positioned.pdb之后,可以重新打開LIG_positioned.pdb和2VHA.pdb查看重合情況。如下圖可以看到,LIG_positioned.pdb和原配體Glu重合情況較好。

3.4 運行Rosetta設(shè)計
3.4.1 突變位點聲明
實際操作時,這個步驟很簡單,就是新建一個.txt文檔,在其中輸入以下文字,保存后將文檔后綴名由`.txt`改為`.resfile`即可。
ALLAA AUTO start 1 × NATAA
說明:
其中,“start”以上為 Header 部分,“start”以下為 Body 部分。
Header 聲明了對所有未在 Body 中聲明的殘基要采取何種操作:“ALLAA”即允許選定殘基突變?yōu)?20 種常規(guī)氨基酸中任意一種;“AUTO”即讓 Rosetta 自動檢測結(jié)合界面確定待突變殘基。即 Header 允許位于結(jié)合界面的殘基突變?yōu)?20 種常規(guī)氨基酸中任意一種,其他位置的殘基不發(fā)生突變。
Body 聲明的操作作為 Header 的例外被優(yōu)先確定,即當 Header 和 Body 對同一殘基采取的操作發(fā)生沖突時,以 Body 為準?!? X NATAA”即允許 X 鏈第 1 位殘基采取 repack操作,即發(fā)生構(gòu)象變化。但 1R9L 的蛋白結(jié)構(gòu)只有 A 鏈,關(guān)于 X 鏈的情況需要特別說明:在 3.2.3 配體文件準備與預(yù)處理中,將構(gòu)象集合 sdf 文件轉(zhuǎn)換為 params 文件時,生成的LIG.pdb,LIG_conformers.pdb 都會將 GLY 放置在 X 鏈;LIG.params 中 MM AtomType項也設(shè)置為 X。這是因為 Rosetta 默認 X 鏈是配體、配體原子類型是 X。因此 X 鏈第 1位殘基就是指目標配體 GLY。即 Body 只允許配體構(gòu)象變化,不允許配體發(fā)生突變。
附:淺談Rosetta Mutfile與Resfile用法 - 知乎
谷雨:淺談Rosetta Mutfile與Resfile用法
補充:Commands for for controlling sequence identity(控制序列識別的命令)
參考自(下面是對內(nèi)容的翻譯):Resfile syntax and conventions
每個命令都用于限制每個位置允許的氨基酸種類。如果組合多個命令,只有被每個命令單獨允許的氨基酸才會被包含。這是由于對PackerTask類操作的交換性質(zhì)。
注意:應(yīng)該記住,resfile命令是限制性的,而不是允許性的。雖然不允許的殘基不會被重新打包/重新設(shè)計,但是各種協(xié)議提供了額外的限制,可能進一步限制突變身份。特別地,許多協(xié)議會禁止重新設(shè)計二硫鍵半胱氨酸,即使在resfile中明確列出為可突變。
每個命令都用于限制每個位置允許的氨基酸種類。如果組合多個命令,只有被每個命令單獨允許的氨基酸才會被包含。這是由于對PackerTask類操作的交換性質(zhì)。 注意:應(yīng)該記住,resfile命令是限制性的,而不是允許性的。雖然不允許的殘基不會被重新打包/重新設(shè)計,但是各種協(xié)議提供了額外的限制,可能進一步限制突變身份。特別地,許多協(xié)議會禁止重新設(shè)計二硫鍵半胱氨酸,即使在resfile中明確列出為可突變。
ALLAA … 允許所有20種氨基酸,包括半胱氨酸(與ALLAAwc相同)
ALLAAwc … 允許所有20種氨基酸(默認)
ALLAAxc … 允許除半胱氨酸外的所有氨基酸
POLAR … 只允許極性的標準氨基酸(DEHKNQRST)
APOLAR … 只允許非極性的標準氨基酸(ACFGILMPVWY)
PROPERTY <property> … 不允許任何缺乏給定屬性的殘基類型
NOTAA <list of AAs> … 只不允許指定的氨基酸(使用單字母代碼,不用分隔符,如ACFYRT。對于非標準氨基酸,使用X[<full name>]。)
PIKAA <list of AAs> … 只允許指定的氨基酸(使用單字母代碼,不用分隔符,如ACFYRT。對于非標準氨基酸,使用X[<full name>]。)
NATAA … 只允許本來的氨基酸(NATive Amino Acid)- 重新打包而不設(shè)計
NATRO … 保留輸入的旋轉(zhuǎn)異構(gòu)體(完全不打包)(NATive ROtamer)
3.4.2 設(shè)計protocol
準備對接和設(shè)計腳本(“design.xml”)。建議的方案基于使用RosettaScripts框架的RosettaLigand對接。它將優(yōu)化配體在結(jié)合口袋中的位置(low_res_dock),重新設(shè)計周圍的側(cè)鏈(design_interface),并在設(shè)計的環(huán)境中優(yōu)化相互作用(high_res_dock)。為了避免虛假突變,在每個位置(favor_native)給輸入殘基一個輕微的能量獎勵。
新建一個記事本文件,將以下內(nèi)容寫入,并將文件另存為design.xml即可。
<ROSETTASCRIPTS> ? ?<SCOREFXNS> ? ? ? ?<ScoreFunction name="ligand_soft_rep" weights="ligand_soft_rep.wts"/> ? ? ? ?<ScoreFunction name="hard_rep" weights="ligandprime.wts"/> ? ?</SCOREFXNS> ? ?<TASKOPERATIONS> ? ? ? ?<DetectProteinLigandInterface name="design_interface" cut1="6.0" cut2="8.0" cut3="10.0" cut4="12.0" design="1" resfile="DEBP.resfile"/> ? ?</TASKOPERATIONS> ? ?<LIGAND_AREAS> ? ? ? ?<LigandArea name="docking_sidechain" chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/> ? ? ? ?<LigandArea name="final_sidechain" chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/> ? ? ? ?<LigandArea name="final_backbone" chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/> ? ?</LIGAND_AREAS> ? ?<INTERFACE_BUILDERS> ? ? ? ?<InterfaceBuilder name="side_chain_for_docking" ligand_areas="docking_sidechain"/> ? ? ? ?<InterfaceBuilder name="side_chain_for_final" ligand_areas="final_sidechain"/> ? ? ? ?<InterfaceBuilder name="backbone" ligand_areas="final_backbone" extension_window="3"/> ? ?</INTERFACE_BUILDERS> ? ?<MOVEMAP_BUILDERS> ? ? ? ?<MoveMapBuilder name="docking" sc_interface="side_chain_for_docking" minimize_water="true"/> ? ? ? ?<MoveMapBuilder name="final" sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/> ? ?</MOVEMAP_BUILDERS> ? ?<SCORINGGRIDS ligand_chain="X" width="15"> ? ? ? ?<ClassicGrid grid_name="vdw" weight="1.0"/> ? ?</SCORINGGRIDS> ? ?<MOVERS> ? ? ? ?<FavorNativeResidue name="favor_native" bonus="1.00"/> ? ? ? ?<Transform name="transform" chain="X" box_size="3.0" move_distance="0.1" angle="5" cycles="500" repeats="1" temperature="5" rmsd="4.0"/> ? ? ? ?<HighResDocker name="high_res_docker" cycles="6" repack_every_Nth="3" scorefxn="ligand_soft_rep" movemap_builder="docking"/> ? ? ? ?<PackRotamersMover name="design_interface" scorefxn="hard_rep" task_operations="design_interface"/> ? ? ? ?<FinalMinimizer name="final" scorefxn="hard_rep" movemap_builder="final"/> ? ? ? ?<InterfaceScoreCalculator name="add_scores" chains="X" scorefxn="hard_rep"/> ? ? ? ?<ParsedProtocol name="low_res_dock"> ? ? ? ? ? ?<Add mover_name="transform"/> ? ? ? ?</ParsedProtocol> ? ? ? ?<ParsedProtocol name="high_res_dock"> ? ? ? ? ? ?<Add mover_name="high_res_docker"/> ? ? ? ? ? ?<Add mover_name="final"/> ? ? ? ?</ParsedProtocol> ? ?</MOVERS> ? ?<PROTOCOLS> ? ? ? ?<Add mover_name="favor_native"/> ? ? ? ?<Add mover_name="low_res_dock"/> ? ? ? ?<Add mover_name="design_interface"/> ? ? ? ?<Add mover_name="high_res_dock"/> ? ? ? ?<Add mover_name="add_scores"/> ? ?</PROTOCOLS></ROSETTASCRIPTS>
注:在XML腳本中更改resfile的名稱,使其與正在使用的resfile的完整路徑和文件名相匹配。切割值決定如何使用AUTO規(guī)格處理殘留物。將設(shè)計在配體的切口1埃內(nèi)具有C-β原子的所有AUTO殘基,以及切口2內(nèi)指向配體的所有殘基。選擇側(cè)鏈的邏輯分別類似于切口3和切口4,但具有側(cè)鏈靈活性而不是設(shè)計。在設(shè)計階段將忽略剖切殼之外的任何內(nèi)容,但在其他階段可能會移動這些內(nèi)容。
注:網(wǎng)格寬度必須足夠大以容納配體。對于較長的配體,請將該值至少增加到配體的最大延伸長度加上“變換”移動器中box_size值的兩倍。
注:box_size的值設(shè)定配體從起始位置的最大剛體置換。rmsd的值設(shè)置與起始位置的最大允許均方根偏差。如果希望使設(shè)計的配體更接近起始構(gòu)象,請將這些值設(shè)置為較小的值;如果希望允許更多的移動,請將這些值設(shè)置為較大的值。這些僅是方案主動采樣階段的限值。在協(xié)議的其他階段可能會發(fā)生額外的移動。
3.4.3 運行設(shè)計應(yīng)用程序
輸入以下指令運行。-nstruct 5000代表生成5000個pdb文件,可根據(jù)需要進行更改。
/home/hdeng/software/rosetta_bin_linux_2021.16.61629_bundle/main/source/bin/rosetta_scripts.mpi.linuxgccrelease -ex1 -ex2 -linmem_ig 10 -restore_pre_talaris_2013_behavior -parser:protocol design.xml -extra_res_fa LIG.params -s "DEBP_relaxed.pdb LIG_positioned.pdb" -nstruct 5000 -out:file:scorefile design_results.sc
在目錄下生成了所需的pdb文件。

3.5 進行兩輪篩選
(1)第1次篩選
為了查看高分結(jié)構(gòu),在當前目錄下打開 Linux 命令行界面,輸入以下命令:
awk '{print $NF,$2}' design_results.sc | sort -nk2 > sorted_scores.txt
程序運行結(jié)束后會輸出20,000個結(jié)構(gòu)按total_score項排列的分數(shù)記錄文件,該項代表總體得分的大小,一般為負數(shù),負得越多說明能量越小,結(jié)構(gòu)越穩(wěn)定。
為了獲得上述各項的平均值,需要先過濾一次以查看附帶輸出的各項平均值信息。創(chuàng)建之后要寫入過濾參數(shù)的空文件metric_thresholds.txt,在當前目錄下打開 Linux 命令行界面,實際輸入以下命令:
perl /home/hdeng/software/rosetta_bin_linux_2021.16.61629_bundle/main/source/src/apps/public/enzdes/DesignSelect.pl -d <(grep SCORE design_results.sc) -c metric_thresholds.txt -tag_column last > filtered_designs.sc
命令行界面在程序一開始執(zhí)行時會輸出各項得分的平均值,將過濾時要用到的得分項平均值記下,刪除本次輸出的 filtered_designs.sc(也可不刪除,因下次過濾輸出的結(jié)果會覆蓋此文件)。

根據(jù)過濾項平均值,打開metric_thresholds.txt寫入過濾參數(shù)。寫入內(nèi)容如下:
req total_score value < -1238.12 req fa_rep value < 97.62 req if_X_fa_atr value < -12.93 req if_X_fa_rep value < 1.92 req ligand_is_touching_X value > 0.8 output sortmin total_score
在當前目錄下打開Linux命令行界面,再次輸入上次過濾的命令,程序運行結(jié)束后會輸出filtered_designs.sc文件,文件包含了按interface_delta_X項排序的濾過結(jié)構(gòu)列表。

(2)第2次篩選
進入到要產(chǎn)生構(gòu)象的文件目錄下,輸入以下命令:
awk '{print $NF ".pdb"}' filtered_designs.sc >filtered_pdbs.txt
Rosetta的InterfaceAnalyzer計算了許多額外的指標。不過,這些可能需要時間來評估,因此最好只在一組經(jīng)過預(yù)過濾的結(jié)構(gòu)上運行。在生成指標之后,可以如前面的步驟中那樣過濾結(jié)構(gòu)。這將生成一個分數(shù)文件(“design_interfaces.sc”),其中包含所選PDB的計算的指標值。
實際使用指令:
/home/hdeng/software/rosetta_bin_linux_2021.16.61629_bundle/main/source/bin/InterfaceAnalyzer.mpi.linuxgccrelease -interface AB_X -compute_packstat -pack_separated -score:weights ligandprime -no_nstruct_label -out:file:score_only interfaces.sc -l filtered_pdbs.txt -extra_res_fa LIG.params
這步比較費時,相當于在第一步篩選結(jié)果的基礎(chǔ)上,進一步計算新的指標并進行篩選,相當于計算一千多個構(gòu)象的新的指標。運行結(jié)束之后得到interfaces.sc文件,包含第1次篩選后留下的1168個構(gòu)象。

為了獲得上述各項的平均值,需要先過濾一次以查看附帶輸出的各項平均值信息。創(chuàng)建之后要寫入過濾參數(shù)的空文件metric_thresholds_2.txt,在當前目錄下打開 Linux 命令行界面,輸入以下命令:
perl /home/hdeng/software/rosetta_bin_linux_2021.16.61629_bundle/main/source/src/apps/public/enzdes/DesignSelect.pl -d <(grep SCORE interfaces.sc) -c metric_thresholds_2.txt -tag_column last > filtered_interfaces.sc
運行后上述命令之后各項指標的平均值輸出如下。

根據(jù)過濾項平均值,打開metric_thresholds_2.txt寫入過濾參數(shù)。寫入內(nèi)容如下:
req packstat value > 0.75 req sc_value value > 0.75 req delta_unsatHbonds value < 4.82 req dG_separated/dSASAx100 value < -0.81 output sortmin dG_separated
在當前目錄下打開Linux命令行界面,再次輸入第2次過濾的命令,程序運行結(jié)束后會輸出filtered_interfaces.sc文件,文件包含了按dG_separated項排序的濾過結(jié)構(gòu)列表和各項分數(shù),總共篩選得到93個構(gòu)象。

通過運行以下命令可以得到只包含已通過篩選的文件的名稱的文件filtered_pdbs_final.txt。
awk '{print $NF ".pdb"}' filtered_interfaces.sc >filtered_pdbs_final.txt

至此,通過Rosetta進行篩選的步驟結(jié)束。
3.6 手動檢查選定序列
雖然自動化程序在不斷改進,并且可以在有限程度上替代,但在評估設(shè)計時,仍然沒有人的專業(yè)知識可以替代。領(lǐng)域?qū)<覍缑娴囊曈X檢查可以捕獲難以編碼到自動過濾器中的系統(tǒng)特定需求。
3.7 重新應(yīng)用設(shè)計方案,從步驟3.4開始
通過對來自前幾輪設(shè)計的輸出結(jié)構(gòu)重復(fù)設(shè)計協(xié)議,可以獲得改進的結(jié)果。設(shè)計輪次的數(shù)量取決于系統(tǒng)及其收斂速度,但通常需要3-5輪設(shè)計,每輪設(shè)計都從上一輪的過濾結(jié)構(gòu)開始。
在后續(xù)循環(huán)中,隨著配體穩(wěn)定到首選結(jié)合方向,可能希望降低低分辨率采樣階段的積極性(步驟3.4.2中“變換”移動器的box_ size和rmsd值)。由于輸出結(jié)構(gòu)同時包含蛋白質(zhì)和配體,因此傳遞給“-s”選項的值上不再需要引號(參見步驟3.4.3)。與之相反,你可能希望使用“-l”選項,該選項采用每行包含一個輸入PDB的文本文件的名稱。每個輸入PDB都將生成“-nstruct”模型。減小此值,使每輪中未篩選的輸出結(jié)構(gòu)的總數(shù)大致相同。
3.8 設(shè)計迭代
根據(jù)計算協(xié)議進行的初始設(shè)計很少能給予精確的預(yù)期結(jié)果。通常需要執(zhí)行設(shè)計和實驗的迭代循環(huán),使用從實驗中獲得的信息來改變設(shè)計過程。