ICM Pro is an easy-to-use and complete modeling environment for a biologist or a chemist interested in molecular structure and function.

Vendor website:

Command line and GUI manuals:


ICM Pro is restricted to Flux/Nyx users who have purchased a licenses. To inquire about purchasing a license, contact One license is needed for each core on which ICM Pro concurrently runs.

Accessing ICM Pro

ICM Pro is part of the LSA contributed software library. To use it, you must first load the lsa module, then the icm module.

You can either load the lsa module separately, as in

$ module load lsa
$ module load icm

or together, as in

$ module load lsa icm

Running ICM Pro interactively

Note: the command icm does not work on Flux. Use icm64 instead.
Since ICM Pro relies heavily on hardware-accelerated interactive graphics, it is not recommended to run it graphically on Flux. To invoke ICM Pro in command line mode, run

$ icm64

If you do need to start a graphic ICM Pro session on Flux, make sure you are running an X Windows server on your local workstation, log in to Flux using X Windows forwarding (from a Linux or Mac workstation, you would do this by using the -X option with your ssh command; be sure to replace uniqname below with your uniqname), load the icm module, and then run “icm64 -g”).

[uniqname@flux-login2 ~]$ module load icm
[uniqname@flux-login2 ~]$ icm64 -g &
[1] 29933
Startup> Loading config file /home2/uniqname//.icm/config/icm.cfg ..
 Info>  127 colors and 18 graphic modes read from /home/software/rhel6/lsa/icm/icm-3.7-2d/icm.clr
[uniqname@flux-login2 ~]$

As always, please be sure to not run long or intensive computations on the cluster login nodes, as this can cause problems for other users. For anything except for project file setup and quick tests, please run ICM Pro from PBS as described below, or run an interactive graphical job on the Flux compute nodes by adding the -X option to the “qsub -I” command in the “How to submit an interactive job” section at

Running ICM Pro from PBS

Do not use the pbsrun and pbsscan scripts that come with ICM Pro, since these are just examples and are not correct for the Flux environment. Instead, use the PBS script below as a replacement for pbsrun, and use Flux Job Arrays as a replacement for pbsscan.
Create the following PBS file, naming the file test.pbs, and changing example_flux to the name of your Flux allocation in the “#PBS -A” line. Also change to your email address. This PBS file shows an example of a HPC batch docking run.


####  PBS preamble:

#PBS -N icm_test
#PBS -m abe 

#PBS -l procs=2,pmem=3800mb,walltime=10:00:00
#PBS -j oe 

#PBS -A example_flux
#PBS -l qos=flux
#PBS -q flux

####  End PBS preamble

#  Show list of CPUs you ran on, if you're running under PBS
if [ -n "$PBS_NODEFILE" ]; then cat $PBS_NODEFILE; fi

#  Change to the directory you submitted from
if [ -n "$PBS_O_WORKDIR" ]; then cd $PBS_O_WORKDIR; fi

#  Put your job commands after this line
rundock -f 1 -t 10000 YOUR-PROJECT-NAME

To submit the job, run

$ qsub test.pbs

The rundock script is provided as a part of ICM Pro and can take the following command line arguments:

usage:    ./rundock    
options: -f 
         -l  # change the length of MC docking, default is 1.
         -L   # dock selected compounds from the database
         -i    # dock compounds from an SDF supplied
         -n      # change the run name in the output files
         -a                # force docking and saving of all compounds
         -s                # save stack conformations
         -S                # evaluate score for all stack conformations (slow)
         -d                # dock only (no scoring)
         -j      # dock several ligands in parallel
         -o                # redirect output to _from-to.ou
         -c   # continue interrupted job with 
         -r                # dock rigid (no ligand flexibility)
         -R    # set random seed
         -h                # show brief help

Other scripts that are available include rundockLig and rundockProt. All three of these scripts are merely wrappers around the ICM _dockScan script; it is also possible to invoke _dockScan directly yourself from within a PBS script — for example:

icm64 _dockScan PROJECTNAME -a -S confs=10 thorough=3.

Additional information

Additional information is available on the ICM Pro web site:
For any Flux-specific assistance running ICM Pro, contact