Copyright © 2020, Molsoft LLC Nov 14 2024
|
Start the GUI (Graphics User Interface) version of ICM by typing icm -g or icm -G and hitting RETURN. This executable will look the $ICMHOME shell variable. The commands of the GUI menu will be taken from $ICMHOME/icm.gui file. Feel free to change it. The GUI is meant to be self-explanatory. In this manual we will mostly focus on the shell commands and function, since in many cases the GUI gives you only limited subset of possibilities.
ICM-shell is a basic interface between a user and the ICM-program. The shell can be used from the GUI version or directly. This is a powerful and flexible environment for a multitude of versatile tasks ranging from mathematics and statistics to very specialized molecular modeling tasks. Start ICM by typing: icmMake sure that your .cshrc login file contains setenv ICMHOME /whatever/your/ICM/directory/is/Do not forget the slash at the end. It is also useful to add your $ICMHOME directory to your $path since there are some ICM related shell scripts and utilities which you may want to access. You will see the ICM-prompt inviting you to type a command. The first thing to know is how to get help. You may just type help and use / whatever to find what you want, or use help commands or help functions to find out about the syntax. Now type: aa=2.4You have just created a new ICM-shell variable aa and assigned a value of 2.4 to it. You can create a variable with a name which is not already in use in the ICM-shell, does not contain space or delimiters like ".","," and starts from a letter (e.g. 1aag is an illegal name, except for sequences). Let us go on: bb=2.*aaNow you have created another ICM-shell variable bb and its value is probably 4.8. Find it out by typing: print " bb=", bbor any of these commands: list "b*" list integers show bbThe next step would be to type a conditional expression like: if (bb != 4.8) print "something went wrong"or something even more elaborate: if (bb != 4.8) then print "something went wrong" else print "It really works" endifYou can always start a for-loop such as: cc={"sushi","sashimi","negi maki","toro","period."} for i=1,Nof(cc) # Nof returns the number of elements. # Index i runs from 1 to 5 print "*** I just like to eat ",cc[i] endforNotice that anything after a pound sign # in ICM scripts is a comment. We have just played with a real variable bb and string array cc . They had their unique names and we could create, read, write, delete and rename them. ICM-shell objects Furthermore, the ICM-shell can handle many other different types too, namely, it may contain in its memory entities of 16 different types, such as
Atomic objects are usually specified by an atom, residue, molecule or object selection which are collectively referred to as selections. All of the listed entities have their unique names in the ICM-shell and can be read, renamed (e.g. rename myFactors bbb ), deleted (e.g. delete myFactors aaa ), written to a file with a standard type-specific extension (e.g. write aaa "surf" will create file surf.gro , the extension type depends on the object), shown, often printed and displayed graphically. A number of ICM-variables have reserved names and are used by the program. For example, the mncalls variable always describes the number of molecular energy evaluations during a minimization, s_pdbDir is the path to your pdb files, etc. You may customize some of those ICM-shell variables by redefining them in the system-wide _startup file, and $HOME/.icm/user_startup.icm file. The standard _startup file reads icm.ini file which contains many standard directory and parameter definitions, e.g. read all s_icmhome+"icm.ini" # initialize icm variables Important: be careful when negative numbers appear in the command line. If not separated from the previous numeric argument by a comma, they will be interpreted by ICM-shell as an expression, i.e. the two arguments will simply be replaced by their difference. For example, the command display string "I like crambin" -0.9 -0.3is wrong, a comma is needed, otherwise -0.9 -0.3 will be substituted by -1.2. This command will place the string in a point with screen coordinates X=-1.2 and Y=0.0 (the default), not in X=-0.9 and Y=-0.3 as might be expected. The safest way should be to use commas as separators in the argument list in the command line, like the following: display string "I like crambin" -0.9 , -0.3is correct, the two arguments are separated by comma Now you can use the mouse to rotate and translate molecules and strings. The left mouse button is associated with rotation, the middle mouse button is translation and the right mouse button clicks are used for drop down menus in GUI and labeling (double click is a residue label). A more detailed list of graphics controls is given below. As far as the keyboard commands and prompting, try to use the arrow keys for invoking previous commands and TAB for prompting (e.g. atom TAB ) to see the available commands and functions.
Your first ICM commands may be the following: read pdb "1crn" # check pdbDirStyle variable for PDB access display ribbonor simply nice "1est"You can also: read mol s_icmhome + "ex_mol" # or read mol2 s_icmhome + "ex_mol2" # orThe second way to create a molecular object is building the extended chain given the amino-acid sequence. The simplest way to build a short peptide is to use the build string command. Type build string "nter ala his leu tyr cooh" # or build string "AHLY;AGGAR" # to build two molecules build string "ra rg ru; ra rc ru" # to build two rna chains In a more complex case create a file, say mymol.se, .se being the standard extension for the object sequence files. The file should contain the names of molecules (field ml) and their sequence (field se) and may look like this: ml mol1 se nter ala gly his ser trp cooh ml mol2 se hoh ml mol3 se hohType: build "mymol"to build the object. Now you can display the three molecular objects you have just loaded, i.e. crambin, the two peptides. We will use the cpk and the xstick graphics representations. display a_2. # a_2. means 'the second object' display cpk a_1./2:10 # a_.. means 'residues 2:10 of the first object' display xstick a_1./16:18You can also replace residues with the modify command: modify a_2./his "tyr"Let us clear the scene and start doing some more fun things: delete a_*. # a_*. selects all the objects build "mymol" display # by default displays everything set vrestraint a_/* # this command will increase the efficiency montecarloOf course, there is a more elaborate possible setup for a montecarlo run (see _folding script) and graphics should not be used for a real run. However, the above example is pretty much what you need to do to run the Biased Probability Monte Carlo Minimization to find the global minimum which models the solution structure of this peptide. Now let us make a quick tour into multiple sequence alignments. First, get your sequence file (most formats will be accepted). The simplest default file format (then you do not need format type specs like: msf, pir, etc) is the fasta format (angular bracket and sequence name followed by the sequence) > seq1 ASDFREWWDYIEQ > seq2 SDRTYIEQWWDCVN There are some example multiple sequence files in the ICM-directory. Let us do the following: read sequences s_icmhome+"sh3" # example sh3.seq file group sequence "*" sh3ali show sequences alignments align sh3ali # redo the multiple sequence alignment unix gs sh3ali.eps # gs is a PostScript previewer show Align(Fyn, Eps8) # make a pairwise alignment If you want to go directly to more elaborate sessions and scripts, or have a "How can I ..." question, you may hop to the User's Guide section.
|
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. |