ICM Manual v.3.1
by Ruben Abagyan
Copyright © 2005, Molsoft LLC
Nov 24 2008

Contents
 
Introduction
Reference Guide
User's Guide
References
Glossary
 A
 B
 C
 D
 E-H
 I-N
 O-R
  Object
  only
  parray
  pattern
  png
  Pdb
  peptide bond
  pharmacophore
  profile
  prosite
  rarray
  REBEL
  real
  regularization
  residue
  rgb
  ribbon
 S
 T
 U-Z
 
Index

PrevICM Language Reference
O-R
Next

[ Object | only | parray | pattern | png | Pdb | peptide bond | pharmacophore | profile | prosite | rarray | REBEL | real | regularization | residue | rgb | ribbon ]

object, 3D molecular objects


A pdb file or a chemical molecule with 3D coordinates, or a newly build group of molecules that can co-exist in space are called objects in ICM. Please do not confuse this specific use of the word with general shell objects that include other data types. A session may contain any number of molecular objects.Each object (i.e. molecular object) in turn consists of three levels or ogranization:

  1. molecules
  2. residues
  3. atoms

ICM understands expressions specifying different selections in objects, see object selections. There are two main classes of objects:

  • ICM objects
  • non-ICM objects
ICM objects have the assignment of rotatable bonds, partical charges and atom types for energy calculations. Convertion to an ICM object type is a necessary prerequisite of many commands including show energy , minimize and montecarlo .

The non-ICM objects (from the second line on) may have subtypes such as
"ICM" ready for energy calculations. Those objects are either built in ICM or converted to the ICM-type.
"X-Ray" determined by X-ray diffraction
"NMR" determined by NMR
"Model" theoretical model (watch out!)
"Electron" determined by electron diffraction
"Fiber" determined by fiber diffraction
"Fluorescence" determined by fluorescence transfer
"Neutron" determined by neutron diffraction
"Ca-trace" upon reading a pdb, ICM determines if an object is just a Ca-trace.
"Simplified" special object type for protein folding games.

Each object contains the following information:

  • Molecules (with their own internal structure, including residues and atoms)
  • name ( changed by rename and returned by the Name ( os ) function )
  • remark (set by set comment and returned by the Namex ( os ) function )
  • header ( returned by the Header (~~os ) function )
  • filename ( returned by the File( os ) function )
  • date ( return by the Date function )
  • resolution ( returned by the Resolution function )
  • type (returned by the Type ( os 2) function )

Functions on molecular objects. os_ means object selection for other abbreviations see the link.(note that some functions that also operate molecules, residues and atoms are not included).

`Cell ( { os_ | m_map } )

`Charge ( { os_ | ms_ | rs_ | as_ } [ formal | mmff ] )

`Date ( os_ )

`Field( { rs_ | ms_ | os_ } [ i_fieldNumber ] )

`Field ( os_ i_fieldNumber ) # see also set field os_ i_number

`File ( os_ )

`Label ( os_objects )

`Mass( as_ | rs_ | ms_ | os_ )

`MaxHKL( { map_ | os_ | [ R_6CellParameters ] }, r_minResolution ) ⇒ I3

`Mol ( { os_ | rs_ | as_ } )

`Name ( s_hint os_ unique )

`Name ( os_ )

`Name ( s_root os_1 unique )

`Namex ( os_ )

`Next ( { as_ | rs_ | ms_ | os_ } )

`Nof( { os_ | ms_ | rs_ | as_ | vs_ } )

`Nof( { os_ | ms_ | rs_ } [ atom ] )

`Parray ( object [os_] )

`Res ( { os_ | ms_ | rs_ | as_ } [ append ] )

`Resolution ( os_object ) ⇒ R_array_of_resolutions

`Select ( as_sourceSelection os_targetObject )

`Select ( os_sourceObject S_residueSelStrings )

`Select ( os_sourceObject I_atomNumbers )

`String( { os_ | ms_ | rs_ | as_ } [ i_number ] )

