Jaro 2012 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky, EVROPSKÁ UNIE INVESTICE DO ROZVOJE VZDELÁVANÍ IV121 Vybrané aplikace informatiky v biologii -Přednáška 6 IV121 Vybrané aplikace informatiky v biologii 3D počítačová grafika Katedra informačních technologií Masarykova Univerzita Brno Stringologie Úvod Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí DP - Needleman-Wunsch Vylepšení pro maximálně k chyb Burrows-Wheeler transform 3D Počítačová Grafika (nebo Geometrie) - modelování scén „ SDL (scene description language) - vizualizace scén (rendering) - rasterizace - „raytracing" zajímavé koncepty CSG (constructive solid geometry) skriptování scén příklad, generování realistických stromu a keru SDL-Scene Description Languages VRMUX3D 3DMLW POV-Ray SDL Renderman shading language tp://en.wiki pedia.org/wiki/Scene_description_language RenderMan Shading Language Daniel Scherzer Vienna University of Technology Co je RenderMan? Autorem je společnost Pixar (1987) Něco jako PostScript pro 3D - Scene Description Language není modelovacím programem není renderingovým programem Rozhraním mezi modelováním a renderingem 04/22/12 6 Príklad bytestream kódu pro RenderMan Interface Display "RenderMan" "framebuffer" "rgb" Format 256 192 1 WorldBegin Surface "constant" Polygon "P" [0.5 0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5] WorldEnd RIB Display "RenderMan" "framebuffer" "rgb" Format 256 192 1 WorldBegin r — ™ ™ — ™ ™ — ™ ™ — ™ ™ — ™ ™ — i L S u r.fac e_ "constant^ Polygon "P" [0.5 0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5] WorldEnd API #include RtPoint Square[4] = { {.5, .5, .5}, {.5,-.5, .5}, { - . 5, - . 5, . 5 } , { — • 5, • -5, «5} }r main(void){ RiBegin(RI_NULL); /* Start the renderer */ RiDisplay("RenderMan", RI_FRAMEBUFFER, "rgb", RI_NULL); RiFormat((Rtlnt) 256, (Rtlnt) 192, 1.0); RiWorldBegin(); RiSurface("constant", RI_NULL); RiPolygon( (Rtlnt) 4, /* Declare the square */ ^^^^ RI_P, (RtPointer) Square, RI_NULL) ; RiWorldEnd(); RiEnd(); /* Clean up */ 04/22/12 9 RenderMan Shading Language surface clouds(float vfreq = .8 ) { float sum ; float i; color white = color(1.0, 1.0, 1.0); point Psh = transform("shader", P); sum = 0; freq = vfreq; for (i = 0;i<6;i = i + l) { sum = sum + 1/freq * abs(.5 - noise(freq * Psh)); freq = 2 * freq; } Ci = mix(Cs, white, sum*4.0); Oi = 1.0; /* Always make the surface opaque * RenderMan Shading Language surface clouds|float vfreq = .8 )| { float sum ; float i; color white = color(1.0, 1.0, 1.0); point Psh = transform("shader", P); s urn = () -freq =|vfreq; for (i = 0;i<6;i = i + l) { sum = sum + 1/freq * abs(.5 - noise(freq * Psh)); freq = 2 * freq; Ci = mix(Cs, white, sum*4.0); Oi = 1.0; /* Always make the surface opaque */ 04/22/12 RenderMan Shading Language surface clouds(float vfreq = .8 ) float sum ; float i; color white point Psh = | color fll.0, 1.0, 1.0); ransformi"shader" , P) ; sum = 0; freq = vfreq; for (i = 0; i < 6; i = i + 1 ) { _ sum = sum + 1/freq ^labsj.5 - noise(freq * Psh)); freq = 2 * freq; Ci =1 mi xfCs- white, sum*4.0); Oi = 1.0; /* Always make the surface opaque * RenderMan Shading Language surface clouds(float vfreq = .8 ) { float sum ; float i; color white = color(1.0, 1.0, 1.0); point Psh = transform("shader", P); sum = 0; for^ti =0;i<6;i=i+l) { sum = sum + 1/freq * abs ( .5 - noise(freq * Psh)); freq = 2 * freq; } Ci = mix(Cs, white, sum*4.0); Oi = 1.0; /* Always make the surface opaque * RIB s použitím "Shader" kódu Display "RenderMan" "rgb" Formát 256 192 1 WorldBegin ^gurface "clouds" "framebuffer" Polygon "P" [0.5 0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5] WorldEnd Součásti systému RenderMan Rman Geom Code Rman Program Rman Shader .sl TIFF image shader txmake Byte-code Shader .slo Rman texture render t Program 04/22/12 Surface Shader surface plastic ( float color Ks = .5, | Kd roughness — specularcolor normal S3 = faceforward (normalize 0) , [i vector 53 = normalize(-B); = IQsl; JCU = lad* ( ICsL * ( JSEdif fuse (ffl£) ) + specular co lor— specular (IJJ-Xj i/-} jcou *ambient()+ ouqhness) ) ; 1 Light Shader light pointlight ( float intensity = 1; color lightcolor = 1; ..Rendering" - rasterizace Vlastnosti všech bodů y „ prostoru/moďelu jsou lokálně definovaný - "raytracing" , ,VJasínovsti bodů ísqu ovlivněny elojDgJne všemi ostatními body ve cene/modelu. Dokáže správně,vykreslit , , , tansparetnost, refrakci svetía a podobné efektv. Rend 8 sr'mg Pipeline - OpenGL Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by Greg Humphreys) 22 3D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination 3D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination 3D Rendering Pipeline 3D Geometric Primitives This is a pipelined sequence of operations to draw a 3D primitive into a 2D image (this pipeline applies only for direct illumination) Image 3D Rendering Pipeline 3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Transform into 2D screen coordinate system 3D Rendering Pipeline 3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Viewing Transformation Mapping from world to camera coordinates Eye position maps to origin Right vector maps to X axis back Up vector maps to Y axis up N#/_^rjght z Back vector maps to Z axis ight View. plane Camera x World Projection General definition: Transform points in r?-space to m-space (m Camera -> Screen Just like raytracer "screen" is the z=d plane for some constant of Origin of screen coordinates is (0,0,d) Its x and y axes are parallel to the x and y axes of the eye coordinate system All these coordinates are in camera space now Planar geometric projections Parallel Perspective Orthographic Oblique One-point Top (plan) Front elevation Cabinet Axonometrie Cava|ier Side elevation Two-point Three-point $ Other Isometric Other FVFHP Figure 6, Perspective vs. Parallel Perspective projection + Size varies inversely with distance - looks realistic - Distance and angles are not (in general) preserved i^nl^ - Parallel lines do not (in general) remainparalle Parallel projection + Good for exact measurements + Parallel lines remain parallel - Angles are not (in general) preserv Classical Projections Angel Figure4§.3 84848484 csc 480 /580 'it Computer Graphics K. Kirby I —■ The Bresenham Algorithm void line( int xA, int yA, int xB, int yB ) // Special case: shallow increasing slope. { const int DX= xB - xA ; const int DY= yB - yA ; const int DP_FLAT= 2*DY ; const int DP_JUMP= DP_FLAT - 2*DX ; assert( 0 < DY && DY < DX ) ; int x= xA ; int y= yA ; int p= 2*DY - DX ; pix ( xA f yA ) 'r while ( x < xB ) { x++ ; if ( p > 0 ) { ++y ; p+= DP_JUMP ; } else p+= DP_FLAT ; Pix( x, y ) ; initial values X++ if ( p > O ) m > 1 ■ Y" H Fill the scan line rightmost left pixels, above & below for each polygon for each scanline for each pixel in scanline update depth at pixel if pixel depth < buffered depth write to screen & depth buffers Ray Tracing Mani Thomas CISC 440/640 Computer Graphics torealismus Fotorealismus Úvod Co je Ray Tracing? • Ray Tracing je renderingová metoda založena na globálním osvětlení scény, která generuje realistické obrazy pomocí počítače. • V ray tracing-u, paprsek světla je sledován podél své dráhy v opačném směru. • Začínáme od kamery směrem ke zdroji světla a zjišťujeme stav objektů protínajících dráhu paprsku Daný obrazový bod je nastaven na barvu odpovídající danému paprsku. Pokud paprsek nenarazí na žádný předmět je bod nastaven na barvu pozadí. Ray Casting/Tracing Iii Ray Casting • Paprsky se zastaví na prvním objektu Ray Tracing • Rekurze předcházejícího principu Courtesy: Angel Algoritmus - Ray casting define the objects and light sources in the scene set up the camera for(int r = 0; r K nRows; r++) for (int c = 0; c K. nCols; C++) { /. Build the rc-th ray 2. Find ail intersections of the rc-th ray with objects in the scene 3. Identify the intersection that lies closest to, and in front of the eye 4. Compute the "hit point" where the ray hits this object, and the normal vector at that point 5. Find the color of the light returning to the eye along the ray from the point of intersection 6. Place the color in the rc-th pixel } Courtesy F.S. Hill, "Computer Graphics using OpenGL" Ray Tracing Ray Tracing Ray Tracing Ray Tracing *Cr*-cn created by Michael Sweeny, et al for ACM SIGGRAPH Education slide set 1991 Ray Tracing Ray Tracing TtrtuML created by Michael Sweeny, et al for ACM SIGGRAPH Education slide set 1991 Ray Tracing Ray Tracing ■*irLu._I created by Michael Sweeny, et al for ACM SIGGRAPH Education slide set 1991 Odraz Odraz Lom světla Jiné efekty Jiné efekty Rozmazání pohybem Strom světla Super-sampling • Vyhlazení hran Obal Obal skupiny objektů Prostorové rozdělení úloh Nerovnoměrné rozdělení na podprostory References • Textbooks • F. S. Hill, "Computer Graphics Using OpenGL" • Commonly used ray tracing program (completely free and available for most platforms) • http://www.povray.org/ • Interesting Links • Interactive Ray Tracer - Alyosha Efros • http://www.cs.berkeley.edu/~efros/java/tracer/tracer.html • Ray Tracing explained • http://www.geocities.com/jamisbuck/raytracing.html • http://www.siggraph.org/education/materials/HyperGra Structure Visualization Tools Written by James Coleman Presented by Xiang Zhou Structure Visualization One of the primary activities in proteomics R&D is determining and Visualizing the 3D structure of proteins in order to find where drugs might modulate their activity. Other activities include identifying all of the proteins produced by a given cell or tissue and determining how these proteins interact. BIOINFORMATICS COMPUTING, p.186, Bryon Bergeron, M.D., Prentice Hall 2002 Some Common Tools 100's of visualization tools have been developed in bioinformatics. Many are specific to hardware such as microarray devices. Shareware utilities for PC's PDB Viewer, WebMol, RasMol, Protein Explorer, Cn3D VMD, MolMol, MidasPlus, Pymol, Chime, Chimera Application Feature Summar Feature RasMol Cn3D PyMol SWISS-PDBViewer Chimera Architecture Stand-Alone Plug-in Web-Enabled Web-enabled Web-enabled Manipulation Power Low High High High High Hardware Requirements Low/Moderate High High Moderate High Ease of Use High; command line Moderate Moderate High Moderate;GUI +command line Special Features Small Size; easy install Powerful GUI GUI; ray tracing Powerful GUI GUI; collaboration Output Quality Moderate Very high High High Very high Documentation Good Good Limited Good Very good Support Online; Users groups Online; Users groups Online; Users groups Online; Users groups Online; Users groups Speed High Moderate Moderate Moderate Moderate/Slow OpenGL Support Yes Yes Yes Yes Yes Molecule Representations Wireframe Bonds and Bond Angles Ball and Stick Shows Atoms, Bonds and Bonds Angles Ribbon diagrams Shows Secondary Structure Van der Waals surface Diagram Shows Atomic Volumes Backbone Shows Overall Molecular Structure Wireframe used to show individual chains: Stick view showing atoms and bonds: P3" PyMOL Viewer in ■♦ami Mouse: L M None Rota Move MovZ Shft +lBx -lBx Clip Ctrl +lb Pkflt PkBd CtSh lb Orig rb FrameC 1/ 1] 11/s PyM0L>_ Surface View showing surface fields: Ribbon view of secondary structure Distinct geometrical features by color Other properties that can be Visualized ■ MolMol supports the display of electrostatic potentials across a protein molecule. ■ MidasPlus (a predecessor of Chimera) allows for the editing of sequences visually to see the effects of point mutations. For Protein interactions, we need a metaphor that reveals dynamics Haptic Joystick: Provides force feedback when user manipulates a molecule near another one. 3D Goggles combined with haptic gloves to feel electrostatic potentials and see tertiary structure dynamics. PyMol provides scripting that can produce a movie in 3D of the geometrical relationship between multiple proteins. Stereo view of interaction of two proteins. Scripting allows for the movement of individual molecules creating a movie. ♦a hp ♦a m* The PYMOL Molecular Graphic System e PyMOL Molecular Graphics System An extensible open-source alternative to commercial visualization software. • 4 IS* (C) 2000 by Warren L. DeLano (vwwwdelanosdentiflc.com] PYMOL PyMOL's Modular Architecture Very easy to build custom applications! External GUI for Basic I/O & Settings (Optional) Application Application Specific <—► Specific External GUI Computation i T PyMOL Application Programming Interface (Python API) 1 I C-Language OpenGL Developer's GUI Rendering Core (Optional, OpenGL) (C) 2000 by Warren L. DeLano (ymw.ddanQscierrtitic.com) PyMOL's Top Features Real-Time 3D Visualization Publication Quality Renderings Extensive Animation Capabilities Support for X-ray Crystallography Modular Architecture Flexible API for Custom Applications Open Source and Freely Available Written in C and Python (C) 2000 by Warren L. DeLanc (wwwddanosdenrtific.corri) It supports Windows, Macintosh, Linux, Solaris, IRIX Freely available @ http://www.pymoi.org/ Basic modules / Names Panel Mouse Matrix Ä.J Frame Indicator Movie Controlsx Command Line PüLa Nu--r M...: +1B- -IB* ZlLfi IV nr,| if, PDB file Residue # Coordinates Temp, factor ATOM 3 C ASP A 2 28. 867 144. 134 11. 673 1 .□□ 98 .50 ATOH 4 0 ASP A 2 28. 431 143 . □ 93 11. 149 1 .□□ 98 .95 ATOM 5 CE ASP A 2 27. □ 61 145. 944 12 . 178 1 .□□ 98 .95 ATOH 6 CG ASP A 2 27. 416 146. 580 13 . 526 1 .□□ 98 .24 ATOH 7 OD1 ASP A 2 28. 567 146. 469 14. □ 18 1 .□□ 97 .02 ATOH S OD 2 ASP A 2 26. 500 147. 204 14. 110 1 .□□ 95 . 61 ATOH 9 N SER A 3 29. 866 144. 144 12 . 570 1 .□□ 96 .71 ATOH 10 CA SER A 3 30. 623 142 . 954 13 . □ 11 1 .□□ 91 . 16 ATOH 11 C SER A 3 30. 990 142 . 916 14. 503 1 .□□ 87 .50 ATOH 12 0 SER A 3 31. 008 143 . 981 15. 129 1 .□□ 92 .21 ATOH 13 CE SER A 3 31. 935 142 . 827 12 . 176 1 .□□ 88 .43 ATOH 14 OG SER A 3 32 . 387 144. □ 45 11. 589 1 .□□ 85 .92 ATOH 15 N GLY A 4 31. 281 141. 750 15. □ 93 1 .□□ 82 .44 ATOH 16 CA GLY A 4 31. 687 141. 634 16. 495 1 .□□ 62 .79 ATOH 17 C GLY A 4 32 . 756 140. 563 16. 628 1 .□□ 49 .98 Load your pdb file External GUI: file-open Command lines: load file-path (e.g., load $c/lhng. pdb) PyMOL Tcl/TkCUl Tic fJcit DJld 'Ajv c Display 5ettrg 5:ene Mouse Vvlz.3 d Pjjgh 03© ' qh~ ("C"J ZCCf DcLan3 scicnt" ~i c |i irphilhTP ^ufffirt ^ij'i-rn f tn nn nay 'ip rpruire-fl T BuilL btjyliiiJ d fir i Le Muii_r-:>y:> Ltrn t:udl JdL i ur per uU. /rtWrtrpiTnöy. 0"g/funci ng . himl -for mere ■ nf 3"-nüti cn . jdied Lr open-5 jur-i_t Fi'MOL vi' i i ur 0 . 3S . ^' - ■ | Zppm | r 1 Fed; Unpitl-. | select |1 | < | Stop | Noy | 5 1 s| 1 HCbot Comma-d Euldei _ Load files Load data-file-name urjiL-iK i-it Cel ecti n=; Residues-Frame [ 1,-' ±1 i/sc II I I I l| Manipulate the view by mouse n u + SHIFT KEY Clipping Planes Front ^ Back ^ Control of clipping planer. Important panels Manipulate your objects Actions^ zoom center origin ori ent preset ■ find I .generate assign sec, struct rename object duplicate object delete object add hydrogens remove hydrogens remove waters ■state i ^masking 'sequence imov ement i compute 1 i nes nonbonded sticks ribbon cartoon dots spheres nb_spheres mesh surface organi c main chain side chain disulfides Hide: ev erything 1 i nes nonbonded sti cks ri bbon cartoon 1abels cell dots spheres nb_spheres mesh surface main chain side chain waters hydrogens Color: iby element |by chain jby ss ^ pectr m ! reds greens Right click your mouse: more options Actions: show B-factor putty Actions: generating electrostatics map -itwK fictions; {lEUK_al 7nnm 1EUIK_6_G-Qrient .lEWK_e_micenter lEUIK_e_pjorigin jGenerate; [selection preset f f i nd 'align Vacuum Electrostatics; protein contact potential (local) NOTE; Due to short cutoffs, truncations, and lack of solvent "screening", these computed potentials are only qualitatively useful. Please view with skepticism! ■symmetry mates Ivacuum electrostatics assign sec. struc. rename object duplicate object delete object hydrogens remove waters b^f.G55 PyMOL Viewer /3CLN 21 26 31 3£ 41 46 51 56 61 66 71 76 81 36 flFSLFDKDGDGTITTKELGTVMRSLGQNPTEPlELQDMINEVDflDGNGTIDFPEFLTMMflRKMKDTDSEEEIREPlFR^ Actions: Find pol A s H L H J L ft s (sel01> fictions: sel01_P delete selection rename selection zoom center ori gin ori ent jithin selection Ipolar contactslfind duplicate selection' create object masking |mov ement I i [compute PyMOL>. , J t$ *^ [a] Microsoft PowerPoint ,,, Q http://pymol,sourcef,,, PyMOL Viewer 7^ PyMOL Tcl/Tk GUI | Type to search )Q8ff<^ 4:51PM Actions: Others *♦* Adding or removing Hydrogen atoms *♦* Counting atom numbers or net charges Masking or unmasking residues Objects operations Build: sculpting File Edit Build Movie Display Setting Scene Mouse Wizard Plugin COMPND COMPND objectM objectMi symmetr crndLoad You cli sel ectoi You cM\ Selecto 1HNG MTDDIDE1 Fragment Residue Ctrl+ left click ture assignments y information. Sculpting Cycle Bond Valence [Ctrl-W] Fill Hydrogens on (pkl) [Ctrl-R] Invert (pk2)-(pkl)-(pk3) [Ctrl-E] Create Bond (pkl)-(pk2) [Ctrl-T] Auto-Sculpting «/ Sculpting Remove (pkl) [Ctrl-D] Make (pkl) Positive [Ctrl-K] Make (pkl) Negative [Ctrl-J] Make (pkl) Neutral [Ctrl-U] Activate Deactivate Cjear Memory J. Cycle per Update 3 Cycles per Update 10 Cycles per Update 33 Cycles per Update 100 Cycles per Update 333 Cycles fier Update 1000 Cycles per Update Also can build structures by adding or deleting atoms, bonds and amino acids Setting Scene Mouse Wizard Plugin Help Tutorial Edit All... Colors... Cartoon ► Transparency Rendering ► Output Size ► Control Size ► Ignore PDB Segment Identifier ^ Auto-Zoom New Objects Auto-Show New Selections N OF A SOLUBLE Side Chain Helper x/ Round Helices Fancy Helices Cylindrical Helices >\ ■MClear Command Builder 7éPyM0LTcl/Tl< GUI File Edit Build Movie Display Setting 5cene Mouse Wizard Plugin Help selector: selection "sell's"" defined with YOU Clicked /3CLN/3CLN//GLU'"31/CG Selector: selection "sell3" defined with sceneclick: no atom found nearby. Sceneclick: no atom found nearby, sceneclick: no atom found nearby. YOU Clicked /3CLN/3CLN//ASP"20/OD2 Selector: selection "sell4" defined with YOU Clicked /3CLN/3CLN//CA"l/CA SceneClick: no atom found nearby. 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 VMRSLGQNPTEflELQDMINEVDflDGNGTIDFPEFLTHMARKHKDTDSEEEIREflFRVFDKDGNGYISflňELRHVMTNl Ray Rock Unpick Deselect Get View |< < Stop Play > >| MClear Command Builder istances wizard-measurement Then click the target atoms PyM0L>. bilde n or i J uerault Design tnglisn nj.i.) (sel07) j(sel08> |(sel09> |(sell0> (selll) (sell2> (sell3> BBFBF OBrrr 1W BP ■ wn r BHFBF HP I3BFBP i ľ: r bbffp EfBFBF rrrrr asmrement iDistances jCreate New Object Mouse Mode 3-Elutton Viewing Buttons L M R Wheel a Keys Rota Move MovZ Slab Shift + Box -Box Clip MovS Ctrl +/- Pkflt Pkl MuSZ CtSh Sole Orig Menu MovZ SnglClk +/- Cent Menu DblClk Menu - Pkflt Selecting Atoms Frame C 1/ 1] 1/sec -0 Microsoft PowerPoint ,., Q http://pyrnol.sourcef.,. _. PyMOL Viewer Type to search ^^^©©fSF^ 4:28 PM File Edit Build Movie Display Setting Scene Mouse Wizard Plugin Help Tutorial ititle 2 form OF the CELL ADHESION molecule icompnd mol_ID: 1; Icompnd 2 molecule: CDS; Icompnd 3 CHAIN: A, B; Icompnd 4 engineered: yes ObjectMolecul e: Read secondary structure assil objectMol ecul e: Read crystal syrrmetry informa symnetry: Found 8 symnetry operators. CmdLoad: "C:/Document5 and Settings/Jason/Ded PyMOL> center Appearance Measurement Mutagenesis Pair Fitting Density Filter Sculpting "3 oaded as "1HNG" Reset I Zoom Unpick Draw I Ray | Rock Deselect <__<_ Stop I Play > I > I Get View Command MClear Builder Wizard: Making mutations j a PyM0L>_ S\\aTTToľ7T* üef a u ft"ušsign ?jj tngiiíii :Uľ7T -> GLU ISľiouj Lines_ |Backbone-Depen Mouse Mode 3-B Buttons L & Keys Rota M Shft +Box -Ctrl +/- P CtSh Sele 0 SnglClk +/- C DblClk Menu Selecting Resi Frame [1/1 No Mutation -> ALA -> ARG -> ASN -> ASP -> CYS -> GLN -> GLU -> GLY -> HIS -> ILE -> LEU -> LYS -> MET -> PHE -> PRO -> PRO -> SER -> THR -> TRP -> TY R -> VAL ; stan ' m ? 0 I gj tu] I Overlay two structures Align filenameA//2-240/CA, filenameB//2-240/CA Make movies Simplest way: Fetch filename, mplay Util.mrock(start,finish,angle,phase,loop-flag) Util.mroll(start,finish,loop-flag) e.g. load mset 1 x60 1.mrock 1,60,1 Create a 60 frame movie with +/- 90 deg. rock Create full rotation around the Y axis over 60 frames ImageJ, or Xnview and UnFREEz to generate movies Scripts animation in Pymol