Pyrx [1] is a virtual screening software that allows the docking of multiple ligands with a target protein. Previously, we provided an article on the installation of Pyrx in Ubuntu. In this article, we are going to perform protein-ligand docking using Pyrx.
Here, we will dock one ligand only for demonstration. For virtual screening of multiple ligands, follow the same steps as explained in this tutorial except you will have to load all ligands.
Downloading Protein
We are going to use the same protein as we have used in our previous docking tutorials, i.e., human serum albumin (HSA). The PDB ID is 2BXA. It is complexed with a compound called 3-carboxy-4-methyl-5-propyl-2- furanpropanoic acid (CMPF).
- Download the structure of HSA from PDB (www.rcsb.org).
- You can either download the PDB format as usual or download the PDBx/mmCIF format if you face any problems regarding the loading of the structure.
- Save this file in a folder.
Downloading ligand
We are going to dock Sodium Octanoate (SO) with the HSA.
- Go to Pubchem (www.pubchem.ncbi.nlm.nih.gov).
- Search for the compound “Sodium Octanoate”.
- Download the 3D conformer of the same in SDF format.
- You can download the structure from another database as well such as ZINC.
Preparing the protein
To prepare the protein for docking, you need to know the binding site/ binding residues. They can be present in a single chain of a protein or might involve two. Read the associated paper published for that structure. It consists of all structural details about it. If there is no literature available on the binding site of that protein, then go for the prediction. Read this article for more information.
In the present case, you can also get all binding residues by visualizing the HSA-CMPF complex in Pymol and note down all interacting residues. But always try to find the binding sites in published papers.
Since we already know the binding sites of HSA, we can proceed to prepare our protein.
- Open the PDB file and remove HETATOMS.
The structure we are using is a crystal structure complexed with ligand(s), therefore, to dock the desired ligand with the protein in that particular position we need to remove the bound ligand by removing hetatoms from the PDB file. If we will dock our ligand without removing the already complexed ligand, then we will not get the correct results. We can also easily remove ligands by visualizing the protein in PyMol.
Read this article to know how to remove hetatoms. - Remove extra chains
We will keep only one of the four chains (here, Chain A was taken) and remove the rest of the three chains. The chains are removed from the protein structure just to avoid complexity. Read this article to know how to remove chains. - Save the file
Now save the file as “protein.pdb”.
We have prepared our protein structure to proceed further for docking. Now let’s prepare our ligand.
Preparing the ligand
Since we need the protein and the ligand in a .pdb format, therefore, we have to convert the ligand from SDF to pdb format. We will use PyMol for this purpose and never use online converters because they may ruin your ligand file. You can also use Openbabel.
- Open PyMol and open the downloaded ligand.
- Click on “File” –> “Save Molecule” –> select the molecule –> click “OK”.
- Save it in the same folder as ‘ligand.pdb’ or with any other name.
Performing docking using Pyrx
We will be using Autodock Vina for docking. It is provided in Pyrx that you can dock using the Vina algorithm. Run Pyrx GUI and follow the steps explained below.
Loading protein and ligand
- Go to ‘File’ –> ‘Load Molecule’ or just click on the very first icon given on top left corner.
- Select the downloaded protein structure. Here, named as ‘protein.pdb’.
- Again go to ‘File’ –> ‘Load Molecule’ or just click on the very first icon given on top left corner.
- Select the converted ligand structure. Here, named as ‘ligand.pdb’.
Defining protein and ligand
You will see the loaded protein and ligand under the ‘Molecules’ tab. Now we have to define which one is protein and which one is the ligand. To do that
- Right-click on protein –> ‘Autodock’ –> ‘Make Macromolecule’.
- Right-click on ligand –> ‘Autodock’ –> ‘Make Ligand’.
After that you will notice under the ‘Autodock’ tab, it has prepared their PDBQT files itself.
Defining grid box
Look at the ‘Controls’ panel given at the bottom under the ‘Select molecule’ tab. You will see “1 ligand selected” and the path of the selected protein.
- Now, click the ‘Forward’ button present at the bottom right corner. You will see a grid box on the display screen.
- Go back to the ‘Molecules’ tab on the right side. Click on the “+” sign of the loaded protein. You will see all the residues present in the chain.
- Select the binding residues by right-clicking on the residue –> Display –> Label –> Atoms. You will see the atoms appearing on the protein.
- Now adjust the grid box accordingly such that all the selected residues come inside the box. You don’t have to enclose the ligand inside the grid box.
Running Vina for docking
You can set the exhaustiveness by entering an appropriate number in the box given on the bottom left. After adjusting everything, click on the ‘Forward’ button. It will start docking and will display the processing. After the docking is finished, you will see the poses and their binding affinities in the bottom panel. It will show all nine poses along with other values such as RMSD.
Now to analyze these results, you will have to open the PDB/PDBQT file of the protein and the vina output file in Pymol. For analyzing results, read this article. You can also analyze these results in Discovery Studio Visualizer, read here to analyze docking results in DS Visualizer.
References
- https://pyrx.sourceforge.io/home
Further Reading
vs_Analysis.py: A Python Script to Analyze Virtual Screening Results of Autodock Vina