資料來源
首選看這個,可以跟著手操一波小分子的下載和軟件的使用(主要錄制的比較好)
【虛擬篩選】使用Autodock_vina進行批量分子對接_嗶哩嗶哩_bilibili
但是接著就要看這個(上面那個不是很全)蛛蒙,這個大佬最詳細(蛋白的處理看這個)
小分子虛擬篩選與分子模擬課程——4.批量小分子對接_嗶哩嗶哩_bilibili
基礎知識:比如為何需要pdbqt格式
分子對接基礎知識 - xiaojikuaipao - 博客園 (cnblogs.com)
安裝的指導文件看下面這些
vina的指導文檔,必看(提供了好幾種安裝方式阴挣,一種不行換一種帆谍,其實操作非常詳細了,很多都不一定需要手動調整榕酒,直接Linux里面用就行)
Installation — Autodock Vina 1.2.0 documentation (autodock-vina.readthedocs.io)
vina的指導pdf
https://autodock-vina.readthedocs.io/_/downloads/en/latest/pdf/
Open Babel的安裝
Open Babel的安裝與使用 - 云+社區(qū) - 騰訊云 (tencent.com)
一甲馋,蛋白的下載和處理
1. PDB文件內容
文獻搜索埂奈,或者網(wǎng)站中找,但老實說它的搜索功能有點奇怪定躏,有時候不同關鍵詞(但是應該指向的是一種東西)不同結果
RCSB PDB: Homepage
2.PDB文件的處理
2.1 去除原有小分子ligand+加氫(polar)+導出為pdbqt文件
Discover_studio
【八分熟肉】【分子對接】使用Discovery_studio進行分子對接前蛋白質預處理_嗶哩嗶哩_bilibili
或者pymol 處理
還要安裝windows版本的MGLtools账磺,主要是為了導出pdbqt文件芹敌,操作如下
3.對接的口袋哪里找
用這個網(wǎng)站預測,然后下載活性區(qū)域
Zentrum für Bioinformatik: Universit?t Hamburg - Proteins Plus Server
4.使用autodocktools進行活性口袋的預測,得到配置文件config.txt
receptor=
ligand=
center_x=100.657
center_y=6.351
center_z=40.898
size_x=46
size_y=34
size_z=28
exhaustiveness=16
num_modes=9
energy_range=4
二垮抗,軟件的安裝
vina 和openbabel的安裝
2.11 vina的conda和pip安裝
這里注意要是python3.7的環(huán)境氏捞,因為最新版本已經(jīng)到10了,所以如果直接安裝python3的話,會裝到python3.10,會有報錯
conda create -n vina2 python=3.7
conda activate vina2
pip install -U numpy vina
但是奇葩的是雖然安裝上箱玷,但是輸入vina是沒有辦法調用的稼稿,不知道什么原因坑律,但是好在官網(wǎng)提供了其他方式,直接下載即可用
Installation — Autodock Vina 1.2.0 documentation (autodock-vina.readthedocs.io)
2.12 vina的直接使用
Releases · ccsb-scripps/AutoDock-Vina (github.com)
注意要給權限
chmod 755 vina_1.2.3_linux_x86_64
調用出結果即可
./vina_1.2.0_linux_x86_64 --help
## 或者使用絕對路徑
2.13 官網(wǎng)下載vina(最佳方式,推薦)
使用了半天才發(fā)現(xiàn),官網(wǎng)這個下載才是最佳的栋烤,Linux下載解壓之后,里面還有一個叫vina_split的腳本挺狰,這個很重要明郭,因為如果你從zinc上下載的是pdbqt格式的話,下載的pbdqt格式是一個整體丰泊,需要用這個軟件去分割
Download AutoDock4 – AutoDock (scripps.edu)
2.13 openbabel
用來解壓mol文件薯定,因為我們從zinc數(shù)據(jù)庫下載的是一個mol2的壓縮文件,要用這個進行解壓
conda install -y openbabel ## 用來解壓mol文件
###常用分子格式轉換命令瞳购,和上下文其實關系不大话侄,屬于后來補充的一些操作方法
mol2格式轉pdbqt格式:
obabel -imol2 ligand.mol2 -opdbqt -O ligand.pdbqt
pdb格式轉mol2格式:
obabel -ipdb ligand.pdb -omol2 ligand.mol2
smiles格式轉2D的sdf格式:
obabel ligands.smi -O ligands.sdf –gen2d
smiles格式轉3D的sdf格式:
obabel ligands.smi -O ligands.sdf –gen3d
sdf格式轉smiles格式,刪除氫:
obabel ligands.sdf -osmi -O ligands.smi -d
sdf格式轉smiles格式学赛,添加氫:
obabel ligands.sdf -O ligands.smi -h
2.2 MGLTools的安裝
用來將mol2轉換為pdbqt文件满葛,注意看下面的這個教程的操作
直接下載,然后解壓即可罢屈,需要用到其中的prepare_ligand4.py
Downloads – mgltools (scripps.edu)
Linux上安裝MGLtools - 知乎 (zhihu.com)
bash $MGL_ROOT/install.sh
!后面會出現(xiàn)install.sh后面會出現(xiàn)幾個alias,要將其放入.bashrc篇亭,還要source一下
這個軟件因為是python2寫的缠捌,所以注意需要用到python2的環(huán)境,所以按照上面的教程設置2也行,或者直接創(chuàng)建conda的python2的環(huán)境
conda create -n vina3 python=2.7
三译蒂, zinc小分子數(shù)據(jù)庫的下載
如何從ZINC數(shù)庫(www.zinc15.docking.org)下載虛擬篩選化合物庫 - 知乎 (zhihu.com)
按照第一個視頻上面的操作就好曼月,我們下載的是mol2格式,通過fda認證的小分子藥物
ZINC (docking.org)
四.基礎操作
4.1 obabel解壓縮
首先我們下載的是一個fda.mol2文件柔昼,這是個大的壓縮文件,要使用obabel 進行解壓縮成若干個小的mol2文件
obabel -i mol2 fda.mol2 -o mol2 -O fda.mol2 -m
注:其實看上面就知道其實不需要prepare這個obabel 也可以將mol2轉換為pdbqt
4.2 使用MGLTools中的小工具循環(huán)將mol2文件轉換為pdbqt文件
for i in *mol2;do echo $i; pythonsh ~/Biosfot/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_ligand4.py -l $i $i.pdbqt ;done
4.3 進行分子對接
因為我使用的是不需要安裝的vina哑芹,也就是GitHub下載的版本,這個版本又和視頻之中的不一樣捕透,會少了一個log選項聪姿,所以你如果是按照視頻之中的安裝碴萧,那么分子對接的命令和我是不一致的,help一下命令,看看參數(shù)
AutoDock Vina v1.2.3
Input:
--receptor arg rigid part of the receptor (PDBQT)
--flex arg flexible side chains, if any (PDBQT)
--ligand arg ligand (PDBQT)
--batch arg batch ligand (PDBQT)
--scoring arg (=vina) scoring function (ad4, vina or vinardo)
Search space (required):
--maps arg affinity maps for the autodock4.2 (ad4) or vina
scoring function
--center_x arg X coordinate of the center (Angstrom)
--center_y arg Y coordinate of the center (Angstrom)
--center_z arg Z coordinate of the center (Angstrom)
--size_x arg size in the X dimension (Angstrom)
--size_y arg size in the Y dimension (Angstrom)
--size_z arg size in the Z dimension (Angstrom)
--autobox set maps dimensions based on input ligand(s) (for
--score_only and --local_only)
Output (optional):
--out arg output models (PDBQT), the default is chosen based
on the ligand file name
--dir arg output directory for batch mode
--write_maps arg output filename (directory + prefix name) for
maps. Option --force_even_voxels may be needed to
comply with .map format
Misc (optional):
--cpu arg (=0) the number of CPUs to use (the default is to try
to detect the number of CPUs or, failing that, use
1)
--seed arg (=0) explicit random seed
--exhaustiveness arg (=8) exhaustiveness of the global search (roughly
proportional to time): 1+
--max_evals arg (=0) number of evaluations in each MC run (if zero,
which is the default, the number of MC steps is
based on heuristics)
--num_modes arg (=9) maximum number of binding modes to generate
--min_rmsd arg (=1) minimum RMSD between output poses
--energy_range arg (=3) maximum energy difference between the best binding
mode and the worst one displayed (kcal/mol)
--spacing arg (=0.375) grid spacing (Angstrom)
--verbosity arg (=1) verbosity (0=no output, 1=normal, 2=verbose)
Configuration file (optional):
--config arg the above options can be put here
Information (optional):
--help display usage summary
--help_advanced display usage summary with advanced options
--version display program version
先簡單測試一波一個分子能不能操作
./vina_1.2.3_linux_x86_64 --config config.txt --ligand fda666.pdbqt --out test/666.pdbqt
可以末购,那么循環(huán)操作就可以了
for i in *pdbqt;do ./vina_1.2.3_linux_x86_64 --config config.txt --ligand $i --out test/$i.log ;done
不過很明顯從參數(shù)來看vina 1.2版本以上是內置了使用cpu并行運算的破喻,一次搞n個分子
但直接使用Linux和python的并行操作也可以
補充:vina可以在python中使用的腳本
Python scripting — Autodock Vina 1.2.0 documentation (autodock-vina.readthedocs.io)
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# My first example with AutoDock Vina in python
#
from vina import Vina
v = Vina(sf_name='vina')
v.set_receptor('1iep_receptor.pdbqt')
v.set_ligand_from_file('1iep_ligand.pdbqt')
v.compute_vina_maps(center=[15.190, 53.903, 16.917], box_size=[20, 20, 20])
# Score the current pose
energy = v.score()
print('Score before minimization: %.3f (kcal/mol)' % energy[0])
# Minimized locally the current pose
energy_minimized = v.optimize()
print('Score after minimization : %.3f (kcal/mol)' % energy_minimized[0])
v.write_pose('1iep_ligand_minimized.pdbqt', overwrite=True)
# Dock the ligand
v.dock(exhaustiveness=32, n_poses=20)
v.write_poses('1iep_ligand_vina_out.pdbqt', n_poses=5, overwrite=True)
之后還有分子動力學模擬,之前看過一篇文獻叫Beware of docking!
盟榴,大概意思就是docking只能提供一個切面曹质,分子動力學模擬比較可靠一點。所以如果想要深入的話擎场,可以以分子對接作為篩選羽德,篩選前面幾個分子然后去做分子動力學模擬。