#! /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)
v=Vina(sf_)
该行创建将用于后续taks的Vina对象。更确切地说,它还指定将用于分子对接的力场,这里将使用Vina Force Field。在这种情况下,您想使用另一个力场(例如Autodock4或Vinardo),只需用AD4或Vinardo替换Vina。可以定义其他选项,例如分子对接过程中将使用的CPU数量。
v.set_receptor('1iep_receptor.pdbqt')
在这里,我们正在加载一个称为1iep_receptor.pdbqt的PDBQT文件,其中包含受体。如有必要,也可以通过使用v.set_receptor('1iep_rigid.pdbqt','1iep_flex.pdbqt')同时加载包含灵活侧链的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])
下一行用于首先加载一个包含称为1iep_ligand.pdbqt的配体的PDBQT文件,然后计算每个配体原子类型的亲和力地图,这些原子类型累积到Vina ForceField .
当我们想在批处理配体(又称虚拟筛选)时,这非常有用,但是我们不一定要事先知道Thoses配体需要什么原子类型。另外,您还可以使用set_ligand_from_string()函数使用PDBQT格式的分子字符串加载分子。