ProteinShader: illustrative rendering of macromolecules
Tóm tắt
Cartoon-style illustrative renderings of proteins can help clarify structural features that are obscured by space filling or balls and sticks style models, and recent advances in programmable graphics cards offer many new opportunities for improving illustrative renderings. The ProteinShader program, a new tool for macromolecular visualization, uses information from Protein Data Bank files to produce illustrative renderings of proteins that approximate what an artist might create by hand using pen and ink. A combination of Hermite and spherical linear interpolation is used to draw smooth, gradually rotating three-dimensional tubes and ribbons with a repeating pattern of texture coordinates, which allows the application of texture mapping, real-time halftoning, and smooth edge lines. This free platform-independent open-source program is written primarily in Java, but also makes extensive use of the OpenGL Shading Language to modify the graphics pipeline. By programming to the graphics processor unit, ProteinShader is able to produce high quality images and illustrative rendering effects in real-time. The main feature that distinguishes ProteinShader from other free molecular visualization tools is its use of texture mapping techniques that allow two-dimensional images to be mapped onto the curved three-dimensional surfaces of ribbons and tubes with minimum distortion of the images.
Tài liệu tham khảo
RSCB Protein Data Bank[http://www.rcsb.org]
Berman HM, Westbrook J, Feng Z, Gilliland G, Bhat TN, Weissig H, Shindyalov IN, Bourne PE: The Protein Data Bank. Nucleic Acids Res 2000, 28: 235–242.
Richardson JS: The anatomy and taxonomy of protein structure. Adv Protein Chem 1981, 34: 167–339.
World Index of Biomolecular Visualization Resources[http://molvis.sdsc.edu/visres/molvisfw/titles.jsp]
Sayle RA, Milner-White EJ: RASMOL: biomolecular graphics for all. Trends Biochem Sci 1995, 20(9):374.
Home Page for RasMol and OpenRasMol[http://www.openrasmol.org]
Bernstein HJ: Recent changes to RasMol, recombining the variants. Trends Biochem Sci 2000, 25(9):453–455.
Martz E: Protein Explorer: easy yet powerful macromolecular visualization. Trends Biochem Sci 2002, 27(2):107–109.
KiNG Display Software[http://kinemage.biochem.duke.edu/software/king.php]
WebMol Java PDB Viewer[http://www.cmpharm.ucsf.edu/cgi-bin/webmol.pl]
Jmol: an open-source Java viewer for chemical structures in 3D[http://www.jmol.org]
OpenGL Shading Language Specification[http://www.opengl.org/documentation/glsl]
Shreiner D, Woo M, Neider J, Davis T: OpenGL 2.0 and the OpenGL Shading Language. In OpenGL Programming Guide. Fifth edition. Upper Saddle River, NJ: Addison-Wesley; 2005:623–664.
Visual Molecular Dynamics[http://www.ks.uiuc.edu/Research/vmd]
Humphrey W, Dalke A, Schulten K: VMD: visual molecular dynamics. J Mol Graph 1996, 14(1):33–38.
QuteMol[http://qutemol.sourceforge.net]
Tarini M, Cignoni P, Montani C: Ambient occlusion and edge cueing for enhancing real time molecular visualization. IEEE Trans Vis Comput Graph 2006, 12(5):1237–1244.
The Swing Tutorial[http://java.sun.com/docs/books/tutorial/uiswing/index.html]
Javadoc Tool Home Page[http://java.sun.com/j2se/javadoc/index.jsp]
ProteinShader Project Summary Page[http://sourceforge.net/projects/proteinshader]
OpenGL[http://www.opengl.org]
Shreiner D, Woo M, Neider J, Davis T: OpenGL Programming Guide. Fifth edition. Upper Saddle River, NJ: Addison-Wesley; 2005.
The JOGL API Project[http://jogl.dev.java.net]
Davis G: Learning Java Bindings for OpenGL (JOGL). Bloomington, IN: AuthorHouse; 2004.
Rost RJ: OpenGL Shading Language. Upper Saddle River, NJ: Addison-Wesley; 2006.
Shreiner D, Woo M, Neider J, Davis T: Display lists. In OpenGL Programming Guide. Fifth edition. Upper Saddle River, NJ: Addison-Wesley; 2005:277–300.
Zanotti G, Panzalorto M, Marcato A, Malpeli G, Folli C, Berni R: Structure of pig plasma retinol-binding protein at 1.65 A resolution. Acta Crystallogr D Biol Crystallogr 1998, 54(5):1049–1052.
Brandon C, Tooze J: Membrane proteins. In Introduction to Protein Structure. Second edition. New York: Garland Publishing; 1998:223–250.
Weiss MS, Schulz GE: Porin conformation in the absence of calcium. Refined structure at 2.5 A resolution. J Mol Biol 1993, 231(3):817–824.
Kobe B, Deisenhofer J: Mechanism of ribonuclease inhibition by ribonuclease inhibitor protein based on the crystal structure of its complex with ribonuclease A. J Mol Biol 1996, 264(5):1028–1043.
Imada K, Inagaki K, Matsunami H, Kawaguchi H, Tanaka H, Tanaka N, Namba K: Structure of 3-isopropylmalate dehydrogenase in complex with 3-isopropylmalate at 2.0 A resolution: the role of Glu88 in the unique substrate-recognition mechanism. Structure 1998, 6(8):971–982.
Doyle DA, Morais Cabral J, Pfuetzner RA, Kuo A, Gulbis JM, Cohen SL, Chait BT, MacKinnon R: The structure of the potassium channel: molecular basis of K+ conduction and selectivity. Science 1998, 280(5360):69–77.
Hill FS: Extruded shapes. In Computer Graphics using OpenGL. Second edition. Upper Saddle River, NJ: Prentice Hall; 2000:310–321.
Hill FS: Hermite interpolation. In Computer Graphics using OpenGL. Second edition. Upper Saddle River, NJ: Prentice Hall; 2000:644–645.
Gamasutra: Rotating Objects Using Quaternions[http://www.gamasutra.com/features/19980703/quaternions_01.htm]
Sacred Software: Quaternions[http://www.sacredsoftware.net/tutorials/Quaternions/Quaternions.xhtml]
Shoemake K: Animating rotation with quaternion curves. Comput Graph (ACM) 1985, 19(3):245–254.
Maths: Conversion Matrix to Quaternion[http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm]
Junius FK, O'Donoghue SI, Nilges M, Weiss AS, King GF: High resolution NMR solution structure of the leucine zipper domain of the c-Jun homodimer. J Biol Chem 1996, 271(23):13663–13667.
Hill FS: Phong shading. In Computer Graphics using OpenGL. Second edition. Upper Saddle River, NJ: Prentice Hall; 2000:435–436.
OpenGL Directional Lights II[http://www.lighthouse3d.com/opengl/glsl/index.php?ogldir2]
Hill FS: Adding textures to faces. In Computer Graphics using OpenGL. Second edition. Upper Saddle River, NJ: Prentice Hall; 2000:439–465.
Shreiner D, Woo M, Neider J, Davis T: Assigning texture coordinates. In OpenGL Programming Guide. Fifth edition. Upper Saddle River, NJ: Addison-Wesley; 2005:420–421.
PNG: Portable Network Graphics[http://www.libpng.org/pub/png]
JPEG: Joint Photographic Experts Group[http://www.jpeg.org]
Baerentzen JA, Nielsen SL, Gjael M, Larsen BD, Christensen NJ: Single-pass wireframe rendering. In ACM SIGGRAPH Conference Sketches: July 2006; Boston. ACM Press, New York; 2006.
Chantalat L, Jones ND, Korber F, Navaza J, Pavlovsky AG: The crystal-structure of wild-type growth-hormone at 2.5 angstrom resolution. Protein Pept Lett 1995, 2: 333–340.
Freudenberg B, Masuch M, Strothotte T: Real-time halftoning: a primitive for non-photorealistic shading. In Proceedings of the 13th Eurographics Workshop on Rendering: 26–28 June 2002; Pisa, Italy. Springer-Verlag Wien, New York; 2002:227–232.
Freudenberg B, Masuch M, Strothotte T: Real-time halftoning: fast and simple stylized shading.In Game Programming Gems 4 Edited by: Kirmse A. Charles River Media; 2004, 443–450. [http://wwwisg.cs.uni-magdeburg.de/~stefans/npr/entry-Freudenberg-2004-RTH.html]
Cunningham BC, Wells JA: High-resolution epitope mapping of hGH-receptor interactions by alanine-scanning mutagenesis. Science 1989, 244(4908):1081–1085.
Hill FS: Aliasing; antialiasing techniques. In Computer Graphics using OpenGL. Second edition. Upper Saddle River, NJ: Prentice Hall; 2000:577–586.
Shreiner D, Woo M, Neider J, Davis T: Antialiasing. In OpenGL Programming Guide. Fifth edition. Upper Saddle River, NJ: Addison-Wesley; 2005:247–260.
Shreiner D, Woo M, Neider J, Davis T: The accumulation buffer. In OpenGL Programming Guide. Fifth edition. Upper Saddle River, NJ: Addison-Wesley; 2005:482–495.