Copyright © 2019, Molsoft LLC
Jun 9 2022
The easiest way to build an object with one of several peptides is to use the 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 chainsTo create a DNA duplex or a compound, use GUI.
For a more flexible building procedure, follow the following steps:
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
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)
The convert command will also set selftethers to allow future
restrained minimization with the "ts" term
Regularization is a sophisticated multi-step procedure. It consists of the following six steps.
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:
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:
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
read pdb "1crn" read pdb "1cbn" rename a_2.1 "m" # or rename a_2.1 Name(a_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
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:
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
|Copyright© 1989-2019, Molsoft,LLC - All Rights Reserved. Copyright© 1989-2019, 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.|