【解放雙手】Glide批量分子對接自動化腳本,助你快速完成蛋白配體分子對接!

文件名稱:Glide1Dragon.sh
應用場景:
當有多個的蛋白結構文件,需要和多個配體進行批量交叉對接時,如果用Maestro的UI界面進行對接時,每次只能實現(xiàn)一個蛋白和多個配體的對接,對接速度很慢,而且工作量大,這時用腳本實現(xiàn)批量分子對接就能極大地減少工作量、提高效率!
以下提供了我在師兄給的腳本上進一步完善得到的bash腳本,主要用于使用SCHRODINGER軟件進行結構預處理和分子對接建模。具體流程如下:
遍歷所有的文件夾(00001~00093),其中的00001~00093為需要進行批量對接的pdb文件,可以根據(jù)需要更改文件名,每個文件之間用空格分隔。
對每個文件夾中的蛋白質進行預處理,如修復氫鍵、添加二硫鍵、填充側鏈和回路等。預處理后的蛋白質以maegz格式進行保存。
將預處理后的蛋白質與其相應的配體分離,分別保存為兩個maegz格式的文件。
對預處理后的蛋白質創(chuàng)建一個對接盒子/格點文件(gridbox),用于對接時限定搜索空間。
創(chuàng)建對接參數(shù)文件,包括力場類型、網格文件、配體文件、輸出路徑等信息。
使用Glide進行對接,得到多種可能的配體-蛋白質結合構象,并且保存為maegz格式,進而可以通過Maestro可視化界面查看GlideScore等對接結果。
需要注意的是,在使用該腳本之前,需要先安裝SCHRODINGER軟件,并將可執(zhí)行文件路徑加入系統(tǒng)環(huán)境變量中。另外,該腳本中的配體文件路徑和輸出路徑可能需要根據(jù)實際情況進行修改。
腳本內容如下所示。
#!/bin/bash for folder in 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093; do echo "prepare protein" ${SCHRODINGER}/utilities/prepwizard -rehtreat -disulfides -fillsidechains -fillloops ${folder}.pdb ${folder}_protein_0.maegz echo "split complex" $SCHRODINGER/run split_structure.py ${folder}_protein_0.maegz ${folder}_protein.maegz echo "create gridbox" cat>${folder}.in<<EOF FORCEFIELD OPLS_2005 GRID_CENTER 36.56,33.18,1.9 INNERBOX 15, 15, 15 OUTERBOX 30, 30, 30 RECEP_FILE ${folder}_protein.maegz GRIDFILE ${folder}.zip EOF echo "create docking parameter" cat>glide_docking.in<<EOF FORCEFIELD OPLS_2005 GRIDFILE ${folder}.zip LIGANDFILE ../molecule_input/Structures_1.sdf OUTPUTDIR ../${folder}/maegz POSE_OUTTYPE ligandlib POSES_PER_LIG 20 PRECISION SP EOF echo "run docking" ? ?"${SCHRODINGER}/glide" ${folder}.in ?-OVERWRITE -adjust -HOST localhost:12 -TMPLAUNCHDIR -WAIT ? ?"${SCHRODINGER}/glide" glide_docking.in ?-OVERWRITE -adjust -HOST localhost:12 -TMPLAUNCHDIR -WAIT done
關于以上腳本的參數(shù)的具體解釋:
$SCHRODINGER:指向 Schrodinger 軟件的根目錄,用于尋找相關的二進制文件和 Python 腳本。
${folder}:用于循環(huán)遍歷指定的文件夾列表,每次循環(huán)時包含當前處理的文件夾名稱。
00001~00093:需要處理的文件夾列表,文件夾名字包含了蛋白質結構數(shù)據(jù)的信息。
-rehtreat:在準備蛋白質結構之前,重建氫鍵和氫鍵網絡。
-disulfides:在準備蛋白質結構之前,修復二硫鍵。
-fillsidechains:在準備蛋白質結構之前,填充蛋白質側鏈。
-fillloops:在準備蛋白質結構之前,填充蛋白質環(huán)。
${folder}.pdb:待處理的蛋白質結構文件。
${folder}_protein_0.maegz:經過預處理后的蛋白質結構文件,用于后續(xù)的分子對接計算。
${folder}_protein.maegz:經過預處理后的蛋白質結構文件,用于后續(xù)的分子對接計算。
GRID_CENTER:指定對接盒子/格點文件的中心坐標。
INNERBOX:指定內部盒子的尺寸。
OUTERBOX:指定外部盒子的尺寸。
RECEP_FILE:指定蛋白質結構文件名。
GRIDFILE:指定對接盒子/格點文件文件名。
腳本的具體使用:
(1)準備工作
對接前提條件:在Linux環(huán)境下運行腳本,本機已安裝Maestro軟件包,并且具有Glide的licence。
文件夾中有兩個子文件夾,分別是molecule_input和parameters。

molecule_input文件夾顧名思義就是放入對接所用的小分子配體文件,這些小分子配體可以經過Maestro中的Ligprep等方法進行配體準備之后輸出為sdf等格式。此處準備好的10個配體分子放入了Structures_1.sdf文件中。

parameters文件夾中則放入要批量處理的蛋白質的pdb文件,并將要運行的Glide1Dragon.sh腳本與要處理的蛋白質的pdb文件放在同一路徑下。
之后在Linux服務器下輸入以下命令進行運行。
XXXX代表路徑存儲Glide1Dragon.sh腳本的文件路徑。注意Glide1Dragon.sh腳本需要在到達其路徑之下才能運行。
cd XXXX sh Glide1Dragon.sh
(2)第1次運行腳本(批量蛋白準備、批量拆分蛋白-配體復合物)
第一次運行該腳本時會報錯(如下圖所示),提示沒有找到對應的文件,其實就是還沒有能夠完成蛋白的準備。

編輯切換為居中
但其實在第一次腳本運行過程中其實已經進行了蛋白的準備和拆分,并將結果存儲于文件如00001_protein_0.maegz中了。

(3)第2次運行腳本(批量生成對接盒子、批量對接)
在第2次以同樣命令sh Try10.sh運行腳本時,會在第1次運行腳本準備了蛋白和拆分的基礎上進行生成對接盒子并且進行對接。

運行完成后,得到了突變體打分的文件夾,但值得注意的是,可能會有文件夾的缺失情況(比如這輪運行中00012和00060缺失,因此重新用以上腳本對突變體00012和00060進行進一步地對接),要進行適當?shù)貦z查。

(4)結果分析
文件運行之后會在molecule_input和Parameters同層級下輸出結果文件夾,其中含有對接結果的maegz文件。

可以用Maestro打開maegz文件進一步查看對接打分等指標并對對接結果進行分析。

注:
以上腳本可以在理解的基礎上進行刪減或擴展部分功能,比如去除蛋白-配體拆分、生成對接盒子等;
使用時需要具體體系選擇對接盒子的中心坐標、對接盒子的尺寸等參數(shù),以得到更好的對接結果。
運行Glide的命令行,請參見官網介紹:https://www.schrodinger.com/sites/default/files/s3/release/current/Documentation/html/glide/glide_command_reference/glide_command_glide.htm?tocpath=Small%20Molecule%20Drug%20Discovery%7CProduct%20Documentation%7CGlide%7CCommand%20Reference%7C_____3