Child pages
  • Glide Docking Tutorial: Docking on an RNA receptor
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Glide is a well-known ligand docking program developed by SCHRODINGER ( This tutorial describes how to dock a library of small ligands on a RNA receptor (also applicable to protein receptors). We will use both the ugly command-line approach and the graphical user interface maestro program throughout the docking procedure and we will see that there are advantages for both. This tutorial is for a docking beginner and you can refer to the online user manuals if you are seeking more details or flexibility for any step.

The docking procedure with glide has some different steps:

A-    Receptor preparation

B-   Grid Generation

C-   Ligands preparation

D-   Docking  and Analysis of docking poses

The first step to use glide as well as other related SCHRODINGER programs in unix environment is to have the SCHRIDONGER address in your path. So if you are using CHPC Utah, you can add the following lines to your ~/.tcshrc file.

setenv SCHRODINGER //uufs/


set path = ($SCHRODINGER $path)


Receptor preparation

Glide is optimized for protein receptors, but it can also prepare nucleic acids. We will prepare the crystal structure of domain 2 of HCV IRES RNA with the PDB code 3TZR. To start preparing, run maestro program from your command line. The following window will open in few seconds:

Note: If it didn’t work, make sure that you have already defined the environmental variable $SCHRODINGER and have added it to your path (Refer to section 1). Also, make sure that you have already run your X-forwarding program, if you are using a windows machine.

Then open “Project” menu and choose “Get PDB…”: 

Then enter 3TZR in the PDB ID section of the new window and click “Download”:

It may tell you that “Problems found while converting file. Converted structure may need some fixing.” Click OK and see your receptor. You can rotate the structure by holding the middle mouse button. Also you can move the structure by holding the mouse right button. Within your structure, you see an orange part which is the ligand in the crystal structure. It is shown in orange because it is a non-standard residue. You see also a couple of red residues in your structure which are the residues at 5’ tails of the strands. They are shown in red because they do not have phosphates.

First, save the current structure as the original one by opening the “Project” menu and choosing the “Export Structures…” as shown:

The export window will appear in which you can save your structure with the name of “3TZR_original” with MAE format which is a standard format generated and recognized by different SCHRODINGER programs. It is also a good idea to export the original receptor as a PDB file as well, if you want to do some steps using the command line approach.

Then you need to save the ligand as a separate file for later treatment. To do so, all you need is to press letter “R” and then select one or few atoms from the orange residue. This way, you select the whole ligand residue. Then, you can invert selection by opening the “Edit” menu and choosing the “Select Atoms” and “Invert”, respectively: 

When selection is inverted, you can delete the unwanted atoms by pressing “Delete” button on your keyboard and save the remaining ligand as a separate file with the same “Export Structures…” tool as before, but this time in PDB format with the name lig.pdb.

Now you can close this project by opening the “Project” menu and choosing “Close”. Then you need to import the 3TZR_original.mae file again by opening the same menu and choosing “Import Structures…”. You should select and delete unwanted residues like ligand, water molecules, Mg+2 ions and sulfate ions, to have a trimmed receptor. To do that, you can open the “Edit” menu and choose “Select Atoms” and then “Select…”. This will open a new window:

Open the “Residue” tab in this window and choose the “Residue type” on the left panel. Then choose MG in the right panel and click “Add” on top right. Then select “HOH”, “SO4” and “SO0” and click “Add” for each one and then click OK. Then you can press “Delete” button on your keyboard to delete the selected unwanted residues.

You can do what we have done so far with your favorite molecular viewer programs like Chimera as well. Also it is possible to use your command line to do the same thing. If you choose to use the command line, you can use your favorite text editor to delete the lines related to the unwanted residues in the original PDB (3TZR) file and also copy the lines related to the ligand atoms into a new PDB file. Then you can use maestro to change the formats to MAE.

Using either approach mentioned above, you should now have one MAE file for the receptor and PDB one for the ligand.

It is time to use the program prepwizard to prepare the receptor. If you decide to use maestro to call prepwizard, you need to open the “Workflows” menu and choose “Protein Preparation Wizard…” or just simply click on the “Prep Wiz” on the toolbar. The following window will appear:

Make sure to check the “Add hydrogens” option whenever you prepare a crystal structure as such structures do not contain hydrogen atoms. You do not need to check most of the options for a typical RNA receptor. Now you just need to click on “Process” and wait a few seconds. This should assign OPLS atom types, names and charges to your receptor atoms and do a fast minimization after hydrogen atoms are added. Then the color code for the receptor atoms will change based on the recognized atom types:

You can now save the prepared receptor with the “Export Structures…” as you did before. Make sure to save it as a MAE file.

Alternatively, you could also use your command line to run prepwizard program as follows:


$SCHRODINGER/utilities/prepwizard -WAIT -fix rec.pdb rec_prep.mae


This assumes that you have your unprepared receptor as rec.pdb in the current directory and will make the prepared receptor as rec_prep.mae.

–WAIT in all SCHRODINGER programs tells the shell not to return a prompt until the job is done or is submitted to a abatch queue.

 –fix fixesd heavy atoms and samples hydrogens only.


Grid Generation

Glide is a grid-based docking program. So you need to define a grid on which you expect the ligand binds (usually the experimental binding site). To define the grid in maestro, you need to choose “Glide” and then “Receptor Grid Generation…” from the “Applications” menu. Doing so, a new window will pop up:

Since you have already chopped off the ligand, you should uncheck the “Pick to identify ligand” box. Also sometimes in future you may need to generate your own partial charges for the receptor (for example from Amber ff99SB). In such cases, you have the option to check the box for “Use input partial charges”.

The other important thing to define is the coordinate for the center of the grid box. You can define that in the “Site” tab of the same window:


Usually you want the grid box to be centered at the coordinates average of the ligand in the experimental structure. Again, since you have chopped off the ligand, you can manually enter the coordinates in “Supplied X,Y,Z coordinates”. You can manually calculate the average coordinates from the ligand file or the following awk command can calculate it for you from the ligand PDB file (lig.pdb):


grep HETATM lig.pdb| grep "SS0" | awk '{sumx+=$7; sumy+=$8; sumz+=$9; print sumx/NR, sumy/NR, sumz/NR}'


In future cases make sure to replace the “lig.pdb” with your ligand pdb file name and “SS0” with your residue name in that PDB file. Running the above command will give you the following result:


8.084 -11.593 -9.326
7.427 -11.3415 -9.5095
9.35333 -9.94833 -10.5283
10.0158 -9.08425 -10.9932
9.6542 -8.1856 -11.1736
10.0362 -7.65283 -11.3647
9.77371 -7.53614 -11.451
9.89138 -7.12825 -11.5402
9.45744 -6.96944 -11.5552
9.4634 -6.779 -11.6057
9.81127 -7.20527 -11.6244
9.79025 -7.14667 -11.6647
9.87254 -7.15108 -11.7122
9.69664 -7.04721 -11.7219
9.77573 -7.15873 -11.7631
9.93169 -7.29562 -11.7956
10.132 -7.35853 -11.8014
10.2502 -7.53594 -11.7764
10.1144 -7.57153 -11.7899
10.2579 -7.8329 -11.7656
10.4005 -8.00629 -11.837
10.2673 -8.04723 -11.7842
10.119 -8.145 -11.747
9.94225 -8.31529 -11.6683


The last row (9.94225 -8.31529 -11.6683) is the average coordinate used for the center of your grid box.

In the “Advances Settings…” on the same tab, you can change the size of the box. You can change it in future cases depending on the size of the ligands and the area of the receptor to which you suspect the ligand can bind. However, let’s stick to the default 10Å edges for now.

Now you can generate the grid by clicking on the “Start…” button. This will give you a new window in which you can specify the grid generation job name:

You are good to hit “Start” now. But you also have the option to write a grid input file to use from the command line later. To do so, you could click on “Write…” instead of “Start…” on the main “Receptor Grid Generation” window. An input file like this is generated in this way:



INNERBOX 10, 10, 10

ACTXRANGE 30.000000

ACTYRANGE 30.000000

ACTZRANGE 30.000000

GRID_CENTER 9.940000, -8.310000, -11.660000

OUTERBOX 30.000000, 30.000000, 30.000000



Then, you can run glide from the command line to generate the grid file:


Either way, command line or maestro, the grid generation job finishes with generating five files: which is the input grid file, grid.log which is your log file a grid.out, a grid.maegz which is the viewable grid structure and a that is the grid file you will need for the next steps.


Ligand Preparation

The ligand should also be prepared with the same force field and the same charge type that the receptor has been prepared. However, first you need to make sure that maestro understands the ligand the same way you expect it! When you import the ligand file (lig.pdb) into maestro, it is shown in orange. From your knowledge and from the literature, (J. Med. Chem. 2005, 48, 7099-7102, entry 12) you expect the middle ring to be an aromatic one and also there should be a double bond in the five-membered ring: 

If you do not fix this, you will end up with a lot of unexpected ring conformations in the prepared ligands. So choose “2D Sketcher” with a hammer sign from the “Edit” menu or from the tool bar:

A new window will pop up:

In this window, you can edit your ligand easily. In this case, we just need to make some double bonds; so you need to choose the draw tool (hit in the above picture) and click on the bonds you need to change. 2D sketcher can also be used as a simple chemical drawing tool if you do not access fancier software such as Chem Draw. You can take a snapshot from your molecule thought the “File” menu in the same window. When you are done with editing, your ligand should look like this:

Now you just need to click on “Replace Workspace” to update your ligand. Note that the color code for atoms has been changed and hydrogen atoms have been added. Export this updated ligand as a MAE file with the name lig.mae.

If you choose to continue on maestro to prepare this ligand, choose “LigPrep…” from the “Applications” menu:

As a result, a new window will appear:

Choose the option “Workspace” in the “Use structures from:” section. (If you did not have the ligand already in the workspace, you could choose to load it from file and browse it.)

One important step in ligand preparation is determining the charge state of the ligands. In case you have a pre-determined charge state for your ligand from some experimental data, you can choose “Do not charge”. Also you have the option to neutralize your molecule. But let’s think that we do not know much about this ligand and let LigPrep be more flexible. So choose “Generate possible states at target pH:” and use the default values of 7.0 and +/- 2.0. This will generate all possible charge states for the ligand in the range of pH 5.0 to 9.0 according to the pKa values of the different chemical groups on the ligand.

There are two different auxiliary SCHRODINGER programs for determining the charge states: Ionizer and Epik. Epik is a more advanced one, which recognizes wider range of chemical groups. You can also separately run Epik if you need just to estimate the pKa values of chemical groups on a given ligand. Choose Epik to prepare this ligand.

Now you can choose how you want LigPrep to make stereoisomers of the ligand. You can “Retain the specified chiralities”, “Determine chiralities from 3D structure”, or “Generate all combinations”. With the first choice, it is possible to select some chiral centers and let them be untouched during preparation. With the second choice, it will keep all chairalities untouched. But let’s choose the last option to let it make all stereoisomers. From our chemical knowledge, we know that this ligand has only one chiral center and thus two enantiomers. But let’s keep the default value of 32 for the maximum number of stereoisomers it can generate.

We know that some rings can have different conformations that are different in energy; the lower the energy, the more populated that conformation. You can choose how many ring conformations per ligand you want LigPrep to generate. It will rank the ring conformations, based on their energies and includes the more populated ones in the output library. Let’s keep it simple now and avoid having possible unusual and high energy conformations. So use the default value 1 for the ring conformation option. This will only include the ring conformation with the lowest energy level.

Finally, you can choose the output file to be made in SDF or MAE format. SDF is a much simpler and more universal format, but MAE is specific to SCHRODINGER programs. Since we are going to use glide for docking, let’s choose the output format to be MAE (Maestro).

Now you are good to hit “Start…”. It will make a new window pop up:

You can give your job a name and choose how you want the new ligand conformations be presented in maestro and where to run your job. Choose “localhost” from the list, which refers to the machine from which you have run maestro.

Hit “Start” and wait less than a minute so that the job is complete.

You will have some more flexibility if you run LigPrep from the command line. After editing the ligand with “2D Sketcher”, running the following command almost does the same thing you did in maestro, and you can add much more options to it based on your needs:

$SCHRODINGER/ligprep –WAIT –W e,-ph,7.0,-pht,2.0 –epik –i 1 –r 1 –nz –bff 14 –ac –imae lig.mae –omae ligprep.mae

-W e,-ph,7.0,-pht,2.0 tells LigPrep to use Epik program to generate the ionization states with the pH range mentioned before. You could use “i” instead of “e” after –W to use Ionizer instead of Epik.

-Epik again tells LigPrep to use Epik for charge state treatments.

-i 2 tells LigPrep to both neutralize and ionize the ligands.

-r 1 tells it to generate up to only 1 ring conformation per ligand.

-nz tells not to tar intermediate files. If you encounter an error, you can delete this argument to track the intermediate files and find the cause of error.

-bff 14 asks it to use OPLS 2005 force field to prepare the ligands.

-ac tells it not to respect the existing chiralities.

-imae identifies that the input file is in MAE format. It also accepts SMILES, CVS and SDF formats as input; but not PDB unfortunately; and that’s why we saved our ligand as MAE format in the first place.

-omae identifies that the format of the output file is also MAE.

Dependent on how you called LigPrep, now you should have the prepared ligands saved as a ligprep.mae or ligprep-out.maegz. To look at the prepared ligands, close your current entry at the maestro work space and import the file containing the prepared ligands. Now choose “Show Table” from the Project menu:

The Project table will appear: 

It shows that we have four prepared ligands. You can click on each one to see it in your maestro workspace. The ensemble includes two conformations of each stereoisomer of the original ligand. It is a good idea to change the titles of the entries in the table based on chirality to something like “R1, R2, S1, S2” to make it easier to track each enantiomer after docking. (To do so, you should already be familiar with the rules of stereoisomer nomenclature.) Then select all the entries and export them again with the same name.  (If you do not select all in the project table, some will be lost!) Your ligands are now ready for docking.


Docking with Glide

Docking generally involves:

1-    The search for the best fit between ligand and receptor. Such best fit is called a docking pose.

2-    Scoring the docking pose based on a score function.

Three types of score functions are used in glide:

1-    HTVS: High Throughput Virtual Screening that is a very fast evaluation method for very large libraries.

2-    SP: Standard-Precision that is a quick way to evaluate the poses. SP is also used for high-throughput virtual screening of big libraries.

3-    XP: Extra-Precision that is a refinement tool used only for very small libraries or a good subset of big library that has been pre-evaluated with HTVS or SP score, because it needs more computational time.

For more details about the score functions, refer to “J Med Chem. (2006) 49(21): 6177-96”. Since our library is very small, we can use XP score function.

If using maestro, you can start with choosing “Glide” and then “Ligand Docking…” from the “Applications” menu: 

A new window will pop up:

In the “Settings” tab of the new window, first you need to browse the file. Then, change the Precision to XP (extra precision). Do not change other options for now and just click on the Ligands tab:

In this tab, browse the ligprep.mae or ligprep-out.maegz file. You have the option to select which entries in this file you want to dock in the “Range:” section. Do not change the default values now.

Note: In future cases, you may want to use other charge methods for your ligands and receptor. For example, in this case, you could generate receptor charges using ff99SB force field and ligand charges using RESP or AM1-BCC method. In such cases, you need to check the box for “Use input partial charges”.

You can also define constraints, torsional constraints and similarity scoring for docking in other tabs of the window. You have good options to choose in “Output” tab especially for docking of large libraries. But do not change anything for now and let everything be as simple as possible.

You have the option to write an input file for the command line glide. To do that, click on “Write…”. A new small menu will ask you for the name and path of the file. Name it “dock_XP” and write it. The input file should look like this:










You can manually make this file (note that you should change the path to grid and ligand files. Don’t use mine!) and run glide from the command line as well:


However, if you want to do it with maestro, you are now good to hit start. A new window will appear to ask you about the job name and where to run it as what we saw for ligand preparation. Change the name to dock_XP and click on “Start” button.

It will take few minutes to dock your four ligands onto the receptor. This will generate some output and log files along with a dock_XP_pv.maegz file which contains the unsorted poses. To sort out the poses based on the docking scores and have a short report, use the following command:

$SCHRODINGER/utilities/glide_sort -r sort.rept dock_XP_pv.maegz -o dock_sorted.mae

This will generate two new files. First take a look at the sort.rept simply with cat command. It gives you some detail information about the poses that are resulted from ligand isomers. We can simply suppose that the best poses are those with the most negative score.

Now open the file dock_sorted.mae with maestro and then open the Project Table. You can see the score as well as some other docking results for each ligand. Note that the receptor is shown as a separate entry in the Project Table. So you can select it together with any of the ligand isomers to visualize how they are bound. Now you have the option to export all or some of the poses that are interesting to you in PDB, MAE or other formats for further analysis like MD. Also you can save any poses from the command line:

$SCHRODINGER/utilities/sdconvert -n 1 -imae dock_sorted.mae -osd pose_1.sdf

This will save the first (-n 1) pose from the sorted file as a SDF file. The coordinate frame will not change; so you can open this file together with the receptor in any molecular viewer and see the binding pose.

It is possible to visualize the ligand interactions with the receptor in details. To do that, select receptor together with one of poses in the Project Table and click on “Ligand Interaction Diagram…” in the “Tools” menu, or on the toolbar:

A new window will appear showing all the interactions between ligand and receptor:

It is possible to change between ligands when this window is open. 




  • No labels