[Chimera-users] Calculating the total areaSAS from a series of PDB files

Elaine Meng meng at cgl.ucsf.edu
Wed Oct 21 11:22:43 PDT 2015


Hi Rodrigo,
One way without using attributes but involving more text processing would be to:

(1) open trajectory, show surface for first frame

(2) in MD Movie, define per-frame Chimera command script
<http://www.rbvi.ucsf.edu/chimera/docs/ContributedSoftware/movie/movie.html#per-frame>

echo <FRAME>

… to report the frame number into the Reply Log.  Start running that per-frame script.

(3) play through trajectory once without looping.  That will recalculate surface at each frame and report total area (along with a bunch of extra lines) in the Reply Log.  The per-frame script above will put the frame number in to help you parse the output.  Save Reply Log to text file and use your favorite text-editing approach to extract only the parts of interest. 

In my little test using NMR ensemble 1PLX as a trajectory, here’s what I get for the last two frames:
-----
79
/Users/meng/Desktop/Chimera.app/Contents/Resources/bin/mscalc 1.400000 2.000000 0
MSMSLIB 1.3 started on vpn-169-230-25-25.cgl.ucsf.edu
Copyright M.F. Sanner (March 2000)
Compilation flags  

Surface 1PLX.pdb, category main, probe radius 1.4, vertex density 2
  1 connected surface components
  Total solvent excluded surface area = 441.217
  Total solvent accessible surface area = 699.678
80
/Users/meng/Desktop/Chimera.app/Contents/Resources/bin/mscalc 1.400000 2.000000 0
MSMSLIB 1.3 started on vpn-169-230-25-25.cgl.ucsf.edu
Copyright M.F. Sanner (March 2000)
Compilation flags  

Surface 1PLX.pdb, category main, probe radius 1.4, vertex density 2
  1 connected surface components
  Total solvent excluded surface area = 445.855
  Total solvent accessible surface area = 713.182
-----

NOTE: The main problem is that the surface calculation will probably fail on some frames.  However, that would happen even if you did each one manually.

I hope this helps,
Elaine
-----
Elaine C. Meng, Ph.D.                       
UCSF Computer Graphics Lab (Chimera team) and Babbitt Lab
Department of Pharmaceutical Chemistry
University of California, San Francisco

On Oct 21, 2015, at 11:03 AM, ros <rodrigogalindo at gmail.com> wrote:

> Hello!
> 
> I would like to measure the SAS from a series of PDB files to see how
> the surface value changes over time (the PDB files are from an MD
> simulation).  I know that If I open a PDB file and calculate the
> surface, I get the areaSAS value, but I do not want to do this 5000
> times.
> 
> I am making progress on a python script to automate the process, which is:
> 
> --------------------------------------------
> import os
> from chimera import runCommand as rc
> from chimera import replyobj
> 
> os.chdir("/home/tmp/pdb")
> 
> file_names = [fn for fn in os.listdir(".") if fn.endswith(".pdb")]
> 
> for fn in file_names:
>    replyobj.status("Processing " + fn)
>    rc("open " + fn)
>    rc("surf")
> 
>    rc("sel :1-6")
>    from chimera.selection import currentResidues
>    residues = currentResidues()
>    outf = open("/home/tmp/sas.dat", "w")
>    for r in residues:
>        print>>outf, r, r.areaSAS
> 
> rc("stop now")
> --------------------------------------------
> 
> The PDB's consist of only 6 residues (DNA residues).  With this
> script, I get the output:
> 
> 
> #1 DA 1 320.8377808
> #2 DC 3 277.614161432
> #2 DG 4 323.883637217
> #1 DC 3 284.934065707
> #2 DT 6 221.04715555
> #0 DA 1 321.883850728
> #1 DC 5 345.231659889
> #0 DC 2 179.379177183
> #2 DC 5 350.455405176
> #0 DC 3 285.785918236
> #1 DT 6 245.048330456
> #0 DG 4 303.501165912
> #1 DG 4 314.409510799
> #0 DC 5 352.639633257
> #1 DC 2 193.509086639
> #0 DT 6 214.883334659
> #2 DC 2 183.766654447
> #2 DA 1 344.369126737
> 
> 
> using 3 test pdb's.
> 
> Is there a way to get the total value of areaSAS of each model and not
> for each residue?  I am interested in having a file just like (using
> for example 3 pdb's):
> 
> Model #     total areaSAS value
> #0               123123.123122
> #1                123123.12312
> #3                123123.12312
> ...
> etc.
> 
> I have tried deleting the residues loop, but I do not know how the
> total areaSAS attribute is stored or how to assign it to a variable.
> 
> Thank you for your help!
> 
> Rodrigo.
> 
> PS.  The main goal is to be able to do this without the PDB files and
> just reading an AMBER topology/trajectory...





More information about the Chimera-users mailing list