Extracting secondary structure elements for an entire trajectory using dssp possible?

Issue #135 resolved
Former user created an issue

Is there an easy way to print sse$helix, sse$sheet, etc. provided by dssp(pdb) for an entire trajectory in Bio3d? This would allow monitoring secondary structure properties for an entire trajectory.

Comments (9)

  1. Xinqiu Yao

    Hi,

    That is a good suggestion and we should consider it. One simple way is to plot SSE time series with the image() function, with helix and sheet in different colors. Will try it shortly.

  2. Barry Grant

    How about trying the existing function dssp.trj(): "Secondary Structure Analysis of Trajectories with DSSP".

    I note that this function will be changed to dssp.xyz() in the next release and dssp() will be made to automatically call dssp.pdb() or dssp.xyz() as appropriate for the input. Lars made this suggestion recently.

  3. Xinqiu Yao

    Yes, that's good idea. We should also update the function to return a matrix of SSEs and a new plotting function for the results I guess.

  4. Barry Grant

    I am just now looking at the updated dssp.xyz() and am guessing its output is not what this person is after. From the example I can't appreciate why its current output would be useful...

    >     pdb <- read.pdb("1d1d", multi=TRUE)
      Note: Accessing on-line PDB file
    [1] "PDB has multiple END/ENDMDL records"
    [1] "multi=TRUE: 'read.dcd/read.ncdf' will be quicker!"
      HEADER    VIRAL PROTEIN                           15-SEP-99   1D1D
    >      dssp.xyz(pdb$xyz, pdb, skip = 100, threshold = 1.5)
    Possible unfolding event(s) in frame 1
      ... saving frame to file 1.pdb
    1 unfolding frame(s) detected.
    [1] 1
    

    What is this meant to be exactly? Should it not be a matrix of sse with a row per frame and col per position as is output by dssp.pdbs()? Also what is 'threshold' doing here. And what is the 1.pdb that is dumped to my disc - the Rd file does not contain sufficient information to understand this function and leaving file droppings like this is not good practice (although we do it elsewhere).

    Please explain

  5. Lars Skjærven

    looks like it was written to search for unfolding frames. You didn't write it? but I agree, in this particular case you would probably want what you mention. but again, that should probably be provided by dssp.pdb().. ?

  6. Barry Grant

    I did not write this one. I think dssp.xyz() should be the place for this and we can probably re-do this function completely. Not sure why dssp.pdb() should work on trajectories or xyz matrices? Are you suggesting this because of multi-model files? In this case calling dssp.pdb() would give the first model secondary structure but calling dssp.xyz(pdb$xyz, pdb) would give the trajectory like multi--model output...

  7. Lars Skjærven

    Ok. I can do a re-write of this function. Should be relatively straight forward.

    Jepp - I was thinking that dssp.pdb() could handle multi-model files. Certainly ok to use dssp.xyz for this.

  8. Barry Grant

    This is now possible with the dssp.xyz() function, which now returns a matrix of frame X residue SSE type.

    Note that dssp will be much slower than stride for this calculation but that stride.xyz() has not yet been implemented.

  9. Log in to comment