User:Inchoate: Difference between revisions

From PyMOLWiki
Jump to navigation Jump to search
 
(55 intermediate revisions by 3 users not shown)
Line 1: Line 1:
My name is Jason Vertrees and I'm a postdoc in computational biology.  Currently, I study proteins through mathematical models & machine learning.  My previous work was in theoretical biophysics.
My name is Jason Vertrees and I'm an independent consultant working with DeLano Scientific to promote PyMOL.  My previous work was in theoretical biophysics and machine learning to predict properties of proteins.


Also, I am the owner and of the PyMOLWiki website.
Also, I am the owner of the PyMOLWiki website.  I started it to help the PyMOL community store and organize information regarding PyMOL.


If you are interested in Biophysical, Structural or Compuational Biology, check out [http://www.bscb.utmb.edu/ BSCB@UTMB] -- my old school.
If you are interested in Biophysical, Structural or Compuational Biology, check out [http://www.bscb.utmb.edu/ BSCB@UTMB] -- my old school.


 
-- '''Jason Vertrees, PhD <br/>
'''Jason Vertrees, PhD
''Jason dot Vertrees (_at-) gmail dot com''
 
''jv(_at-)cs_dot_dartmouth(dot2)edu''
 
[http://www.cs.dartmouth.edu/~jv/ My Page]


= My ~/.pymolrc =
= My ~/.pymolrc =
Line 35: Line 31:
set ray_opaque_background,0
set ray_opaque_background,0
set defer_builds_mode, 3
set defer_builds_mode, 3
set async_builds, 1
</source>
</source>


== To Do ==
== To Do ==
* texture_fonts, 1 -- for speed
* pseudo-atoms; you can label them.  RightClick->New->PAtom->and then label it; move the atom (and the label goes w/it).  You can also move the label by itself
* movie_panel
* mset - clears the movie
* Movie->UpdateMovie
* Movie->UpdateMovie
* Scene->Buttons (shows buttons for each scene)
* Scene->Optmize (before saving scenes; use before optimizing)
* Scene->Optmize (before saving scenes; use before optimizing)
* Scene->Cache (cache's surface data)
* Scene->Cache (cache's surface data)
* A good way to make movies seems to be:
** madd
** prepare a scene; turn on scene buttons
** Fn+CTRL+down-arrow # adds the scene;
** madd 1 x90
** mview store, -1
* repeat
* when done do mview reinterpolate
* play the movie
* matrix_mode
* dot_solvent
* dot_solvent


Line 110: Line 92:




= Movie Making =
New motions
While PyMOL's capability to produce static images is quite powerful, there are some stories that are better told through movies, than static images alone. This little page will provide the necessary ideas, links, code and examples for making movies in PyMOL.
* Enter alone will store+reinterpolate
* Shift-Enter will just store & clears the reinterpolation
* CTRL-Enter will store but not reinterpolate
 
New Scenes
* setups the scenes first
* then just goto the frame you want and hit enter and the current will be stored with it
* or you can right-click on the movie_panel and store with scene
 
* purge kills the matrix info for the object
 
 
New movie stuff
* CTRL-LEFTCLK + DRAG RIGHT = add frame/states
* CTRL-LEFTCLK + DRAG LEFT = erase frame/states
* Rt clk on object
** Shift+Middle = drag
** shift+Left = rotate
 
= Cool Movies =
* [[File:Traj_movie.mpg]] &mdash; MD Trajectory made awesome with PyMOL; 5 MB mpg file.
* [[File:Long_movie_ray.mpg]] &mdash; long movie, shows dimerization, roams around the active site, 6 MB.
* [[File:Motions_movie.mpg]] &mdash; a simple movie with motions.
 
= tRNA hairball =
<source lang="python">
reinit
unset movie_auto_interpolate
# position molecule & view
fetch 1yfg, trna, async=0
orient
rotate z, 60, trna


== Terminology ==
python
Image a complex movie for a moment, a movie that has camera motions, objects moving independently or in concert with other objects, changing colors and representations.  To handle camera motions PyMOL must know at all times where the camera is located and what it's pointed toward (as well as clipping planes). For objects to move around or be rotated without regard to the camera (the objects themselves rotate/translate, not just the camera) then PyMOL has to store the coordinates and matrices for these objects, too.  Changing colors and representations for each object must somehow also be stored.  So, as you can see this is a multidimensional problem: at each time point in your movie, PyMOL must remember positions and representations, as well as make it easy for you to transition between them (interpolation).
for x in range(6):
  n = "trna_%s" % x
  cmd.create( n, "trna", 1, 1)


Despite these complexities, PyMOL tries to enable movie making for even novice users.  Let's start by defining a few PyMOL concepts&mdash;states, frames and scenes.
cmd.disable("trna")
cmd.translate( [0, -60, 0], "trna" )
cmd.origin("trna")


== Basic Movie Terminology ==
for x in range(6):
'''object'''
  n = "trna_%s" % x
::An object is any PyMOL-object loaded into PyMOL, like atoms, molecules, complexes, etc.
  cmd.rotate( "z", 60. * x, n)
:: [[:Category:Objects|All pages regarding objects]]
  cmd.show_as("cartoon", n)
  cmd.origin("trna")
  cmd.zoom()
python end


'''selection'''
:: A selection is a specifically chosen set of atoms, molecules, complexes etc. in PyMOL.  A selection is not an object, it's a subset of stuff from a (collection of) object(s).  Selections can be named and when named have are distinguished from objects by having parentheses around their names.  For example, ''foo'' would be an object and ''(foo)'' would be some selection.
:: [[:Category:Selections|All pages regarding selections]]


'''states'''
mset 1x360
:: A state is a particular conformation (set of coordinates) for a given object.  For example an NMR ensemble could contain the same molecule, but in 20 different states.  PyMOL can make movies from states.  States '''do not store representations''' in PyMOL (eg. cartoons vs. sticks).
:: See also [[:Category:States|All pages regarding states]]


'''scenes'''
frame 1
'''interpolation'''
orient vis
:: A scene is the staged representations of objects and the orientation of the camera.
mview store
:: See also [[:Category:Scenes|All pages regarding scenes]]


'''frames'''
rots = [ [0., 1., 0.], [-1.4, 1., 0], [-1.4, -1., 0.], [0., 1., 0.], [-1.4, 1., 0.], [1.4, 1., 0.] ]
:: A frame can be thought of as a single frame in a movie reel. A frame stores state information and scene information.
ang = [120,240,360]
:: See also [[:Category:Frames|All pages regarding frames]]
 
python
#for f in [120,240,360]:
for f in range(len(ang)):  
  cmd.frame(ang[f])
  for t in range(6):
    cmd.rotate(rots[t], 120, object="trna_%s" % t)
python end
mview interpolate, object=trna_*, power=1
 
python
#for f in [120,240,360]:
for f in range(len(ang)):  
  cmd.frame(ang[f])
  cmd.turn('y', 120)
  cmd.mview(action="store")
python end
 
mview interpolate, power=1
 
frame 1
mplay
</source>


= See Also =
= See Also =

Latest revision as of 00:14, 25 February 2010

My name is Jason Vertrees and I'm an independent consultant working with DeLano Scientific to promote PyMOL. My previous work was in theoretical biophysics and machine learning to predict properties of proteins.

Also, I am the owner of the PyMOLWiki website. I started it to help the PyMOL community store and organize information regarding PyMOL.

If you are interested in Biophysical, Structural or Compuational Biology, check out BSCB@UTMB -- my old school.

-- Jason Vertrees, PhD
Jason dot Vertrees (_at-) gmail dot com

My ~/.pymolrc

run ~/playground/pymol_scripts/oload.py
run ~/playground/cealign/qkabsch.py
run ~/playground/cealign/cealign.py
run ~/playground/pymol_scripts/find_bind.py
run ~/playground/pymol_scripts/zero.py
run ~/playground/pymol_scripts/removeAlt.py
run ~/playground/pymol_scripts/toGroup.py

one_letter ={'VAL':'V', 'ILE':'I', 'LEU':'L', 'GLU':'E', 'GLN':'Q', \
'ASP':'D', 'ASN':'N', 'HIS':'H', 'TRP':'W', 'PHE':'F', 'TYR':'Y',    \
'ARG':'R', 'LYS':'K', 'SER':'S', 'THR':'T', 'MET':'M', 'ALA':'A',    \
'GLY':'G', 'PRO':'P', 'CYS':'C'}

set ribbon_width, 8
set antialias,2
set cartoon_fancy_helices,1
set ray_trace_mode,1
set depth_cue,0
set ray_trace_fog,0
set ray_opaque_background,0
set defer_builds_mode, 3
set async_builds, 1

To Do

  • Movie->UpdateMovie
  • Scene->Optmize (before saving scenes; use before optimizing)
  • Scene->Cache (cache's surface data)
  • dot_solvent

Movie Notes

#
# Simple movie of independent motions
#

# This create an ala and a tyr.  It moves the ala indepdendent
# of the tyr. 
#
# Q: Why are the orientations off?  What is the equivalent
#    command to moving something with mouse_motions?

# reinit
reinitialize

set matrix_mode, 1
# turns on handy scene buttons
set scene_buttons, 1
# turns on the movie panel at the bottom of the sceen
set movie_panel, 1
# turns on a special mouse button panel
config_mouse three_button_motions

# start with an empty movie, scene 1 with 90 frames
mset 1 x90

# create an ala and tyr
frag ala
frag tyr
as spheres

# create our scene
translate [10, 0, 0], object=ala, camera=0
orient

# store the first frame
frame 1
mview store, object=ala

# goto the next frame
frame 45
translate [-20, 0, 0], object=ala, camera=0
orient

# store this frame
mview store, object=ala

#reinterpolate the scene
mview reinterpolate, object=ala


New motions

  • Enter alone will store+reinterpolate
  • Shift-Enter will just store & clears the reinterpolation
  • CTRL-Enter will store but not reinterpolate

New Scenes

  • setups the scenes first
  • then just goto the frame you want and hit enter and the current will be stored with it
  • or you can right-click on the movie_panel and store with scene
  • purge kills the matrix info for the object


New movie stuff

  • CTRL-LEFTCLK + DRAG RIGHT = add frame/states
  • CTRL-LEFTCLK + DRAG LEFT = erase frame/states
  • Rt clk on object
    • Shift+Middle = drag
    • shift+Left = rotate

Cool Movies

tRNA hairball

reinit
unset movie_auto_interpolate
# position molecule & view
fetch 1yfg, trna, async=0
orient
rotate z, 60, trna

python
for x in range(6):
  n = "trna_%s" % x
  cmd.create( n, "trna", 1, 1)

cmd.disable("trna")
cmd.translate( [0, -60, 0], "trna" )
cmd.origin("trna")

for x in range(6):
  n = "trna_%s" % x
  cmd.rotate( "z", 60. * x, n)
  cmd.show_as("cartoon", n)
  cmd.origin("trna")
  cmd.zoom()
python end


mset 1x360

frame 1
orient vis
mview store

rots = [ [0., 1., 0.], [-1.4, 1., 0], [-1.4, -1., 0.], [0., 1., 0.], [-1.4, 1., 0.], [1.4, 1., 0.] ]
ang = [120,240,360]

python
#for f in [120,240,360]:
for f in range(len(ang)): 
  cmd.frame(ang[f])
  for t in range(6):
    cmd.rotate(rots[t], 120, object="trna_%s" % t)
python end
mview interpolate, object=trna_*, power=1

python
#for f in [120,240,360]:
for f in range(len(ang)): 
  cmd.frame(ang[f])
  cmd.turn('y', 120)
  cmd.mview(action="store")
python end

mview interpolate, power=1

frame 1
mplay

See Also

oload, Cealign, find_bind, zero, removeAlt, toGroup, ribbon_width, antialias, cartoon_fancy_helices, depth_cue, ray_trace_fog, ray_opaque_background, defer_builds_mode, ray_trace_mode.

Tree 19:08, 26 May 2009 (UTC)