From: John Stone (johns_at_ks.uiuc.edu)
Date: Tue Apr 06 2004 - 09:59:56 CDT

Daniel,
  I didn't realize you were working with the biological unit files,
that being the case, I've already written a script to process these
with psfgen, adding missing hydrogens, and merging them into a single
structure file. I guess you hadn't seen my previous posts of this
script? Anyway, here it is, try it out and let me know if you need
help using it.

  John Stone
  vmd_at_ks.uiuc.edu

##
## A simple VMD/psfgen script to merge multi-frame PDB files into a single PDB
## structure, as in the case of the large multi-frame Virus capsids provided
## at the RCSB PDB site.
##
## Usage:
## source mergemultiframepdb.tcl
## mol new myfavoritemultiframepdb.pdb
## merge_multi_frame_structure top /tmp/myworkarea /my/final/filename
##
## Results will be written to /my/final/filename.psf and /my/final/filename.pdb
##
## This script was tested with the following file from the RCSB PDB site:
## ftp://ftp.rcsb.org/pub/pdb/data/biounit/coordinates/divided/k4/1k4r.pdb1.gz
##
package require psfgen

# this is a hack, just to get the topology file
package require membrane

proc writeallframes { whichmol workdir } {
  set allsel [atomselect $whichmol "all"]
  for {set i 0} {$i < [molinfo $whichmol get numframes]} {incr i} {
    foreach chain [lsort -unique [$allsel get chain]] {
      set sel [atomselect $whichmol "chain $chain"]
      $sel frame $i
      set filename [format "%s/merge%04d.%s.pdb" $workdir $i $chain]
      file delete $filename
      $sel writepdb $filename
      $sel delete
    }
  }
  $allsel delete
}

proc deleteworkarea { whichmol workdir } {
  set allsel [atomselect $whichmol "all"]
  for {set i 0} {$i < [molinfo $whichmol get numframes]} {incr i} {
    foreach chain [lsort -unique [$allsel get chain]] {
      set filename [format "%s/merge%04d.%s.pdb" $workdir $i $chain]
      file delete $filename
    }
  }
  $allsel delete
}

proc mergeallframes { workdir filename } {
  global env

  # this next line is a total hack, needs a permanent place to get this from
  set topologyfile [format "%s/plugins/noarch/tcl/membrane1.0/top_all27_prot_lipid.inp" $env(VMDDIR)]

  psfcontext new
  resetpsf
  topology $topologyfile
  pdbalias residue HIS HSD

  set nseg 1
  foreach pdb [lsort [glob $workdir/merge*.pdb]] {
    set segid V$nseg
    puts stdout "PDB: $pdb $segid"
    segment $segid {
      first NONE
      last NONE
      pdb $pdb
    }
    coordpdb $pdb $segid
    incr nseg
  }

  guesscoord

  set psffilename [format "%s.psf" $filename]
  set pdbfilename [format "%s.pdb" $filename]
  writepsf $psffilename
  writepdb $pdbfilename
}

proc merge_multi_frame_structure { whichmol workdir filename } {
  writeallframes $whichmol $workdir
  mergeallframes $workdir $filename
  deleteworkarea $whichmol $workdir
}

