10 likes | 124 Views
Citations DeLano, W.L. The PyMOL Molecular Graphics System (2002) on World Wide Web http://www.pymol.org
E N D
Citations DeLano, W.L. The PyMOL Molecular Graphics System (2002) on World Wide Web http://www.pymol.org Roger Sayle and E. James Milner-White. "RasMol: Biomolecular graphics forall", Trends in Biochemical Sciences (TIBS), September 1995, Vol. 20, No.9, p. 374.Herbert J. Bernstein, "Recent changes to RasMol, recombining the variants,Trends in Biochemical Sciences (TIBS), September 2000, Vol. 25, No. 9, pp.453-455. • Acknowledgements • NIGMS grant #1R15GM078077 • Dowling College • H. J. Bernstein, G. Darakev, N. Darakev, J. Jemilawon, • G. McQuillan, G. Todorov, C. Westin • RIT College of Science A RasMol to PyMOL Translator Scott Mottarella, Brett Hanson, Charles Westin, Paul Craig, Herbert Bernstein Biological Sciences, Rochester Inst. of Technology, 85 Lomb Memorial Dr., Rochester, NY 14623 USA. W0049 For many educators and scientists, PyMOL is the application of choice for preparing images and animations of their structures because of the beauty and quality of the images. However, many are most familiar with the scripting languages associated with RasMol, Chime and Jmol. The long-range goal of our Structural Biology Extensible Visualization Scripting Language project is to make the multiple molecular visualization tools available to the broadest possible audience, where each user can use many programs, with knowledge of the scripting language for only one of those programs. The first step has been a comparison of the command sets for RasMol and PyMOL, followed by creation of a plug-in for PyMOL that will accept RasMol script files, translate the commands into PyMOL script and execute the commands. The process involves searching for recognized, valid, RasMol script commands and performing its PyMOL equivalent, either as a single command or as a series of commands that produce the same result. Future plans include expansion to additional molecular visualization programs and the preparation of a web site to provide script translation among the various programs. The project is funded in part by NIGMS grant #1R15GM078077. 1 RasMol PyMOL Jmol Chime RasMol PyMOL Jmol Chime The SBEVSL library will contain molecular visualization commands compatible with Universal Modeling Language (UML). Scripts from each program on the left will be converted to SBEVSL commands, which can then be output to any of the programs on the right. Each line in the diagram represents a module that translates the script from that program into a command from the SBEVSL Library, which will then translate the script to a desired scripting language. The ultimate goal is to allow any user to start at any scripting language, including SBEVSL, and to translate any script to any other scripting language. SBEVSL 2 ##------------View Options----------------## selectDict = {'wireframe': 'lines', 'cartoon': 'cartoon', 'dots': 'dots', 'cpk': 'spheres', 'spacefill': 'spheres', 'trace': 'ribbon', 'ribbon': 'ribbon'} firstword = p.split( ' ', 1 )[0].lower() try: if firstword in selectDict: q = p + ' ' command = q.split( ' ', 1 )[1][:-1].lower() if command=='false' or command=='off': cmd.hide( selectDict[firstword], selected) print firstword + ' off complete' elif command=='true' or command=='on' or command=='': cmd.show( selectDict[firstword], selected) print firstword + ' on complete' else: print 'That function is not supported by PyMOL' except: print 'An error has occurred with your view command. Please check your spelling in your command, the selection on which this command was executed and that your command is supported by PyMOL.' We utilized a variety of coding methods to correlate RasMol commands to their PyMOL command equivalent. When a single command could be directly translated, we used simple code to recognize that command and perform its equivalent, as in the Zap/Reinitialize example below (left). In some cases, however, more parameters needed to be handled, and so were broken into their constituents and handled individually, as in the Define example below (right). In yet one more case, several different commands with similar parameters could all be handled simultaneously using a Python dictionary object. See the View Options example to the right. Introduction There are almost one hundred molecular visualization tools available today. They range in cost, complexity, and quality. What is concerning is that each program is more or less independent of all others. Two individuals using two different molecular visualization programs on the same project will not be able to communicate their views directly because each program has its own scripting language. Also, an individual who wishes to use multiple programs must learn a separate language for each program. The SBEVSL project is developing a universal scripting language compatible with the most popular molecular visualization programs. The first step is the creation of ConSCRIPT, the first script converter developed, which allows users to read RasMol scripts directly in PyMOL. ##---------------Zap---------------## if p=='zap': print 'reinitialize' cmd.reinitialize() ##---------------Define---------------## if p[:6]=='define': defparams = p[7:].split( ' ', 1 ) cmd.select( defparams[0], select(defparams[1]) ) UserDefinedGroups[ defparams[0] ] = defparams[1] 3 4 5 cmd.load( "C:\Documents and Settings\Scotthew. KYLE\Desktop\\1D66.pdb" ) cmd.rotate( 'x', 180 ) cmd.select( 'resn asp+glu+arg+lys+his+asn+thr+ cys+gln+tyr+ser+gly+ala+leu+val+ile+ met+trp+phe+pro and chain a' ) cmd.show( 'cartoon', 'sele' ) cmd.color( 'yellow', 'sele' ) cmd.select( 'All and chain b' ) cmd.color( 'purple', 'sele' ) cmd.show( 'dots', 'sele' ) cmd.hide( 'everything', 'all and not resn asp+glu+ arg+lys+his+asn+thr+cys+gln+tyr+ser+ gly+ala+leu+val+ile+met+trp+phe+pro' ) cmd.rotate( 'z', -90 ) cmd.select( 'id 1' ) cmd.color( 'green', 'sele' ) cmd.show( 'spheres', 'sele' ) load C:\Documents and Settings\Scotthew. KYLE\Desktop\1D66.pdb Select protein and :a cartoon color yellow select *:b color purple dots restrict protein rotate z 90 select atomno = 1 color green CPK ConSCRIPT • PyMOL Image • Clear image • Nice shadows and 3D effects • Clean depiction • (notice the dots) • RasMol Script • Reads like English • Easy to learn • Simple to execute • PyMOL Image From a RasMol Script • Quality image of PyMOL • Simple script of RasMol • No differences caused by ConSCRIPT • RasMol Image • Lower quality • Limited 3D effects • Low res dots • PyMOL Script • If it looks like computer code, it is • Difficult to read and understand • Must spell out the entire selection Conclusion ConSCRIPT is the first translator to be developed as part of the SBEVSL project. As shown here, it accurately converts given RasMol scripts into PyMOL scripts and is able to give the exact same output as any experienced RasMol user would expect, except with the higher quality images of PyMOL. The method for conversion is simple: create a dictionary class object to relate every known RasMol command to its PyMOL command equivalent. From ConSCRIPT, with the development of SBEVSL, we will be able to change the code to get similar converters from RasMol into SBEVSL and from SBEVSL into PyMOL, providing the same exact function as ConSCRIPT, but allowing for many other scripting languages to be easily included. Our next project is to convert Jmol scripts into PyMOL and then PyMOL and RasMol scripts into Jmol. From there, we will move towards unifying more molecular visualization scripting languages. ConSCRIPT is available at: http://sbevsl.org This figure shows a selection of commands that work with ConSCRIPT. On the left are the RasMol commands and on the right are their equivalents in PyMOL.