| 
       Jul 1 2004
       
      | 
	  
      | Prev |  3.6 Manipulations with molecules | Next |  
 
 [ bht | cp2 | rp | mc2 | mm | om | merge2 | mi | sr ]  
 
The easiest way to build an object with one of several peptides is to use the buildpep macro. 
There you can use a one letter code (upper case characters) or three-letter code and  
separate sequences of different chains by a semicolon. Examples: 
 
 buildpep "AAAAA"       # penta-alanine 
 buildpep "ASFHGD;EQWR" # two chains 
  
To create a DNA duplex or a compound, use GUI. 
  
For a more flexible building procedure, follow the following steps: 
 
-  Create the ICM sequence file either manually or using IcmSequence function, e.g.: 
 
   write IcmSequence( "FAASVRES", "nh3+", "coo-") "file.se" 
 
   read sequence "memb.seq" # creates the ICM sequence memb 
   write IcmSequence( memb , "nh3+", "coo-") "myseq.se" 
   build "myseq" 
  
You can also build sequence directly without creating a file with the 
 build string. 
See the build command and IcmSequence( ) function. 
 
 -  Change the default conformation using the available information. 
Possibilities: 
 
- You have a template pdb file with all the coordinates. Use regul macro. 
 -  
Set particular dihedral angles with the 
 set vs_variableSelection R_arrayOfValues or 
 
 set vs_variableSelection r_theValue 
command. 
 -  
you can use 
 minimize, 
 montecarlo 
and 
 ssearch 
commands to find a low-energy conformation. 
   
   
  
Examples: 
 
 build string "se nh3+ ala his leu trp coo-"   
 set v_/3/xi1 -60. 
 minimize 
  
  
  
 
Sometimes it is necessary to have a PDB file in the form of an 
ICM molecular object. For example, it's a convenient way to list 
and/or to change a torsion angle (or a series of them). All what 
you need is to use 
 convert 
command. One more ICM-format object will be created (use 
 show object 
command to see the list of currently loaded molecular objects). 
The above method is good only for a limited set of tasks mostly related to 
structure analysis. If you want to perform further conformational 
sampling by energy optimization it is better to 
 regularize 
the pdb-object (see the next section) 
  
We recommend to use the convertObject macro which optimizes hydrogens and 
can do some necessary cleanup. 
  
See also 
 strip 
  
  
 
 Regularization 
is a sophisticated multi-step procedure. It consists of the following 
six steps. 
 
-  Preparation of a file with the amino acid sequence. 
 -  Creating full-atom ICM-model (geometrical approximation). 
 -  Rotational positioning of methyl groups. 
 -  Iterative optimization of geometry and energy of the whole structure. 
 -  Adjustment of polar hydrogen positions. 
 -  Free minimization to check the consistency of the resulting structure. 
   
See macro regul . 
  
  
 
Let us assume that your input is a pdb file with a new small organic molecule and you want to create 
a proper ICM object from this molecule. What is currently missing in the description may be the following: 
 
-  proper chemical bond types (single, double, triple, aromatic).  
To see them press Ctrl-W to switch to wireStyle="chemistry". 
 -  hydrogen atoms (you need proper bond types to add hydrogens)  
 -  proper atom types 
 -  partial atomic charges 
 -  directed graph (ICM-tree) imposed on all the atoms.  
This graph defines torsion angles and will be built by the write library command. 
In an ICM object the graph can be displayed if wireStyle="tree".  
   
Identify the molecule or residue you would like to transform into the ICM-residue entry.  
To build all the above descriptions, perform the following procedures: 
 
- read pdb "ligand"  # molecule has no hydrogens 
 
display 
 - set bond type 1 a_//*  # initialize all bond types by 1, the default is 0 
 
# 0 type means that the convert command will try to guess the type 
 - set bond type 2 a_//o2 a_//p1 # type 'set bond type 2' and Ctrl-rightClick two atoms 
 
