Ligand docking with Smina
Moleculer Docking is a powerful technique for studying potential ligand-receptor interactions. It can be done with free tools. In this blog post I showcase the docking program Smina, a fork of Autodock Vina.
Automated docking is the process of prediction of how one molecule binds to another in a stable complex. For small drug-like molecules this process has been used in drug discovery project for evaluation of proposed ligands and also for in silico screening of virtual compound libraries to find potential ligands for a protein target with a known molecular structure.
In this blog post I’ll take a free program for a test drive. Autodock Vina (http://vina.scripps.edu/) is an open-source program for molecular docking of small ligands to protein targets. Since it was open sourced there have been a couple of forks. Quick Vina 2 aims at accelerating Autodock Vina , VinaLC added MPI for parallel execution on clusters, and Smina added better control of scoring terms as well as a range of convenience functions for easy use from the command line (https://sourceforge.net/projects/smina). Smina, open-babel and PyMOL will be used. Smina comes with a static version for Linux, so it should just be placed in the path of the command line, No dependicies and libraries 😉
For this test the PDB file 1OYT is used. It is a complex between RECOMBINANT HUMAN THROMBIN and FLUORINATED INHIBITOR. Thrombin is involved in the coagulation cascade and an inhibitor for this protein could potentially as a “blood thinner” to prevent or dissolve blood cloths in stroke and to prevent myocardial infarction.
Pymol is used to download the PDB file, remove water molecules and split it into the ligand and receptor molecule.
fetch 1OYT remove resn HOH h_add elem O or elem N select 1OYT-FSN, resn FSN #Create a selection called 1OYT-FSN from the ligand select 1OYT-receptor, 1OYT and not 1OYT-FSN #Select all that is not the ligand save 1OYT-FSN.pdb, 1OYT-FSN save 1OYT-receptor.pdb, 1OYT-receptor
Previously I have always used the prepare_receptor4.py and prepare_ligand4.py
scripts that come as part of Autodock Tools, but newer versions of numerical python have dropped support for oldnumeric which was a module that was made for backward compatibility years ago. Instead open-babel can be used to convert from .pdf format into .pdbqt format. The format is similar to PDB format, but also contains information about what torsions should be active and the assigned charge for each atom. Vina and Smina does not use the same scoring function as Autodock and do not use the charges at all for the default scoring function. Open-babel fast gives us the two needed .pdbqt files.
obabel 1OYT-receptor.pdb -xr -O 1OYT-receptor.pdbqt obabel 1OYT-FSN.pdb -O 1OYT-FSN.pdbqt
Docking with Smina is done from the command line and is very easy to script thanks to the possibility to calculate the box from an existing ligand. The –autobox_ligand and –autobox_add switches are used to define a docking box that is 8Å greater than the ligand specified. The –exhaustiveness 16 switch tells Smina to use more time on finding the best scoring binding mode of the ligand in the binding site, default is 8.
smina.static -r 1OYT-receptor.pdbqt -l 1OYT-FSN.pdbqt --autobox_ligand 1OYT-FSN.pdbqt --autobox_add 8 --exhaustiveness 16 -o 1OYT-redock.pdbqt
After a couple of minutes Smina has docked the ligand. The .pdbqt file can be loaded in Pymol and compared with the already known binding mode.
pymol 1OYT-receptor.pdb 1OYT-redock.pdbqt 1OYT-FSN.pdb
As can be seen on the image to the right, Smina did a good job of finding the correct binding mode as the top scoring pose. However, the test was a redocking which is the easiest among tests of docking performance. Using other proteins, ligands and PDB file alternatives can give other results. The docking algorithm also has a inherent dependence on the initial states and thus on the random seed, so proceed with caution 😉