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

Contents
 
Introduction
Reference Guide
 ICM options
 Editing
 Graph.Controls
 Alignment Editor
 Constants
 Subsets
 Molecules
 Selections
 Fingerprints
 Regexp
 Cgi programming with icm
 Xml drugbank example
 Tree cluster
 Arithmetics
 Flow control
 MolObjects
 Energy Terms
 Integers
 Reals
 Logicals
 Strings
  s_alignment_rainbow
  s_blastdbDir
  s_editor
  s_entryDelimiter
  s_errorFormat
  s_fieldDelimiter
  s_helpEngine
  s_icmhome
  s_inxDir
  s_icmPrompt
  s_imageViewer
  s_javaCodeBase
  s_labelHeader
  s_lib
  s_logDir
  s_out
  s_pdbDir
  s_pdbDirFtp
  s_pdbDirWeb
  s_projectDir
  s_printCommand
  s_prositeDat
  s_psViewer
  s_reslib
  S_skipMessages
  s_sysCp
  S_sysLs
  s_sysMv
  s_sysRm
  s_tempDir
  s_translateString
  s_userDir
  S_usrlib
  s_webEntrezLink
  s_webViewer
  s_xpdbDir
 Preferences
 Tables
 Other
 Chemical
 Smiles
 Chemical Functions
 MolLogP
 MolLogS
 MolSynth
 Soap
 Gui programming
 Commands
 Functions
 Icm shell functions
 Macros
 Files
Command Line User's Guide
References
Glossary
 
Index
PrevICM Language Reference
String variables
Next

[ s_alignment_rainbow | s_blastdbDir | s_editor | s_entryDelimiter | s_errorFormat | s_fieldDelimiter | s_helpEngine | s_icmhome | s_inxDir | s_icmPrompt | s_imageViewer | s_javaCodeBase | s_labelHeader | s_lib | s_logDir | s_out | s_pdbDir | s_pdbDirFtp | s_pdbDirWeb | s_projectDir | s_printCommand | s_prositeDat | s_psViewer | s_reslib | S_skipMessages | s_sysCp | S_sysLs | s_sysMv | s_sysRm | s_tempDir | s_translateString | s_userDir | S_usrlib | s_webEntrezLink | s_webViewer | s_xpdbDir ]

System string variables are predefined in the shell. New string variables can be created via assignments, e.g.


a = "What took you so long?"
txt = """
Once upon a time some evil dwarfs
filed a patent claiming the right to 
paint shirts blue color
"""
, or the read string command or a function returning a string ( e.g. a = String(2.3) ) or created by a command as one of the output variables, eg s_out.

s_alignment_rainbow


This variable now controls how alignments are colored automatically by properties like conservation or entropy. For example:


s_alignment_rainbow = "pink/white/white/lightyellow/yellow/yellowgreen/green"

Note: this variable does not influence the consensus-based coloring via tables CONSENSUSCOLOR and CONSENSUS

s_blastdbDir


return directory with Blast-formatted sequence files for ICM sequence searches. By default the directory is set to the $BLASTDB system shell variable. The variable can also be explicitly defined in the user_profile.icm or _startup file. In order to start using the $BLASTDB shell variable, delete explicit assignment of the s_blastdbDir from your _startup file or add

 
s_blastdbDir=Getenv("BLASTDB") 
to your ~/.icm/user_startup.icm file.
The find database family of sequence/pattern search commands use the s_blastdbDir directory.

s_editor


a string to invoke an external editor.
Attention!!! Always use the call to the program which starts the program in the foreground. For example: use "jot -f" rather than just "jot", since the default is running in the background.
Examples:
 
 s_editor = "vi"      # good old vi, does not require a separate window 
 s_editor = "jot -f"  # popular SGI editor 
 s_editor = "xedit"   # simple and exists for X on every platform 
 s_editor = "notepad" # exists for PCs 


s_entryDelimiter