# set all other non single bonds: 1-single, 2-double, 3-triple, 4 aromatic. 
 - set bond type 4 a_//c1,c2,c3,c4,c5,c6 # an example of setting aromatic type for a ring  
 - build hydrogen # use 'delete hydrogen as_' if things go wrong 
 
 - set type mmff 
 - set charge mmff 
 write library 
command to save the residue entry file or append it to the 
 icm.res or create you own library file. 
   
  
  
[ methylation | hydroxylation | glycosylation | sulfation | amidation | phosphorylation | ssbondformation | peptidebond ]  
 Methylation, 
 hydroxylation, 
 glycosylation, 
 sulfation, 
 amidation, 
 phosphorylation, 
 disulfide bond formation, 
 peptide cyclization/bond, 
  
ICM allows to perform most of the common chemical modifications 
of peptides and other biological molecules. It is easy to build a linear 
chain of amino acids and add N- and C- termini. D-amino acids can be 
introduced by adding capital D in front of the residue name (i.e. Dala). 
To make further modifications we will use the 
 modify 
and the  
 make [disulfide | peptide] bond 
commands. Let us consider the main categories, using the 
nh3-DCSTVYHCK-coo peptide as an example. Start you session with 
 
 build string "se nh3+ asp cys ser thr val tyr his cys lys gly coo-" 
  
Now, if you like to see the results of your operations, display the molecule 
and do the following: 
 
- type modify in the command window; 
 - Ctrl-RightClick on the atom of interest (the selection will appear in the 
command window); 
 - and, finally, enter the quoted chemical group name and press Enter. 
   
The popular modifications:  
 
 
-  
Methylation:  
...-NH-... + CH3 ->...-N-CH3 + H 
  
 modify a_/val/hn "ch3" 
  
 
 -  
Hydroxylation:  
...R-CH2... + OH ->...R-CHOH... + H 
 
where R belongs to side-chain of Lys or Pro. 
 
Examples: 
  
                     # 5-hydroxylysine (Hyl) in collagen 
   modify a_/lys/hd2 "oh" 
                     # 4-hydroxyproline (Hyp) in collagen 
   modify a_/pro/hg2 "oh" 
 
 
 -  
Glycosylation:  
1. O-glycosylation: 
 
...-R-OH + O-CH- Carb ->...-R-O-CH- Carb + OH 
 
where R is a side-chain radical of Ser or Thr and  Carb 
is an O-capped carbohydrate.  Groups available for O-glycosylation are 
"acgl", "xyl", "agal", "bgal". You can further modify these groups. 
 
Examples: 
 
 modify a_/ser/og  "acgl" # beta-D-N-acetylglucosaminide 
 modify a_/thr/og1 "xyl"  # xylose 
   
 
2. N-glycosylation: 
 
...-R-NH2 + O-CH- Carb ->...-R-NH-CH- Carb + OH 
 
where R is a side-chain radical of Asn.   Carb 
is an O-capped carbohydrate (see O-glycosylation above). The following 
example illustrates an alternative way of modification when a part of the 
attached group is disregarded. 
 
         # It is assumed that the modified object (a_1.) is already built. 
         # Now build the second object including only one aclg residues. 
 build string "se acgl" "modgroup" 
 display a_ red 
 set object a_1. 
 modify a_/asn/hd21 a_2.1/1/c1   # o1 atom of the acgl is disregarded, and 
                                 # asn's Nd and acgl's c1 is directly connected. 
 delete a_2.                     # Remove obsolete second object 
  
 
If glycosylation follows hydroxylation, you explicitly do the same by N-glycosylation: 
 
 modify a_/lys/hd2 "oh" 
 modify a_/lys/o_a "bgal"  # o_a is the new unique name for the oxygen 
  
Alternatively (and preferably) replace hydrogen directly: 
 
   modify a_/lys/hd2 "bgal" 
  
 
 -  
