Subject: summary: adding hydrogen using charmm

From: Mao Xiang <[email-masked]>
Date: Wed, 22 Nov 2000 08:40:10 +0800

Hello, everyone:
    The day before yesterday, I post a problem about adding hydrogen to
a pdb file using charmm. And in the past two days, I received many reply
about my problem, and now I solve the problem.
    In fact, my problem is not the problem of adding hydrogen, but
reading coordinate. I put a segid name of 'prot' in the last column of
pdb file, and the problem was solved. Here I put all the reply in this
email, and thank all of you who reply me.

-------------------------------------------------------------------------------------
From: [email-masked]
    
  You have a problem reading the coordinate (no N,CA,C,O for amino
acid 1...). There must be a name mismatch between psf and pdb. Change
the pdb accordingly, if appropriate. It seems reasonable that you
cannot build the Hs on a missing N. An advise "learn" to read the
output of charmm carefully. The problem is most of the time signalled
but it may be hundreds of lines before the crash. As a rule of thumb
read every line of output and correct the input until you don't have
any more warnings that may cause a problem.

From:  [email-masked]

the charmm pdb reader is not great.  one suggestion is
to write the coordinates (write coor pdb unit xx) after
doing the generation.  all the coordinates will be 9999.
but it will allow you to see the format that charmm is
looking for.

also, do

ic fill
ic para
ic build

before

hbuild

From: [email-masked]

Charmm needs a pdb file that has a segname as the last column. So you
need to modify the input pdb file a little for Charmm to appreciate
that. For eg here is a  line from a normal pdb file and the
corresponding one that Charmm appreciates.
Normal pdb
ATOM      1  O1  BTN     1       0.311  -4.640  15.789  1.00  0.00
Charmm PDB
ATOM      1  O1  BTN     1       0.311  -4.640  15.789  1.00  0.00     
BTN
The last column is the segname is call in the psf file.

From: [email-masked]

It seems that your input file for charmm is ok, but the PDB file is not
ok. Generally I will encounter this problem when I just download a
structure from PDB and throw it to CHARMM. I don't know exactly what
is going on, but it is quite possible that the format of the PDB is
not acceptable by CHARMM. So, what I do is, write a Fortran program to
change the downloaded PDB file to a card file, and serve the CHARMM with
the card file.

From: [email-masked]
 
Actually, you seem to be having a problem with reading coords from the
PDB file.  Also, your IC commands aren't quite right (you don't want IC
FILL), and should probably precede the HBUILD-- you *must* make sure all
heavy atoms have coords before calling HBUILD.  Here's the way I read in
a PDB file for a peptide:

open unit 3 read card name meltna.pdb
read sequ pdb unit 3
rewind unit 3

gener a setup warn first glyp last ct2

! SETUP UNIVERSAL COORD I/O FOR PDB; BETTER THAN read coor pdb
read univ
pdb
w  61  6
end

read coor univ unit 3 sele .not. type H* end
close unit 3

ic param ! FILL IN MISSING VALUES FROM PARAM FILE
ic purge ! CLEANUP IC TABLE
ic build ! BUILD COORDS FROM IC

! FORCE REBUILD OF ALL H ATOM COORDS
coor init sele type H* end
hbuild sele type H* end

  From: [email-masked]>

! read in NMR coordinates
OPEN READ UNIT 11 CARD NAME -
/home/user/marios/rnase/crd/1rch_15.crd
READ COOR CARD UNIT 11 FREE
CLOSE UNIT 11

! build missing coordinates
IC FILL PRESERVE
IC PARAMETERS
IC BUILD

! place the hydrogens
HBUILD

It is better to use CHARMM use their own coordinate file.

     From: [email-masked]

your problem is not  building the hydrogens, but reading the
coordinates.
Charmm does not read in the coordinates of your system:

>  ** WARNING ** For atom in coordinate file, could not find residue in
> PSF, and is thus ignored:
> 
>   SEGID=     RESID=1    RESNAME= GLU  TYPE= N   
>  *** LEVEL  1 WARNING *** BOMLEV IS    0
> 

charmm does read the coordinates from your pdb, but cannot find a
corresponding
atom in the system you did setup. Charmm identifies a system via a
segment ID
(segid). Since charmm stells you 'segid=   ', i guess you forgot to
specify
the segid in your pdb file. You gave your first segment the name 'prot'
. This
name must be specified in your pdb file, when reading coordinates from
it. I
don't know the exact format now, but in each ATOM/HETATOM line after the
B-factor entry you have to put prot. 

From: [email-masked]>

Hello, you need to rewind unit 1 before you can
read the coordinates. When you use the " read sequ pdb"
command it reads to the end of the file. When the second
command "read coor pdb" comes the file is still at the 
end so it finds no coordinates. The following should work

! Read sequence from the PDB coordinate file
open unit 1 card read name 1pef.pdb
read sequ pdb unit 1

! now generate the PSF and also the IC table (SETU keyword)

generate prot setu

! read in pdb coordinate file

rewind unit 1

! rewinding the coordinate file

open unit 1 card read name 1pef.pdb
read coor pdb unit 1
close unit 1
------------------------------------------------------------------------

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|  Xiang Mao                                                     |
|  Lab of Molecular Regulation for Microbial Secondary Metabolism |
|  Shanghai institute of Plant Physiology, Academia Sinica        |
|  300 Fenglin Road, Shanghai, China, 200032                      |
|  Tel: +86-21-64042090-4791                                      |
|  Fax: +86-21-64042385                                           |
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~