Getting WHATIF/DSSP data into PyMol


The gold standard in terms of tabulating secondary structure from a crystal structure is DSSP. This is accessed from WHATIF with the %SHOHST command (BUT: check very carefully WHATIF does not say "cannot find DSSP, using emulator" - otherwise the results are crap). To translate this output to PyMol, use the following. Save the DSSP WHATIF output in a separate file, called dssp.txt, which should look like:

                     10        20        30        40        50        60
                      |         |         |         |         |         |
    1 -  60  YKLVCYYTSWSQYREGDGSCFPDALDRFLCTHIIYSFANISNDHIDTWEWNDVTLYGMLN
    1 -  60   SSSSSSS33333TT333   333T TTT TSSSSSSSSSSTTSSS  TTTHHHHHHHHH
                     70        80        90       100       110       120
                      |         |         |         |         |         |
   61 - 120  TLKNRNPNLKTLLSVGGWNFGSQRFSKIASNTQSRRTFIKSVPPFLRTHGFDGLDLAWLY
   61 - 120  THHHH TT SSSSSSS TTT HHHHHHHHHTHHHHHHHHHHHHHHHHHHT TSSSSS T
                    130       140       150       160       170       180
                      |         |         |         |         |         |
  121 - 180  PGRRDKQHFTTLIKEMKAEFIKEAQPGKKQLLLSAALSAGKVTIDSSYDIAKISQHLDFI
  121 - 180    TT HHHHHHHHHHHHHHHHHHHTTT    SSSSSSS  HHHHHHH  HHHHHHH TSS
                    190       200       210       220       230       240
                      |         |         |         |         |         |
  181 - 240  SIMTYDFHGAWRGTTGHHSPLFRGQEDASPDRFSNTDYAVGYMLRLGAPASKLVMGIPTF
  181 - 240  SSS      T TT    TT TT  T333 T T TTHHHHHHHHHHTT  333SSSSSSTS
                    250       260       270       280       290       300
                      |         |         |         |         |         |
  241 - 300  GRSFTLASSETGVGAPISGPGIPGRFTKEAGTLAYYEICDFLRGATVHRILGQQVPYATK
  241 - 300  SSSSSSTTT  TTT  SSSS    TTT  TTSSSHHHHHHHTTT SSSSSTTTTSSSSSS
                    310       320       330       340       350       360
                      |         |         |         |         |         |
  301 - 360  GNQWVGYDDQESVKSKVQYLKDRQLAGAMVWALDLDDFQGSFCGQDLRFPLTNAIKDALA
  301 - 360  TTSSSS   HHHHHHHHHHHHHTT TSSSSS 333T TTT TTTT  T HHHHHHHHHHH


  361 - 361  A
  361 - 361
WITHOUT extra empty lines at the start or end of the file. Then use this command from a Linux PC:
cat dssp.txt | ~dava/programs/dava/dssp2pymol XXX | awk '{printf "alter A/%d:%d/, ss=\"%1s\"\n",$1,$2,$3}'

You can download the dssp2pymol.f FORTRAN program here and compile with f77 dssp2pymol.f -o dssp2pymol


Where you subsitute the XXX for the PDB file that you read into WHAT IF (very important to get this right - otherwise things will look funny). The appropriate PyMol commands will be written to your screen and you can paste them into your script.