前言:需要自己确定蛋白的PDB ID和配体的
mol2
格式文件。详细步骤可见专栏前置文章。
分子对接
前置准备
- 文献查找是否有已知的蛋白活性位点/蛋白口袋。
- 更改工作路径:
file/change working directory
处理蛋白
file/Get PDB
或file/import structure
- 在层级结构那里将
Ligands
和Others
和Solvents/other solvents
都删除(注意保留Solvents/waters
) - 在右上角的操作区的
tasks
搜索Protein Preparation Wizard
,打开面板- 勾选
fill in missing side chains using Prime
和Delete waters beyond 5埃 from het groups
。 - 选择
preprocess
,运行结束后工作区多了一个preprocessed
的条目。 - 切换到
Refine
选项页,运行Optimize
,工作区出现hbond-opt
的条目。 - 运行
Minimize
,工作区出现minimized
的条目(这一步可能比较久)。
- 勾选
预测口袋(可选)
- 在工作区只选中
minimized
的蛋白条目,在右上角的操作区的tasks
搜索SiteMap
,打开面板- 直接点击
run
即可,完成后左边工作区显示预测出来的口袋条目,选中后点击⚙
的show property
- 在
choose
那里搜索sitemap primary
,依次选择其中的sitescore
、dscore
、volume
,并添加balanced
- 筛选结果:
SiteScore>1
、DScore > 1
,balance > 0.3
、volume > 225
(或只满足SiteScore>1
) - 查看蛋白口袋是否跨链,如果不跨链的话,将其余不涉及的链全都删除。
- 直接点击
处理配体
- 导入配体:
file/import structure
- 更改配体名称:
- 工作区选中配体条目,层级结构选中配体全部原子。
BUILD/Other Edits/Change Atom Properties
,勾选Residue name
并输入UNK
,确认。
- 确保工作区选中了配体条目,然后在右上角的操作区的
tasks
搜索LigPrep
,打开面板- 调整第一个选项为
project table
,并调整computation
为第二个选型后点击run
。完成后生成ligprep_1
文件夹。同时工作区产生相应条目。
- 调整第一个选项为
生成盒子
- 在工作栏同时选中
minimized
蛋白质和想要的活性位点,然后在右上角的操作区的tasks
搜索receptor grid generation
,打开面板- 勾选
pick to identify
并更改选项为entry
,勾选show markers
- 在主页面用鼠标点击一下想要的活性位点的任意原子(一般为白色小球)。
- 发现紫框定位到活性位点所在区域,而且活性位点的原子都由绿框框住,代表被选中。
- 最后点击
run
即可。
- 勾选
如果不想用预测的口袋生成盒子,而是用内源性配体生成盒子,那么进行如下操作:
file/import structure
正式对接
- 在右上角的操作区的
tasks
搜索Ligand docking
,打开面板如下:- 默认从文件中加载
glide-grid1.zip
并勾选display receptor
和show grid boxes
。 - 选择配体:
use ligands from files
,并加载ligprep_1-out.maegz
。 - 最后直接
run
即可。
- 默认从文件中加载
查看结果
- 点击右上角
table
查看结合能 - 选中结合能最高的条目和
minimized
蛋白质条目,右键merge
得到蛋白配体复合物 - 在工作目录新建一个
output
文件夹,以下步骤导入到该文件夹中minimized
蛋白质条目,蛋白配体复合物,导出为PDB
格式,并更名为protein.pdb
和complex.pdb
- 结合能最高的条目右键
export structures
导出为mol2
格式,并更名为unk.mol2
- 保存项目备份:
file/save project as
可视化图
- 选中蛋白配体复合物条目,
tasks
中找到2D Sketcher
:- 点击左侧栏的
best 2D view
。 - 点击
edit/preference
- 打开
show legend
和Always show chain ID of residues
- 调整
residue radius
为30和residue interaction width
为2
- 打开
- 选择
File/Save ScreenShot
- 不要勾选
Transparent Background
,将width
调整为1200
. - 点击
ok
导出图片。我一般习惯命名为2D.png
。
- 不要勾选
- 点击左侧栏的
- 将蛋白配体复合物条目导出到
pymol
中:- 通用配置:
- 打开残基序列,分离蛋白和配体,并分别命名为
pro
和lig
。 - 蛋白颜色设置为
cyans/palecyan
。 - 配体条目选择
Hide/Valence
。 - 调整标签大小
setting/label/size/18point
或者24point
- 调整背景颜色为白色。
- 保存工程文件
File/Save Session As
一般我就命名为pymol.pse
- 打开残基序列,分离蛋白和配体,并分别命名为
- 输出整体图片:
- 在
pymol
输入命令:select res, chain X and resi XXX + chain X and resi XXX
- 将
res
颜色配置为yellow/paleyellow
,并且将样式改为stick
。 - 在
pymol
输入命令:hide sticks, h.
- 选择右上角的
Draw/Ray
:- 调整为300dpi,取消勾选
transparent
,选择draw(faset)
- 命名为
big.png
(注意,配体放中间偏左下会好看一点)
- 调整为300dpi,取消勾选
- 在
- 输出细节图片:
- 选择
settings/transparency/cartoon
,调整为60%。 - 选中
res
条目,L/residues
打开标签。并且A/zoom
聚焦到该条目。 - 左上角调整为原子模式。
- 如果有作用在苯环中心的键,需要定义苯环平面(可选)
- 在命令行输入命令:
pseudoatom p1,sele
- 选中
p1
条目,将样式改为show/as/nb_spheres
- 在导航栏的
settings/edit all
,输入nonbonded_transparency
,找到后改为0.9
- 重复1-3步,直至定义完所有苯环平面
- 在命令行输入命令:
- 在
pymol
输入命令:hide sticks, h.
- 选中导航栏的
wizard/measurement
,根据2D图进行测量- 将Π键对应的条目改为绿色,将氢键对应的条目改为紫色
- 连完后点击
done
退出测量模式。
- 在
pymol
输入命令:zoom res or lig
- 将模式从view改为edit并按住ctrl,从而调整标签。
- 选择右上角的
Draw/Ray
,导出细节图片。
- 选择
- 再次保存工程文件,
file/save session
- 通用配置:
分子动力学模拟
激活环境
module load miniforge/24.1.2
source activate demo
module load gromacs/2022.5_nompi_cuda11.8
mkdir run/你的名字缩写/MOLXXX/PDB ID
cd run/你的名字缩写/MOLxxx/PDB ID
上传参数文件和`protein.pdb`和`unk.mol2`
拓扑准备
gmx pdb2gmx -f protein.pdb -o protein_processed.gro -ignh
选择CHARMM36力场(输入"1"或"2"),选择水模型(输入"1")
chmod +x mol2.py
python ./mol2.py unk.mol2
perl sort_mol2_bonds.pl unk.mol2 unk_fix.mol2
注意下载unk_fix.mol2
在Charm-GUI
网址(https://charmm-gui.org/
)获取拓扑文件:
- 选择左侧栏的
Solution Builder
,上传分子对接的complex.pdb
文件。 - 勾选所有物质,选择
next step
。 - 调
pH
为7.35
,点击Apply
,并勾选上传unk_fix.mol2
,选择Next Step
。 - 保持默认参数,选择
Next Step
。 - 保持默认参数,选择
Next Step
。 - 勾选
GROMACS
后,选择Next Step
。 - 下载压缩包,解压后找到
gromacs
文件夹,提取以下三者并上传到超算平台:step3_input.gro
(改名为:solv_ions.gro
)topol.top
toppar
文件夹
能量最小化和建立索引
gmx grompp -f em.mdp -c solv_ions.gro -p topol.top -o em.tpr -maxwarn 2
gmx mdrun -v -deffnm em
# gmx mdrun -v -deffnm em -nt 8
gmx make_ndx -f em.gro -o index.ndx
输入“1 | 13”(Protein 和 UNK)、“14 | 15”(SOD 和 Water)
输入“q”保存并退出。
NVT、NPT、正式模拟
gmx grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -n index.ndx -o nvt.tpr
sbatch -p gpu_4090 --gpus=1 nvt.sh
# squeue查看任务运行状态
gmx grompp -f npt.mdp -c nvt.gro -t nvt.cpt -r nvt.gro -p topol.top -n index.ndx -o npt.tpr
sbatch -p gpu_4090 --gpus=1 npt.sh
gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -n index.ndx -o md.tpr
sbatch -p gpu_4090 --gpus=8 md.sh
矫正轨迹
gmx trjconv -s md.tpr -f md.xtc -o md_nojump.xtc -center -pbc nojump -ur compact
选择Protein后回车,再选择System后回车
gmx trjconv -s md.tpr -f md_nojump.xtc -o md_noPBC.xtc -center -pbc mol -ur compact
选择Protein后回车,再选择System后回车
gmx trjconv -s md.tpr -f md_noPBC.xtc -o md_fit.xtc -fit rot+trans
选择Backbone后回车,再选择System后回车
RMSF、RMSD计算
# 计算横坐标为residue的RMSF
gmx rmsf -s md.tpr -f md_noPBC.xtc -n index.ndx -o fws-rmsf.xvg -ox fws-avg.pdb -res -oq fws-bfac.pdb
选Protein后回车
# 计算蛋白骨架,时间为ns的RMSD
gmx rms -s md.tpr -f md_noPBC.xtc -o rmsd.xvg -tu ns
选择4后回车,再选择4后回车
# 计算蛋白骨架,时间为ps的RMSD
gmx rms -s md.tpr -f md_noPBC.xtc -o rmsd_ps.xvg
选择4后回车,再选择4后回车
# 计算配体的RMSD
gmx rms -s md.tpr -f md_noPBC.xtc -n index.ndx -o rmsd_Lig.xvg -tu ns
选择13后回车,再选择13后回车。
回旋半径、氢键计算
# 计算回旋半径gyrate
gmx gyrate -s md.tpr -f md_noPBC.xtc -o gyrate.xvg
选择4后回车
# 计算氢键变化
gmx hbond -f md_noPBC.xtc -s md.tpr -num hbond_num.xvg
选择Protein后回车,选择UNK后回车
# gmx hbond -f md_noPBC.xtc -s md.tpr -num hbond_num.xvg -nt 8
自由能形貌图计算
chmod +x pc_combine.py
python ./pc_combine.py rmsd_ps.xvg gyrate.xvg output.xvg
# 输出done
gmx sham -tsham 310 -nlevels 100 -f output.xvg -ls gibbs.xpm -g gibbs.log
dito xpm_show -f gibbs.xpm -3d -ip -o gibbs_3d.pdf
dito xpm_show -f gibbs.xpm -ip -o gibbs.pdf
轨迹动图和MMPBSA计算(可选)
# 生成轨迹动图
gmx trjconv -s md.tpr -f md_fit.xtc -n index.ndx -o movie.pdb -dt 100
选索引组后回车
# 生成MMPBSA
source activate gmxMMPBSA
sbatch -N 10 -p c-16-1 -n 160 -c 1 gmx_MMPBSA.sh
结果可视化
对于轨迹动画movie.pdb
,直接pymol
,然后在命令行里面输入如下:
intra_fit movie
smooth
smooth
然后preset->ligand site/cartoon
即可,一般需要3-5分钟。