ICM Manual v.3.9
by Ruben Abagyan,Eugene Raush and Max Totrov
Copyright © 2020, Molsoft LLC
Jun 5 2024

Reference Guide
Command Line User's Guide
  Help getting
  Menu script
  Icm learning
  Command word list
 ICM graphics
 PROTAC Modeling
 Chemical Conformation Generator
PrevICM Language Reference

[ Help getting | Customization | Menu script | Icm learning | Command word list ]

How to get help

This entire book can be searched from the command line. You may just type help and use /searchString to find what you want, or use help commands or help functions to find out about the syntax. If you want help on a multi-word term, e.g. read pdb, merge the words, e.g. help readpdb . The web version of this book with links is also available ( man.tar.gz file contains about 2000 html files ). See also: help, help commands, help functions.


[ ICMHOME | User environment | _startup | User_startup | _chemBatch ]

There are several mechanisms of helping you to customize your ICM environment:


Define UNIX environmental variable ICMHOME in your .cshrc file, e.g.
 setenv ICMHOME /opt/icm/ 
This will be the directory from which ICM program takes all necessary libraries, databases, etc.

USER environment: $HOME/.icm directory

In contrast to $ICMHOME directory which may be installed under root for several users, the $HOME/.icm directory contains files which can be changed by a user. Under Windows the directory is $USERPROFILE/.icm . The icm-user directory contains the following files and directories:
blastdb/|contains blast-formatted files for ICM sequence searches (see also s_blastdbDir )
config/|contains icm.cfg and icm.rc files with startup preferences.
inx/|default location for database index files (see also s_inxDir )
log/|contains session logs, (see also s_logDir )
_startup|if present, overrides the global _startup in $ICMHOME.
user_startup.icm|user startup files. Executed in addition to _startup
Notice that the icmprojects is a subdirectory of the user $HOME directory rather than the $HOME/.icm directory. As a result, the whole $HOME/.icm directory can be removed and automatically recreated with the default settings by icm without loosing any of the project information.

You may also customize TOOLS.onIcmExitMacro and TOOLS.onIcmStartupMacro preferences. The first one contains a name of the macro to be executed on ICM exit. The second macro is executed after all initializations (including GUI windows) are done. That allows user to insert gui layout management command there.

Example: The following code can be added to user_startup.icm

TOOLS.onIcmExitMacro = "onExitICM"
macro onExitICM
  write string Date()+ " CPU time: " + Time() + "\n" append s_userDir + "usage.log"

TOOLS.onIcmStartupMacro = "onStartupICM"
macro onStartupICM
  undisplay window = "masterview,terminal"

The _startup file

The _startup file is stored in your $ICMHOME (or s_icmhome inside ICM ) directory. Since this directory in an organization may be read-only, all additional commands and macros can be stored in the user_startup.icm file in the user-accessible directory (see below). Also, if you have a file with the same name _startupin your current directory it will be used instead of the $ICMHOME/_startup . To avoid executing the _startup file, use option -s.

icm -s # skip _startup

Let us go through the main sections of the current _startup file.

Loading macros from _macro, _docking, _bioinfo etc.The second section of the _startup file loads macros from different files provided with the ICM distribution to the ICM session.

If you create a user_startup.icm file in your $ICMHOME directory it will also be loaded into ICM because at the following lines end of the system _startup file

if(!Exist(s_icmhome+"user_startup.icm")) goto skipuser 
  call "user_startup.icm" only    # for organization-wide macros

You can use _startup or user_startup.icm files to overwrite the preferences. E.g.

 s_pdbDir     = "/data/pdb/" # set it to the place where PDB lives 
 s_helpEngine = "icm"        # default, web-browser is an alternative 
 s_prositeDat = s_icmhome+"prosite.dat" # you may have your own updated file 
 s_psViewer   = "/usr/opt/bin/gs -q"    # xpsview may be more standard 
 s_tempDir = "/tmp"       # better be accessible only for you 
Set $BLASTDB system environment variable for searches in the blast-preprocessed sequence databases (see the find database command).

individual user_startup.icm , gui-controls and menus :

additional personal custom commands can be stored in $HOME/.icm/user_startup.icm file under UNIX and $USERPROFILE/.icm/user_startup.icm under Windows . This allows one to have your own additional setup which follows a general $ICMSCRIPTDIR/_startup[.icm] file execution. We also recommend that you create a .icm directory in your home directory and store all additional files, such as your personal icm.clr , GUI-setup and color file, and other custom files.

Note: note that if the user_startup.icm file is stored in the $ICMHOME directory it will also be read in ICM (see above). However, this file may not be write-accessible if ICM is installed in a read-only directory for several users in an organization.

Example personal user_startup.icm file in which we use personal GUI files:

LIBRARY.clr = Getenv("HOME")+"/.icm/icm.clr"  # USERPROFILE under Windows 
LIBRARY.men = Getenv("HOME")+"/.icm/icm.gui"  # now gui will invoke your file 
read color   # updates your GUI-control and color setup 

aliases : Define aliases convenient for you.
hotkeys : Use, define new or modify old keystrokes. Set key command allows you to create efficient keystrokes to control graphics. You can store those in the user_startup.icm file.
macros: Create macros for all frequently used interactive operations and their combinations.

The _chemBatch file

The _chemBatch script can be used to process large SDF files performing various operations on each entry.


icm _chemBatch -h
 Usage> _chemBatch [-f] [-I] [-s] [options] input.sdf output.sdf
    -2D    : 2D depiction
    -salt  : remove salts
    -hyd   : remove remove expilit hydrogens
    -standradize  : standardize groups
    -tauto  : generate tautomeres
    -racemic  : convert to racemic
    -stereo  : generate stereo
    -q  : quiet (suppress warnings)
    -f  : force overwriting of the output file
    -I  : force overwriting of the index file

This script also can be used as a template for adding other custom operations.

How to write a nice demo with menus to impress the boss

See example in the description of the menu command and the _demo family of scripts.

How to boost learning process while reading the ICM manual

  • Start ICM, mark (copy) all the example lines from the manual with the mouse and paste them to the ICM-shell text window. Try each line as you read it! You will immediately see the result and will be able to play around. Note: in principle you may mark several lines, but sometimes the buffer gets overflown. In this case paste lines in smaller chunks or one by one.
  • Use HTML cross-references.
  • Write to support@molsoft.com if you have questions or need an ICM-shrink.
  • Always use TAB key while typing the command.

How to get the list of the command words

Use list command to see the whole list of valid ICM words. If you need a list of all available ICM functions, use list function command instead.
help commands and help functions will give all the syntax lines too.

Command Line User's Guide
ICM graphics

Copyright© 1989-2024, Molsoft,LLC - All Rights Reserved. Copyright© 1989-2024, Molsoft,LLC - All Rights Reserved. This document contains proprietary and confidential information of Molsoft, LLC. The content of this document may not be disclosed to third parties, copied or duplicated in any form, in whole or in part, without the prior written permission from Molsoft, LLC.