On Tue, Apr 06, 2004 at 12:12:58PM +0300, Dr. Daniel James White PhD wrote:
> Hi John,
>
> just got a reply from Warren the pymol man
>
> the easiest way to achieve what I wanted, was this:
>
> download the "biological unit" version of the pdb file containing the
> 60 molecule positions as 60 different "models" in 1 file.
>
> pymol leads this file as 60 different "states"...
>
> then do
> split_states object-name
>
> as below.
>
> VMD could have something like this?
>
> now I have all 60 molecules as different pymol objects and can show and
> hide and do whatever to them individually.
> I'm modelling and making pretty pictures, so this works for me.
>
>
> cheers
>
> Dan
>
>
> Message: 10
> From: "Warren DeLano" <warren_at_delanoscientific.com>
> To: "'Todd Geders'" <geders_at_purdue.edu>,
> "'Ann Mullin'" <amullin_at_tulane.edu>
> Cc: <pymol-users_at_lists.sourceforge.net>
> Subject: RE: [PyMOL] biological unit question
> Date: Mon, 5 Apr 2004 13:07:13 -0700
>
> Todd,
>
> Try MacPyMOL for the full PYMOL effect. http://delsci.com/macpymol
>
> There is also a new command in the 0.95 series:
>
> split_states object-name
>
> which will spread a PDB "biological unit" (or any multi-state object --
> including SD files) over a series of independent objects. This makes it
> possible to interact with such objects more naturally than with
> "all_states
> = 1".
>
> load 1c8e.pdb1, 1c8e
> split_states 1c8e
> delete 1c8e
> zoom
> spectrum b
> hide lines
> set cartoon_sampling,3
> show cartoon
> bg_color grey70
> set hash_max, 150
> ray
> ...
> orient
> zoom complete=1
> ray
>
> image & screen-shot at:
>
> http://delsci.com/img/1c8e.jpg
> http://delsci.com/img/1c8e-screen.jpg
>
> Note that looking at large systems such as this (255300 atoms) may take
> some
> extra RAM -- 1.5 GB is recommended for this task, and it still takes a
> dual
> 2 Ghz G5 85 seconds to render...
>
> Cheers,
> Warren
>
>
>
>
> On 5 Apr 2004, at 22:11, John Stone wrote:
>
> >
> >Hi,
> > Try using something like this (replacing the upper left 3x3 matrix
> >elements
> >as appropriate of course):
> >
> >set sel [atomselect top "all"]
> >$sel move {{1.0 0.0 0.0 0.0}
> > {0.0 1.0 0.0 0.0}
> > {0.0 0.0 1.0 0.0}
> > {0.0 0.0 0.0 1.0}}
> >$sel writepdb /tmp/myfile.pdb
> >
> >While it would be great to automatically parse PDB files and read
> >these transformation matrices in a script, as far as I know there is
> >not standard method of storing them. The transformation matrices
> >are just included in the comments section of the file and don't have
> >any guaranteed formatting or ordering to my knowledge. If someone
> >knows
> >otherwise however, and they can supply a spec, it would be fairly
> >simple
> >to write a Tcl script that does this automatically if formatting is
> >known and guaranteeably consistent.
> >
> >Thanks,
> > John Stone
> > vmd_at_ks.uiuc.edu
> >
> >On Mon, Apr 05, 2004 at 06:35:06PM +0300, Dr. Daniel James White PhD
> >wrote:
> >>Hi,
> >>
> >>I have a virus envelope protein structure pdb entry,
> >>and I want to rebuild the whole virus protein shell
> >>using the symmetry transformations given in the 180 (60 trimers)
> >>
> >>REMARK 350 BIOMT1 1 1.00000 0.00000 0.00000
> >>REMARK 350 BIOMT2 1 0.00000 1.00000 0.00000
> >>REMARK 350 BIOMT3 1 0.00000 0.00000 1.00000
> >>REMARK 350 BIOMT1 2 0.80900 0.30900 0.50000
> >>REMARK 350 BIOMT2 2 etc...
> >>REMARK 350 BIOMT3 2 etc...
> >>etc......
> >>
> >>lines of the pdb file. These lines give the transformations to give
> >>the
> >>complete protein spherical capsid structure.
> >>
> >>can I use some vmd
> >>command to do this?
> >>
> >>I did manage to do this in SwissPDBViewer, but it is very boring doing
> >>it 1 by 1 and I cant save the complete capsid structure as a file that
> >>Bodil reads properly.
> >>
> >>can vmd do this,
> >>if not, anyone know how I can?
> >>
> >>cheers
> >>
> >>Dan
> >>
> >>Dr. Daniel James White BSc. (Hons.) PhD
> >>Cell Biology
> >>Department of biological and environmental science
> >>PO Box 35
> >>University of Jyväskylä
> >>Jyväskylä FIN 40014
> >>Finland
> >>+358 14 260 4183 (work)
> >>+358 468102840 (new mobile)
> >>NEW PHONE NUMBER!!!
> >>
> >>http://www.chalkie.org.uk
> >>dan_at_chalkie.org.uk
> >>white_at_cc.jyu.fi
> >
> >--
> >NIH Resource for Macromolecular Modeling and Bioinformatics
> >Beckman Institute for Advanced Science and Technology
> >University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> >Email: johns_at_ks.uiuc.edu Phone: 217-244-3349
> > WWW: http://www.ks.uiuc.edu/~johns/ Fax: 217-244-6078
> >
> >
> Dr. Daniel James White BSc. (Hons.) PhD
> Cell Biology
> Department of biological and environmental science
> PO Box 35
> University of Jyväskylä
> Jyväskylä FIN 40014
> Finland
> +358 14 260 4183 (work)
> +358 468102840 (new mobile)
> NEW PHONE NUMBER!!!
>
> http://www.chalkie.org.uk
> dan_at_chalkie.org.uk
> white_at_cc.jyu.fi
>

-- 
NIH Resource for Macromolecular Modeling and Bioinformatics
Beckman Institute for Advanced Science and Technology
University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
Email: johns_at_ks.uiuc.edu                 Phone: 217-244-3349              
  WWW: http://www.ks.uiuc.edu/~johns/      Fax: 217-244-6078