a string which delimits entries in the database output of a table or a set of arrays, generated by the show database or write database commands. The %i specification at the end will be replaced by the current number of the entry and carriage return.
Default: ("#____________________________ %i")
Example:
 
 s_entryDelimiter="//\n"  # EMBL-database delimiter  
 s_entryDelimiter="\n"    # empty line

See also:



s_errorFormat


defines the exact appearance of the ICM error messages. Specification %s corresponds to the minimal ICM error message. If %s is missing all error messages are reduced to the specified text. If s_errorFormat is equal to the empty string (""), all error messages will be suppressed. If icm is started in the "web" mode (i.e. with the -w path flag), the variable is automatically set to "<hr><h3>Error: %s</h3><hr>" .
Examples:
 
 s_errorFormat=""             # do NOT print error messages 
 s_errorFormat=" Error> %s"   # standard error messages 
 s_errorFormat=" Erreur> %s"  # French version 
                              # html-padding 
 s_errorFormat="<hr><h3>%s</h3><hr>"  
 s_errorFormat=" Fehler> der Betrieb ist verboten"    
                              # replace all the messages by this text 


s_fieldDelimiter


contains characters which are considered as field delimiters by the Field and Split functions, as well as by read column and write table commands. In "Split" and "read table" one can also specify the field delimiter explicitly.
Important. If a character is duplicated in s_fieldDelimiter (e.g. s_fieldDelimiter="::" ), then multiple occurrences of this character will be ignored. Otherwise, EMPTY fields will be created between each pair of identical delimiter characters.
In write table s_fieldDelimiter is honored only if is a one-letter symbol, like "," or "\t".
See also the opposite operation, merging members of string array into one string: Sum( S_, s_separator )
Examples:
 
 s_fieldDelimiter="\t"   # "aaa\t\t bbb" splits into "aaa",""," bbb"  
 s_fieldDelimiter="\t\t" # "aaa\t\t bbb" splits into "aaa"," bbb"  
Default ( " \t\t" i.e. two blanks, two tabs, meaning skip multiple blanks or tabs). Another reasonable possibility is " \t\t\n\n" which means skip blanks,tabs and carriage returns.

s_helpEngine


path to the HTML help file browser program. If you have no HTML browser, the default setting is s_helpEngine="icm", so you can use the simple internal ascii help-file viewer more filter ('q' - to stop, '/' to find a string, 'Enter' - next screen). If the desired help information is not found, just type help and then use '/' plus the search pattern to perform the context search in the whole help file.
Examples:
 
 s_helpEngine="/usr/bin/netscape" 
 s_helpEngine="mozilla"  # make sure you can start it in the UNIX shell  
 s_helpEngine="icm"      # why would one need more?  


s_icmhome


