[ Build faq | Convert pdb | Regularization procedure | Molecule create | Molecular modifications | Objects merge | Merge2 | Xyz morphing | Stereo reconstruction ]
build string command.
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:
build string "AAAAA" # penta-alanine
build string "AAA-tpo-AA" # peptide with phosphothreonine
build string "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
IcmSequencefunction, e.g.
You can also build sequence directly without creating a file with thewrite IcmSequence( "FAASVRES", "nh3+", "coo-") "file.se" read sequence "memb.seq" # creates the ICM sequence memb write IcmSequence( memb , "nh3+", "coo-") "myseq.se" build "myseq"build string. See thebuildcommand andIcmSequence( ) function. - Change the default conformation using the available information. Possibilities:
Examples:
build string "se nh3+ ala his leu trp coo-"
set v_/3/xi1 -60.
minimize
Extended list of amino acids.
The built-in amino acids are stored in the icm.res library and can be directly used in the
build or build string commands. An extended list of 250 amino acids along with the actual objects is stored in the
table called AminoAcids (file AminoAcids.icb ) and can be accessed directly or with the -mutateResidue2 macro.
Disulfides and CyclizationDisulfide bonds can be imposed with the
make disulfide bond cys1 cys2 command, e.g.
The terminal atoms can can be connected with the make bond simple command. The peptide needs to be generated without
terminal groups, e.g.
build string "ala ala ala ala ala"
make bond simple a_/1/n a_/5/c # last to first only
set term "bb,bs,af"
minimize # ends will close
See also:
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)
The convert command will also set selftethers to allow future
restrained minimization with the "ts" term
We recommend to use the convertObject macro which optimizes hydrogens and
can do some necessary cleanup.
See also
strip
- 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.
regul .
- proper chemical bond types (single, double, triple, aromatic).
To see them press
Ctrl-Wto 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".
- 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-rightClicktwo 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.resor create you own library file.
[ methylation | hydroxylation | glycosylation | sulfation | amidation | phosphorylation | ssbond-formation | peptide-bond ]
Methylation,hydroxylation,
glycosylation,
sulfation,
amidation,
phosphorylation,
disulfide bond formation,
peptide cyclization/bond,
ICM allows one 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-RightClickon the atom of interest (the selection will appear in the command window);- and, finally, enter the quoted chemical group name and press Enter.
-
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
SerorThrand Carb is an O-capped carbohydrate. Groups available for O-glycosylation are
You can further modify these groups. Example:Code Sugar Name bgal beta-D-Galactoside bglc beta-D-Glucoside bnag beta-D-N-acetylglucosamine residue bman beta-D-Mannoside aman alpha-D-Mannoside afuc alpha-L-Fucoside
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.modify a_/ser/og "bnag" # beta-D-N-acetylglucosaminide
If glycosylation follows hydroxylation, you explicitly do the same by N-glycosylation:# It is assumed that the modified object (a_1.) is already built. # Now build the second object including only one bnag residues. build string "se bnag" "modgroup" display a_ red set object a_1. modify a_/asn/hd22 a_2.1/1/c1 # o1 atom of the bnag is disregarded, and # asn's Nd and bnag's c1 is directly connected. delete a_2. # Remove obsolete second object
Alternatively (and preferably) replace hydrogen directly:modify a_/lys/hd2 "oh" modify a_/lys/o_a "bgal" # o_a is the new unique name for the oxygenmodify 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
glyreplaced by theconhC-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 "po4" # skip if you have already modified this residue modify a_/thr/og1 "po4" modify a_/tyr/oh "po4" modify a_/lys/hz2 "po4" modify a_/his/hd1 "po4" modify a_/asp/od2 "po4" -
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"
See also:
AminoAcidtable andmutateResidue2macro for the list of modified amino acidsmake peptide bondmake disulfide bond
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
- 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)
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
mergePdb macro, e.g.
mergePdb a_2./20:25 a_1./300:308 # creates hybrid.pdb file
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
- 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