`Symgroup ( { s_groupName | os_object | m_map } )

`Symgroup ( { i_groupNumber | os_object | m_map } string )

`Transform( s_group|iGroup|os_1|map ) ⇒ R_12N_all_fract_transformations

`Transform( s_group|iGroup|os_1|map iTrans )⇒ R_12_fract_transformation_i

`Type ( os_object , 2 )

`dsCellBox os_

Commands acting on objects

append stack os_ligandObject

clear graphic [ os_ ]

convert [ exact ] [ charge ] [graphic] [ tether ] [ os_non-ICM-object ] [ s_newObjectName ]

copy [ strip ] [ tether ] os_ [ s_newObjectName ] [ delete ]

delete { object | os_ }

find pdb rs_fragment os_objectWhereToSearch s_3D_align_mask [ s_sequencePattern [ s_SecStructPattern ] ] [ r_RMSD_tolerance]

find pattern [ number ] [ mute ] s_sequencePattern [ i_mnHits] [ { os_objectWhereToSearch | seq_Name | s_seqNamePattern } ... ]

find segment ms_source [ os_objectWhereToSearch_2] [ r_maxRMSD ] [ i_minNofAlignedResidues [ i_accuracyParam ] ]

move ms_MoleculesToMove os_destination

move os_ObjectToMove os_destination

rename { os_ [ full ] | ms_ | rs_ | as_ } s_newName

rotate [ os_ | ms_ | g_grob ] M_rotation

set comment [ append ] os_Object s_comment # returned by the `Label() function

set object [ os_newObjName ]

set symmetry os_object R_6cell s_symgroup | i_symgroup [ i_NofChains ]

set type os_ s_type

set [ atom ] type mmff [ os_]

show { os_ | ms_ | rs_ | as_ | vs_ }

sort object R|I # reorder objects by arrays, e.g. --{sort object Resolution(a_*.)}

sort object os_ i_pos # move selected OBJECTS to specified position

sort os_ [ field = i_Field ] # sort MOLECULES in selected objs by field

strip os_object [ virtual ]

superimpose os_static I_atomNumbers1 os_movable I_atomNumbers2

translate { os_ | ms_ | g_grob } [ add ] [ symmetry ] R_3translationVector

Important macros working on molecular objects.

convertObject ms_ l_delete_water l_optimize_hydrogens l_replace_the_original l_display

convert2Dto3D os_ l_build_hydrogens (yes) l_fixOmegas (yes) l_display (no) l_overwrite (yes)

icmPmfProfile os_ ( a_ ) l_accessibilityCorrection (yes) l_display ( no )

makeSimpleModel seq_ ali_ os_

makeSimpleDockObj [ os_object ] [ s_newObjName ]

only


frequent option in commands which means disregard or delete the previous status. Without only commands usually add or append to the current settings.
Examples:

 
 display only g_icos      # undisplay everything which is in the 
                          # graphics window (if any) 
                          # and display icosahedron  


parray


[ Object parray | Sequence parray | Image parray ]

pointer array, abbreviated as P. An array of pointers to objects. Currently there are several types of parrays, that consist of the following data types: Chemical arrays of chemical compounds created by reading a mol or sdf file. These compounds do not exist outside this array as independent molecular objects, but can be converted to molecular objects.
creating mol-arrays To create a molarray use the read table mol command and first column of this table will be such an array. Example:
 
read table mol "Maybridge.sdf" 
You can also use the Chemical function.

Molecular objects in arrays and tables


ICM molecular objects (both converted and unconverted) can be grouped into arrays and shown in tables.

See the following functions:

Array of sequences


ICM sequences may be grouped into arrays and placed into tables. Some functions supporting sequence arrays:

Array of images


ICM provides multiple ways of generating images and performing advanced operations with them: See

pattern


a sequence consensus pattern like this, "[AG]?[!P]W", or this "C?G?\{2,3\}C". A pattern can be extracted from an alignment and searched against a sequence database. See also:



png


[ pattern-matching ]

graphics image format. Stands for Portable Network Graphics and was designed to replace the GIF format and, to some extent, the much more complex TIFF format. While GIF allows for only 256 palette colors, PNG can handle a variety of color schemes like TIF (1,3,8, 24, etc. bit colors). Furthermore, PNG is free, while GIF is subject to licensing fees. PNG also supports alpha-channel. Since 1998 most browsers correctly display PNG images. See also: rgb, tif .

Pattern matching and regular expressions. Use the following metacharacters to construct regular expressions (try guess what string is used in the examples!)
  • * matches any string including an empty string (e.g. "*see*" )
  • ? matches any single character (e.g. "???ee M")
  • [string] matches any one of the enclosed characters. Two characters separated by dash represent a range of characters. Examples: [A-Z], [a-Z], [a-z], [0-9] (e.g. "[A-Z] see [A-Z]"
  • [ !string] negation. matches any but the enclosed characters (e.g. "I see [!K]")
  • single-character multiplication: character\{m,n\} (e.g. "I?\{3,6\}M" - repeat any character, ?, from 3 to 6 times)
The example string was "I see M". Regular expressions may be used in selections ( a_*.//c?,n,c ), and in list, group, delete commands. Note that for the latter three commands the pattern must be quoted.

pdb or Protein Data Bank


a repository of macromolecular structures solved by crystallography or NMR (occasional theoretical models are frowned upon). It used to be at the Brookhaven National Laboratory, Now it is shared between UCSD and Rutgers University. The old citations: Bernstein et al., 1977; Abola et al., 1987). The new citations can be found at http://www.rcsb.org/pdb/ . On November 20th, 2001 it contained 16596 entries. On August 21st, 2007 if contained 45368 Structures.
An example ATOM record:
 
ATOM     52  N   HIS D  18      53.555  24.250  49.573  1.00 32.59 

See also: mmcif , read pdb



peptide bond


a covalent bond between C=O and N-H groups, which is imposed in ICM-objects as an extra set of distance restraints. These groups may belong to the terminal groups as to the amino acid side chains. Important: commands make peptide bond and delete peptide bond are valid for ICM-type molecular objects only (and have no effect on, say, PDB structures). Both commands change the covalent structure of the modeled molecular object and expel/add hydrogens. Distance restraints imposed to form such a bond are defined in icm.cnt file.

pharmacophore


Pharmacophores in ICM are special objects of the non-ICM type. A pharmacophore can combine special ph4 centers and disconnected chemical fragments.

The ph4 centers have the following atom types and names:

  • code:
  • 315 Qa HBA
  • 316 Qd HBD
  • 317 Qm aromatic
  • 318 Qh hydrophobic
  • 319 Qp positive
  • 320 Qn negative
  • 321 Qx ExVolume
  • 322 Qv a point defining the direction vector from Qa,Qd and Qm, or a pseudo atom

Creating a pharmacophoreA pharmacophore can be created from an object with the makePharma macro,

macro makePharma ms s_name ("pharm") l_points (yes) l_display

The l_points logical defines if the pharmacophoric centers or fragments are created from the source molecule.

The new object gets type pharmacophore (see the set type os "pharmacophore" command ).

Note the following issues:

  • for polar atoms with hydrogens and lone pairs, both Qa and Qv centers are created at the s
  • the directions of Qa-Qv or Qd-Qv vectors need adjustment
  • the direction atoms (Qv) can be selected and removed. In this case the direction will not be matched.
  • two or more ph4 objects can be merged into a single pharmacophore object. For example one can merge some ph4-centers with some fragments.
  • the properties of points can be edited interactively or with the set as_ commands.
Commands to change properties of ph4 centers:
  • set bfactor as1_ r_radius # to change the tolerance radius
    
     set bfactor a_pharma.p5/5/Qv10 0.8
    
  • resetting the radius (stored in the bfactor field) for the direction point Qv will change the width of the direction tolerance.
  • you can also change point type and name, e.g.
    
    set type a_pharma.//Qa3 316
    rename a_pharma.//Qa3 "Qd4"
    
  • the coordinates can be reset with the set atom command.
See also the makePharmaAtomsmacro .

The following commands and functions work with pharmacophores:

  • find pharmacophore : find pharmacophore as_pharmQuery chemarray3D
  • superimpose : superimpose os_ph4obj ms_ligand pharmacophore
  • Chemical : Chemical( ms|os pharmacophore ) # creates pharmacophore, this function is used in makePharma
  • Rmsd : Rmsd ( as_pharmTemplate as_select2 pharmacophore )
  • makePharma macro
  • makePharmaAtomsmacro # generates separate pharma centers from selections

Saving ph4 objects.

The objects can be saved with the regular write object command or write binary commands.

profile


a table of residue preferences for each residue type at each position on a protein fold or a sequence. The preferences may be derived from a multiple sequence alignment of from a 3D structure. Profile also contains gap opening and gap extension values for each sequence position. Profile provides a good way of representing a consensus sequence pattern of a protein family. One can search a new sequence against a library of profiles, or search a profile against a data base of protein sequences (see Abagyan, Frishman, and Argos, 1994). One can add two profiles ( prf1 + prf2 ), multiply them (prf1 * prf2), concatenate two profiles (prf1//prf2), and extract a part of a profile ( prf[15:67] ). Profile can be read from a .prf file and calculated from an alignment with the Profile() function. See also: Sequence() Consensus() Align().



prosite


a dictionary of protein sites and patterns, (Copyright by Amos Bairoch, Medical Biochemistry Department, University of Geneva, Switzerland). ICM converts prosite patterns to standard string patterns containing regular expressions, like "C?\{4,5\}CCS??G?CG????[FYW]C".
The old releases of prosite could be downloaded from

ftp://ftp.expasy.org/databases/swiss-prot/sw_old_releases/ 

A newer version of prosite can be downloaded from:


ftp://us.expasy.org/databases/prosite/release_with_updates/prosite.dat

See also:

rarray


ICM class for arrays of real numbers: { -1.6 , 2.150 3., -160.}

See also: Rarray , Toreal , read rarray

REBEL


a method to solve the Poisson equation for a molecule. REBEL is a new powerful implementation of the boundary element method with analytical molecular surface as dielectric boundary. This method is fast (takes seconds for a protein) and accurate. REBEL stands for Rapid Exact-Boundary ELectrostatics. The energy calculated by this method consists of the Coulomb energy and the solvation energy which is returned in the r_out system variable.
Related parameters and steps:

  • electroMethod = "boundary element";
  • dielConst (the default is usually OK);
  • dielConstExtern (the default is usually OK);
  • set charge as_ r_Charge (modify charges if you like);
  • make boundary (if you want to make several evaluations of energy or Potential( ) with the same boundary. The "boundary" parameters depend only on conformation and do NOT depend on charges. You can redefine charges afterwards and get a corrects energy evaluation);
  • delete boundary (if you do not need it);
  • show energy (make sure the "el" term is on);
  • Potential ( as_targets as_charges) (if the boundary exists, returns potentials from charges at the target atoms);
  • color grob potential (create graphics object, say, with make grob skin actually it can be any grob and color it by the REBEL potential);
  • Matrix(boundary) : returns the matrix solved to find the boundary lement charges.
The polarization charges, or induced surface charges, can be returned by the Rarray( as_ ) function after the equation is solved, e.g.:
 
 electroMethod = 4 
 show energy "el" 
 Rarray( a_//* ) 



real


number may exist in the ICM-shell as a named variable or a constant (e.g. 12.3, 2.0, -4.501 ). There are a number of predefined real variables. Reals may be mentioned in arithmetic expressions, commands and functions.
Examples:
 
 a = -1.2 
 b = Abs(Sin( 2.3 * a - 3.0 / a)) 


regularization


procedure for fitting a protein model with the ideal covalent geometry of residues (as represented in the icm.res residue library) to the atom positions of a target PDB structure (usually provided by X-ray crystallography or NMR). Regularization is required because the experimentally determined PDB-structures often lack hydrogen atoms and positional errors may result in the unrealistic van der Waals energy even if these structures were energetically refined (since the refinement of the crystallographic structures typically ignores hydrogen atoms and employs different force fields). The following steps are required to create the regularized and energy refined ICM-model of an experimental structure:
  • an extended all-atom model of a particular protein is generated with regular geometry characteristics (see the build command and the IcmSequence function);
  • the non-hydrogen atoms in the model are assigned to the equivalent atoms in the model (see set tether);
  • the regularized structure is built starting from the N-terminus by adding atoms one-by-one (see minimize tether);
  • methyl groups are rotated to reduce van-der-Waals clashes;
  • combined geometry and energy function is optimized;
  • polar hydrogen positions are adjusted;
  • optionally the model may be additionally minimized, now without tethers to observe a "stability" of the model in the local energy minimum.
See macro regul .

residue


a chemical building block or complete chemical compound, usually an amino-acid residue. The ICM hierarchy: atom -> residue -> molecule -> object. Individual small molecules may contain only one residue. Residues are described in the icm.res file. You may create your own residues with the write library command. Residues can be selected with the ICM-selection expression (e.g. a_/ala, a_/15, a_/15:20, a_/"RDGE" etc.), labeled with the display residue label rs_ command, by double clicking with the right mouse button, via a pop-up menu, or from the GUI menu.

rgb


red-green-blue. It is of interest, that the combination of these three can produce any other color. In addition, this is the name of the SGI image format used in the ICM commands write image and display trajectory . ICM also generates the fourth channel on top of the RGB information. This fourth number is called alpha-channel and generates the opacity index for each pixel of the image. This information is interpreted by a number of applications, i.e. the IRIX showcase and dmconvert (the SGI moviemaker). See also tif, targa, postscript.

ribbon


a graphical representation of a polypeptide chain backbone by a smooth solid ribbon. DNA and RNA can be also displayed in a ribbon style.
There are three types of elements of the ribbon display depending on the secondary structure assigned to a given residue.

Residues marked as alpha-helices ('H') will be shown by a flat ribbon, those marked as beta-sheets ('E') will be flat ribbon with an arrow-head, and the rest will be shown by a cylindrical "worm". The ICM-shell parameter GRAPHICS.wormRadius defines its radius. Default ribbon colors are defined in the icm.clr file. Note that minor secondary structure elements like 3/10 helix ('G'), Pi-helix ('I') are colored by the corresponding colors ( the threetenRibbn and piRibbon parameters in the icm.clr file), 'Y' type is colored by the alphaRibbon color, and 'L','P' and 'B' (isolated beta-residue) residues are colored by the "betaRibbon" color. DNA and RNA ribbons are colored according to the base type: A-red, C-cyan, G-blue, T or U - gold. Preference ribbonStyle allows to display a simplified segment representation of the secondary structure elements instead of (or together with) the ribbon.
The DNA/RNA ribbons consists of two parts the backbone ribbon and the bases shown with the sticks and balls. To selectively display and undisplay the bases, you can do the following:
Example:
 
 read pdb "1dnk"         # contains 2 dna mol. 
 display ribbon a_1.2,3  # both bases and backbone 
 undisplay ribbon base a_1.2    # bases disappear 
 display ribbon base only a_1.2 # only bases 
 display ribbon a_1.2,3 yellow  # both bases and backbone 
 color ribbon a_1.3 magenta     # the second chain backbone 
 color ribbon a_1.2,3 bases     # default by base type 
 cool a_  # cool is a rich macro. View the whole thing 


Prev
mute
Home
Up
Next
S

Copyright© 1989-2004, 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.