defines the home directory of the ICM program. This directory contains all standard ICM databases, all scripts, examples, documentation, initial configuration files (later users can override them with the files stored in the s_userDir directory.
The Linux icm-rpm package creates s_icmhome in /usr/icm directory.

s_inxDir


defines directory from which icm - index files for large sequence or chemical databases are stored. This variable is used by the write index command. By default s_inxDir is set to s_icmhome + "/data/inx/" .
See also: read index , write index .

s_icmPrompt


defines the ICM-prompt string. This string contains text and a bunch of wild cards for:
  • %o - name of the current molecular object
  • %e - list of the active energy terms (see the set terms command)
  • %t - time spent in ICM (may be convenient for scripts)
  • %T - astronomical Time
  • %% - % character
  • %# - icm-command order number
Be smart, see the energy or penalty terms you are using by adding %e to the prompt string.
Examples:
 
 s_icmPrompt="%## "                     # for minimalists 
 s_icmPrompt=""                         # for super-minimalists 
 s_icmPrompt="%T> "                     # for anxious paranoiac freaks 
 s_icmPrompt="MY_ICM/%o/%e/%T/%#> "     # for the verbose 
 s_icmPrompt="Hi-hi|%e-^%o+%T>   "      # for the messy 
 s_icmPrompt="Icm command number %#> "  # for the retarded 
 s_icmPrompt="Hey dude, type something" # for dudes 
 s_icmPrompt="%o/%e> "                  # for humble and wise researches 

Default: "icm/%o> "

s_imageViewer


defines the command to view the image files ( tiff, png, targa and rgb formats) if the display option is specified. An alternative to the default is the "xv" program. See also the write image command.
Default for SGIs ( "imgview").

s_javaCodeBase


path to the folder containing java applet class files. Java applets are currently used by the web or write html commands with a chemical table.
Default: "/Java/"

s_labelHeader


defines a prefix string for all labels. For example, when displaying CPK atoms you may move the label to the right of the atom center by
 
 s_labelHeader="     " 
Default ( "" - an empty string).

s_lib


ICM library name root. If you redefine it to say "new", ICM will start to look for the following library files: new.cod, new.bbt, new.bbs, .... etc. in the $ICMHOME directory.
Default ( "icm").

s_logDir


when you quit an icm-session, a _seslog.icm file is automatically stored. If the s_logDir variable is empty, it is stored to the s_userDir + "/log/" directory. However one can redirect it to the current working directory ( "." ) or any other directory.
The same logic applies to the _crashlog.icm file which is created when ICM crashes.
Examples:
 
s_logDir = "." # _seslog.icm stored in the current working directory 
s_logDir = ""  # to the current working directory 

s_out


a string where some commands store their string/text output. See also: printf read database read string, read table, and read unix,
Default ( "is where the string/text is stored" ).

s_pdbDir


directory containing the PDB database of 3D structures and defining the location of the pdb files for the pdbDirStyle from 1 to 5 (the ftp and http styles are controlled by a different variable). These files can also be easily downloaded directly from the PDB site if the variables are set as in the example below. PDB distributions can exist in several styles (all files in the same directory, or divided etc.). The style is defined by the pdbDirStyle preference.
The pdb directory also contains the derived_data subdirectory with useful files ( pdb sequences, index files etc. )

Attention! Note that if the pdbDirStyle is set to 6 or 7 this variable is NOT USED. Variables s_pdbDirFtp and s_pdbDirWeb are used instead! (it was hard coded until version 3.5-2)
Example:

 
 s_pdbDir ="ftp://ftp.rcsb.org/pub/pdb/data/structures/divided/pdb/" 
 pdbDirStyle = "ab/pdb1abc.ent.Z" 
 
 s_pdbDir = "/data/pdb/" 
 read sarray s_pdbDir+"/derived_data/index/source.idx" 
 source = Tolower(Trim(Field(source,1))) 
 for i=1,Nof(source) 
   read pdb source[i] 
#  do some analysis 
   delete a_*. 
 endfor 
Default ( "/data/pdb/"). It is usually redefined in the _startup file.

s_pdbDirFtp


If pdbDirStyle is set to 6 (for the ftp access), the location of the ftp site is controlled by this variable. Example:


pdbDirStyle=6
s_pdbDirFtp = "ftp://ftp.rcsb.org/pub/pdb/data/structures/divided/pdb/" # an old site
read pdb "1crn"

s_pdbDirWeb


If pdbDirStyle is set to 7 (for the http access), the location of the web site and the request format is controlled by this variable. Example:


pdbDirStyle=7
s_pdbDirWeb = "http://www.rcsb.org/pdb/files/%s.pdb.gz" # an old web site
read pdb "1crn"


s_projectDir


a relative path to the directory in which icm-projects (all the icm-objects in a session) are stored. This path is appended to the s_userDir directory.

s_printCommand


a command to print text or postscript files. This command is invoked if the print option is specified in the write image postscript or write postscript commands. Customize this string. Default ( "lp -c" ).
Example:

 
 s_printCommand = "lp -c -d ColorPrn22" 
 write image postscript print  # save image and print 


s_prositeDat


is a file containing the full file name of the prosite database of protein patterns. This file is not large and is distributed with ICM. If you have your own copy of prosite, redefine the variable and delete prosite.dat in the $ICMHOME directory to avoid redundancy.
Default ( "prosite.dat" ). It is usually redefined to s_icmhome+"prosite.dat" in the _startup file.

s_psViewer


a PostScript viewer used while you are in ICM session. A command to invoke is to be:
 
 unix $s_psViewer </tt><i>your PostScript file name</i>  

Default is system specific.

s_reslib


name of the icm residue library that contains discriptions of chemical residues. The file will be loaded from the $ICMHOME directory.

To create a new residue use the write library command.
Default ( "icm").



s_skipMessages : ignore specific error messages


In ICM all error and warning messages are numbered (e.g. " Warning> [123] .. " ). You may specify a set of message numbers which you want to suppress. While the messages are suppressed the error code can still be returned with the Error(number) function.
Example:
 
 a = 1 
 if = 2       # deliberately generate error 
  Error> [2073] illegal IF: wrong condition in  if=2 
 
 s_skipMessages = "[2073]" 
 if = 2        # now no message is generated 
 if Error(number)==2073  quit 
 
 a = yes      # generates another error 
  Error> [696] wrong assignment or name conflict   
 s_skipMessages = "[2073][696]" 
 a = yes      # hides the error message 
 
 234*2352352532  
 Warning> [147] number 2352352532 is too big for an integer (>2147483647)    
 0 
 s_skipMessages = "[2073][696][147]"   # suppress the warning 
 234*2352352532    
 0 

See also: errorAction , s_errorFormat .
Default ( "[3000][3012]" just to show an example).

s_sysCp


automatically filled out string containing the copy file command for the current operating system. It is advised to use this variable in scripts for cross-platform portability.

s_sysLs and s_sysLtt


automatically filled out string containing the list file command (or list files sorted by modification time) for the current operating system. It is advised to use this variable in scripts for cross-platform portability. Example:


sys $s_sysLs   # to list files in the current directory
sys $s_sysLtt   # to list files in the current directory

s_sysMv


automatically filled out string containing the move or rename file command for the current operating system. It is advised to use this variable in scripts for cross-platform portability.

s_sysRm


automatically filled out string containing the delete or remove file command for the current operating system. It is advised to use this variable in scripts for cross-platform portability.

s_tempDir


scratch directory for temporary files ( some montecarlo files will be saved there ).
Default ( "/usr/tmp/").



s_translateString


a set of characters used in the ascii representation of numerical values of arrays, matrices and maps. See also the String function and the show map command.
Default ( ".:*0#" ).

s_userDir


The path to the user directory containing ICM-related and ICM-generated data files.
The suggested _startup file sets this variable to a subdirectory .icm of the user $HOME directory ( $USERPROFILE for Windows), but you may set it anywhere you want.
Default ( "$HOME/.icm/").



s_usrlib (obsolete)


an obsolete variable. The new mechanism to add new icm residue libraries uses the LIBRARY.res sarray. You can generate the entries using the write library command.
Default ( "usr").

s_webEntrezLink


defines the NCBI Entrez link.
See also: webEntrezOption, Default ( "http://www3.ncbi.nlm.nih.gov/htbin-post/Entrez/query?db=s&form=6&uid=%s&Dopt=%c").

s_webViewer


An obsolete variable. Web browser is defined by OS default.



s_xpdbDir


path to the ICM XPDB database root of compact binary ICM objects which are annotated with the site information. The root directory contains pdb-style subdirectories with named after the 2nd and 3rd character of the four-letter code. The advantage of the XPDB database is the speed of reading and smaller size than PDB. XPDB entries are read about hundred times faster!

Here we compare the execution times for the pdb and xpdb files:

 
eos:/home/ruben/icm> time ./icm -s -e 'read object "/data/xpdb/1ffk.ob"' 
0.450u 0.090s 0:00.54 100.0%   
eos:/home/ruben/icm> time ./icm -s -e 'read pdb "/data/pdb/ff/pdb1ffk.ent.Z"' 
38.800u 0.430s 0:42.11 93.1%  

An xpdb directory can be in a remote location, e.g.


s_xpdbDir = "http://ablab.ucsd.edu/xpdb/"
read binary pdb "1crn"


Prev
l_xrUseHydrogen
Home
Up
Next
Preferences

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.