Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. #!/usr/local/bin/vmd -dispdev text
  2.  
  3. # embed (parts of) protein into a membrane
  4. # Ilya Balabin (ilya@ks.uiuc.edu), 2002-2003
  5. #
  6. # You need: a) membrane structure (membrane.psf/pdb);
  7. # b) properly oriented and aligned to the membrane
  8. # protein structure (protein.psf/pdb)
  9. ## USAGE: vmd -dispdev text < combine.tcl | tee combine.log
  10.  
  11.  
  12. # set echo on for debugging
  13. echo on
  14.  
  15. # need psfgen module and topology
  16. package require psfgen
  17. topology top_all27_prot_lipid.inp
  18.  
  19. # load structures
  20. resetpsf
  21. readpsf membrane.psf
  22. coordpdb membrane.pdb
  23. readpsf protein.psf
  24. coordpdb protein_aligned.pdb
  25.  
  26. # can delete some protein segments; list them in brackets on next line
  27. set pseg2del { }
  28. foreach seg $pseg2del {
  29. delatom $seg
  30. }
  31.  
  32. # write temporary structure
  33. set temp "temp"
  34. writepsf $temp.psf
  35. writepdb $temp.pdb
  36.  
  37. # reload full structure (do NOT resetpsf!)
  38. mol load psf $temp.psf pdb $temp.pdb
  39.  
  40. # select and delete lipids that overlap protein:
  41. # any atom to any atom distance under 0.8A
  42. # (alternative: heavy atom to heavy atom distance under 1.3A)
  43. set sellip [atomselect top "resname POPE"]
  44. set lseglist [lsort -unique [$sellip get segid]]
  45. foreach lseg $lseglist {
  46. # find lipid backbone atoms
  47. set selover [atomselect top "segid $lseg and within 0.8 of protein"]
  48. # delete these residues
  49. set resover [lsort -unique [$selover get resid]]
  50. foreach res $resover {
  51. delatom $lseg $res
  52. }
  53. }
  54.  
  55. # delete lipids that stick into gaps in protein
  56. foreach res { } {delatom $LIP1 $res}
  57. foreach res { } {delatom $LIP2 $res}
  58.  
  59. # delete lipids that fall out of the PBC box
  60. # the following numbers are for example only; yours are different!
  61. set xmin -55
  62. set xmax 41
  63. set ymin -51
  64. set ymax 34
  65. foreach lseg {"LIP1" "LIP2"} {
  66. # find lipid backbone atoms
  67. set selover [atomselect top "segid $lseg and (x<$xmin or x>$xmax or y<$ymin or y>$ymax)"]
  68. # delete these residues
  69. set resover [lsort -unique [$selover get resid]]
  70. foreach res $resover {
  71. delatom $lseg $res
  72. }
  73. }
  74.  
  75. # write full structure
  76. writepsf protein_mem.psf
  77. writepdb protein_mem.pdb
  78.  
  79. # clean up
  80. file delete $temp.psf
  81. file delete $temp.pdb
  82.  
  83. # non-interactive script
  84. quit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement