Knowledge Base

Article ID: 1443 - Last Modified: April 30, 2012

I would like to prepare a large ligand library using LigPrep. How should I proceed ?

LigPrep takes approximately one second per output ligand, using 2D input with stereocenters indicated (on an average Linux workstation). If the ionization stage uses Epik (recommended), that will take another 1-2 seconds per output structure. So a rough estimate is 20 cpu days per 1M output structures.

So for a large number of input ligands, you will have to distribute the calculation over multiple processors, to ensure that it runs efficiently. Input files with large numbers of structures are divided into subjobs so that the preparation can be performed in smaller, more manageable pieces. The default size of a subjob is 10,000 structures; we don't recommend more than 100,000 structures per subjob. The subjobs are sent by a master job to the subjob hosts. As each subjob finishes, the master job sends another subjob to the subjob host. This means that the number of subjobs should be several times larger than the number of processors used for the job, for efficient load balancing. When all subjobs are finished, output from the subjobs is collected and merged into the output file in the working directory.

If you run the preparation from Maestro, you can select one or more hosts in the Start dialog box, and specify the number of processors to use on each host. You must also specify the number of subjobs to meet the criteria described above.

If you run the preparation from the command line, from Suite 2011 you should use the ligprep command, and for Suite 2010 and earlier, you should use the para_ligprep command. The syntax of these commands is given in Section 2.3 of the LigPrep User Manual, with examples. para_ligprep uses the same command-line options to control the process as ligprep.

The default number of subjobs is 10,000, but you can set the value with the -NJOBS option. The hosts and the number of processors used on each host can be specified with the -HOST option. You can provide a list of hosts and processors in the format "host1:cpus1 host2:cpus2...".

If subjobs fail, you will need to manually gather the input structure files from the subjobs (perhaps in the temporary directory), concatenate them into a new input file, and start a new preparation with this input file. LigPrep in Suite 2011 will gather the failed jobs for you.

Related Articles:

#88: Can I run a ligand preparation on multiple processors ?
#1251: How do I run LigPrep from the command line?

Back to Search Results

Was this information helpful?

What can we do to improve this information?


If you need additional help, please email us at help@schrodinger.com.
Knowledge Base Search

Type the words or phrases on which you would like to search, or click here to view a list of all
Knowledge Base articles