Sulfation:  
...-R-OH + SO4 ->...-R-O-SO3 + OH 
where R belongs to Tyr. 
  
 modify a_/tyr/oh "sul" # tyrosine-O-sulfate in fibrinogen 
  
 
 -  
Amidation of the C-terminal glycine:  
Build the peptide with the last  gly replaced by the  conh 
C-terminal residue. Tether it to the previous object and minimize tethers. 
 
 -  
Phosphorylation:  
...-R-OH + O-PO2-OH ->...-R-O-PO2-OH + OH 
where R belongs to Ser, Thr, Tyr 
 
or 
 
...-R-H + O-PO2-OH  ->...-R-O-PO2-OH + H 
where R belongs to Lys, His 
 
or 
 
...-R-O + O-PO2-OH  ->...-R-O-PO2-OH + O 
where R belongs to Asp. 
  
 modify a_/ser/og  "pho"  # skip if you have already modified this residue  
 modify a_/thr/og1 "pho" 
 modify a_/tyr/oh  "pho" 
 modify a_/lys/hz2 "pho" 
 modify a_/his/hd1 "pho" 
 modify a_/asp/od2 "pho" 
   
 
 -  
Disulfide bond formation:   
...(cys)-S-H + H-S-(cys)... ->...(cyss)-S-S-(cyss)... + H2   
(note that names of the residues are changed upon bond formation (see 
 disulfide bond 
). 
  
    #ds extended ICM model of the sequence  
 display                            
     # set only one SS-bond, disregard all previous  
 make disulfide bond a_/3 a_/9 only 
     # MC search for plausible conformations  
 montecarlo                         
  
 
 -  
Peptide cyclization and peptide bond:  
...COO + NH3... ->...-CO-NH-... + H2O 
  
 build string "se nh3+ gly gly gly gly his coo-"  
 display 
 make peptide bond a_/nh3*/n a_/his/c       # form a cyclic peptide 
 display drestraint 
 minimize "ss" 
 minimize "vw,14,hb,el,to,ss" 
   
 
   
  
The following example shows how to build a cyclic peptide 
cyclosporin A: 
  
 
#  read pdb "1csa" 
#  make bond a_1csa.m/1/n a_1csa.m/11/c 
#  write library "cs" a_/1 
#  display grey 
 build string  "se thr thr gly leu val leu ala Dala leu leu val" 
 modify a_/2/og1 a_/2/hb 
 modify a_/3/hn "ch3" 
 modify a_/4/hn "ch3" 
 modify a_/6/hn "ch3" 
 modify a_/9/hn "ch3" 
 modify a_/10/hn "ch3" 
 modify a_/11/hn "ch3" 
 rename a_/1  "bmt" # actually, the residue BMT is more complex 
 rename a_/2  "aba" 
 rename a_/3  "sar" 
 rename a_/4  "mle" 
 rename a_/6  "mle" 
 rename a_/9  "mle" 
 rename a_/10 "mle" 
 rename a_/11 "mva" 
 display 
 make peptide bond a_/11/c a_/1/n 
 minimize "vw,14,to,hb,el,ss" 
 montecarlo "vw,14,to,hb,el,ss" 
  
  
  
 
(the move command). 
It may be necessary to merge two or several ICM-objects or molecules to one, 
For example, if you are dealing with a docking problem and have 
prepared two molecular objects separately. The ICM command 
 move allows you to do that. Technically, it rearranges  
 virtual connections in the ICM molecular tree responsible  
for the description of the molecules in one ICM-object or in several ones. 
  
 
 read object "complex"    # load a two-molecule ICM-object 
 display virtual a_//!h*  # display molecules with virtual bonds 
 color molecule 
 show object              # one ICM-object loaded 
 
 read object "crn"        # load one more ICM-object 
 display virtual 
 color a_2. magenta 
 show object              # two ICM-objects loaded 
 move a_2.* a_1.          # merge two ICM-objects to one 
                          # with virtuals connected to the origin 
 
 show object              # now two loaded ICM-objects becomes one 
 
 connect a_1.3            # you can move newly incorporated molecule 
                          # w/respect to the original complex. 
                          # do not forget to press ESC key in the 
                          # graphics window to complete the command 
 
                          # and / or you can save the new 
                          # three-molecule object to a new file 
 write object "super_complex" 
 
(See connect to learn more about the command.) 
  
If, on the contrary, you would like to have one or several molecules 
from an ICM-object as an independent ICM-object, you should simply 
 delete unnecessary molecules and to save the remaining one(s) as a new ICM 
object, for example: 
  
 
 read obj "super_complex" # suppose you saved "supercomplex" 
                          # from above example, then...  
 
 delete a_1.1             # all what you need is a_1.2 and a_1.3, 
 show molecule            # right? 
 write object "remains_of_super" 
                          # new ICM-object file "remains_of_super.ob" 
                          # contains the 2nd and the 3rd molecules 
 
  
  
 
To swap parts between several pdb files, read all of them to icm,  
and rename the chain which are you going to graft into the template, so that 
the template and the graft have the same name.  Sometimes the two structures 
need to be superimposed. So, what is important for 'graftability' is 
 
- the graft has the same chain name (see rename ) 
 - the graft has residue numbers consistent with the template (see align number ) 
 - the graft has consistent coordinates  (see superimpose ) 
   
Example: 
  
 read pdb "1crn" 
 read pdb "1cbn" 
 rename a_2.1 "m"  
     # or rename a_2.1 Name(a_1.1)[1]  to do it automatically 
 superimpose a_1.1 a_2.1 align   # see more specific  
  
  
The second concern is residue numbers. They need to be unique. This can be 
performed with the align number command, e.g. 
 
 align number a_2.1/21:28 22   # renumber the loop starting from 22  
  
  
Now you can write the pieces to a file and after you read it back the 
pieces will become one molecule. 
 
 write pdb a_1.1/1:20  "hyb" 
 write pdb a_2.1/21:28 "hyb" append 
 write pdb a_1.1/29:99 "hyb" append 
  
 read pdb "hyb"   # read the hybrid in 
 cool a_          # display it 
  
  
These operations are combined in the mergePdbmacro, e.g.: 
 
 mergePdb a_2./20:25  a_1./300:308 # creates hybrid.pdb file 
  
  
  
 
The following procedure will solve the problem: 
 
 read pdb "bj1bb"       # first structure  
 read pdb "bj2bb"       # second structure  
 strt = Xyz(a_1.//*)    # matrix (3, N_of_atoms) of the first ... 
 fnsh = Xyz(a_2.//*)    # ... and of the second 
 display a_1. red       # to see what is going on if you need it  
 display a_2. blue  
 nn = 300               # to generate 300 intermediate conformations  
 x = 1./nn 
 for i = 1, nn    
   set a_1.//* strt*(1.-x*i) + fnsh*x*i 
   write pdb a_1. "x"+i   
                 # uncomment the above line if you need  
                 # to save intermediates in x1.pdb, x2.pdb, etc. 
 endfor 
 quit 
 
  
  
 
Follow these steps: 
 
- Scan the picture and create arrays of arbitrarily scaled coordinates xLeft 
xRight and Y for the Ca atoms.  
 - When you have the coordinates in your ICM session call the 
makePdbFromStereo macro. 
 - mark the PDB-formatted lines and paste it after the read pdb 
unix cat command.  
 - inspect the results, possibly return to step 1 and correct the 
coordinates or use stereoAngle = -6. 
 - to build all-atom model, create sequence file and use the macro 
 regul . 
   
  
Example: 
 
 read column "xxy"  # 3 numbers in each line + a header: #> xl xr y 
 makePdbFromStereo xl xr y 6. 
 read pdb unix cat 
 ATOM .... 
 ATOM .... 
           # Ctrl-D 
 display 
 
  
  
 
     |