# ICM

## Contents

## Introduction

ICMlite is an OpenGL-based molecular modelling package with many functions and a powerful menu-based user interface. It has been derived from ICM, developed by Molsoft, originally for the UNIX-platform, and has been ported to Windows.

## User Interface

The program consists of a main window which is separated into a viewing area (at the top) and a command-line prompt (at the bottom), all windows can be resized.

In addition, there are two button-bars and pull down-menus at the top, like in every good GUI-program. ICMlite comes with a powerful and complex command-language which can also be accessed through pull down- and pop up-menus. Imho the language is -regarding complexity and ease of use- comparable to the Molmol-approach, i.e. it isn´t easy to use for the first time molecular modeller. Due to the fact, that ICMlite -like most of the other entries in our little review- uses OpenGL as graphics and display interface, it is slow if you want to manipulate complex renderings (let´s say a CPK-view of a larger molecule) in real time. To my subjective impression it seems to be slower than Molmol and WebLabViewer, comparable to gOpenmol. The image quality is -like every other OpenGL-app -very good, and ICMlite has several possibilities to change the appearance, color and structure of a molecule.

Like Rasmol, and WebLab Viewer Lite, ICMlite is only a viewing-tool -there are no possibilities for molecule manipulation of any kind. You have to buy the fully-featured ICM if you are looking for that.

## Features

Taken from the ICM Browser-homepage

ICMlite is a powerful tool for five different application areas:

- Molecular Graphics
- Mathematics
- Data Analysis, Plotting and Statistics
- Programming and Web Development
- Structure Analysis

##### Molecular Graphics

ICMlite has all the standard features of a graphics program (CPK, solid ribbon, balls-and-sticks, wire, dot surfaces, coloring by property, etc). The **extra** features of the ICMlite graphics as compared to a popular program RasMol are as follows:

- manual docking;
- interactive model building;
- any number of objects can be simultaneously loaded and displayed;
- selection of atom/residues/molecules by types and/or numbers and/or name patterns, accessible surface, distance cutoff, secondary structure, screen position;
- hardware stereo;
- perspective;
- easy interactive zoom;
- independent control of clipping planes;
- eight switchable and combinable image buffers;
- flexible secondary structure assignment;
- chemical bond types or topological tree;
- annotation of the generated images

##### Mathematics

- operations, functions and expressions for numbers, vectors and
**matrices**! - a large set of built-in mathematical functions:
**Abs, Acos, Acosh, Asin, Asinh, Atan, Atan2, Atanh, Ceil, Corr, Cos, Cosh, Det, Distance, Exp, Error, Floor, Integral, Length, Log, Matrix, Max, Mean, Min, Mod, Nof, Power, Remainder, Rmsd, Rot, Sign, Sin, Sinh, Sqrt, Sum, Tan, Tanh, Trace, Transpose, Vector;** - matrix and vector operations, linear algebra, solution of linear equations;
- numerical integration and differentiation;
- numerical minimization of one-dimensional analytical functions

##### Data Analysis and Visualization

- frequency distribution, random numbers, linear regression and correlation, eigenvalues and eigenvectors, principal component analysis, clustering;
- 2D plotting: lines, symbols, bars, plots, histograms, scatter and shaded area plots in a variety of styles and colors;
- PostScript output;
- on-line data editing

##### Programming and Web Development

- flexible and intuitive language operating on numbers, strings, logicals, arrays, vectors, matrices and
**tables**; - exhaustive set of flow controls (if-then-else, for and while loops, break, continue, goto, error- and interrupt-handling);
- specialized, built-in functions operating with string, array and tables (sorting, searching, string-related transformation, concatenation, type conversion, etc.);
- SQL expressions for database searches (e.g.
`d = (a.b >=3 & a.c !="ok")`); - parsing of the HTML-form output;
- string functions and operations for string variables and string arrays: splitting, replacing, length, number of elements, formatted input/output, character/substring position, concatenation, trimming, changing to lower/upper case, etc.
- flexible user-defined
**macros**; - operating system interface commands and built-in functions; history mechanism; aliases

##### Structure Analysis

- automated determination of secondary structure;
- 3D structure global or local superposition with optional sequence alignment;
- calculate and display interatomic distances, angles, torsions;
- Ramachandran plots;
- calculate and display accessible surface area and volume of any atom/residue/molecule selection;
- for a given atoms/residues/molecules selection set/get electric charges, temperature factors, occupancy parameters, etc.