Internal Coordinate Mechanics

ICM stands for Internal Coordinate Mechanics and was first designed and built to predict low energy conformations of biomolecules. ICM also is a programming environment for various tasks in computational structural biology, sequence analysis and rational drug design. The original goal was to develop algorithms for energy optimization of several biopolymers with respect to an arbitrary subset of internal coordinates such as bond lengths, bond angles torsion angles and phase angles. The efficient and general global optimization method which evolved from the original ICM method is still the central piece of the program. It is this basic algorithm which is used for peptide prediction, homology modeling and loop simulations, flexible macromolecular docking and energy refinement. However the complexity of problems related to structure prediction and analysis, as well as the desire for perfection, compactness and consistency, led to the program's expansion into neighboring areas such as graphics, chemistry, sequence analysis and database searches, mathematics, statistics and plotting. The original meaning became too narrow, but the name was kept. The current integrated ICM shell contains hundreds of variables, functions, commands, database and web tools, novel algorithms for structure prediction and analysis into a powerful, yet compact program which is still called ICM. The seven principal areas are centered around a general core of shell-language and data analysis and visualization.