Introduction
Before performing molecular docking with AutoDock Vina, both the receptor (protein) and ligand (small molecule) structures must be properly prepared. This preparation includes assigning partial atomic charges, adding hydrogen atoms, and defining the flexible bonds of the ligand.
AutoDock Vina uses the PDBQT format, which contains atomic coordinates, atom types, partial charges, and information about molecular flexibility.
In this exercise, we will use Meeko to prepare the receptor and ligand structures and Open Babel to convert molecular file formats when necessary.
1. Prepare a receptor molecular
For molecular docking, the protein structure must be prepared by assigning appropriate atom types and partial atomic charges.
First, open the downloaded PDB file and remove atoms that are not required for docking, such as unrelated heteroatoms, water molecules, and other unnecessary components. In particular, if a protein–ligand complex structure is used, the bound ligand should be removed before preparing the receptor.
You can edit the PDB file using the text editor in JupyterLab or a molecular visualization program such as PyMOL. Save the cleaned structure as receptor.pdb.
Next, execute the following command in a Jupyter notebook:
!mk_prepare_receptor.py -i receptor.pdb -o receptor -p --default_altloc A
This command prepares the receptor and generates a receptor.pdbqt file for AutoDock Vina.
Note on alternative atom locations: Some experimentally determined protein structures contain atoms with alternative positions (altlocs), typically labeled A and B. The option --default_altloc A selects conformation A when alternative positions are present. This simplification is acceptable for this exercise. However, for rigorous molecular docking studies, alternative conformations should be carefully evaluated based on occupancy, structural quality, and their potential effects on ligand binding.
In addition, appropriate protonation states, missing atoms or residues, and biologically important cofactors should be considered during receptor preparation.
2. Prepare a ligand molecule
For docking with AutoDock Vina, the ligand must also be prepared by assigning atom types and partial atomic charges and defining its rotatable bonds. Unlike the receptor, the ligand is generally treated as a flexible molecule during docking.
We will use Meeko’s mk_prepare_ligand.py script to prepare the ligand.
!mk_prepare_ligand.py -i ligand.sdf -o ligand.pdbqt
This command converts the ligand structure into PDBQT format, including the information required for flexible ligand docking.
Convert ligand file formats
The ligand preparation script accepts molecular structure files such as SDF, with SDF being the recommended format.
If your ligand is available in another format, such as PDB, it should first be converted to SDF.
Open Babel (obabel) is a molecular file conversion tool that supports various chemical structure formats.
For example, to convert a PDB file to SDF, execute:
!obabel ligand.pdb -O ligand.sdf -h
Here, the -h option adds hydrogen atoms to the molecule.
3. Expected files
After completing the preparation steps, you should have the following files:
| File | Description |
|---|---|
receptor.pdb | Cleaned protein structure |
receptor.pdbqt | Prepared receptor for AutoDock Vina |
ligand.sdf | Ligand structure with chemical bond information |
ligand.pdbqt | Prepared ligand for AutoDock Vina |
The receptor.pdbqt and ligand.pdbqt files will be used in the subsequent molecular docking simulation.
