SBEVSL Structural Biology Extensible ... - Dowling College

mewstennisSoftware and s/w Development

Nov 4, 2013 (3 years and 8 months ago)

62 views

SBEVSL

Structural Biology Extensible Visualization Scripting

Language


PyMOL to and from SBEVSL

Abstract:

Structural biologists and molecular scientists in many other disciplines need to
communicate effectively about biological macromolecules. The number and complexity of
available structures are both increasingly dramatically. There are many free molecular
visualization programs that facilitate macromolecular structure analysis and experimental
design. Each program has distinct features and limitations, often leading researchers to
utilize multiple programs to successfully investigate all qualities of macromolecular
structure. To alleviate this problem, we are creating a common ontology called the
Structural Biology Extensible Visualization Scripting Language (SBEVSL) that will serve as
a central resource for communicating scripts between different visualization programs. As a
first step, we have prepared a list of individual commands that are used in PyMOL, as well
as groups of commands which we are calling “features” to serve as input to SBEVSL. We
have also created a plug
-
in for PyMOL that can take information from the central ontology
by reading files line by line, find the associated commands, and output them to another
script file. Future steps will script interchange between PyMOL, Rasmol, Jmol and Chime
using the SBEVSL ontology as the intermediary in the communication. The completion of
this project will allow researchers to move easily between these programs and quickly
reproduce the same view in each program, giving them more time to spend on analysis of
the macromolecular structure instead of manipulation.

Introduction:


Initial efforts directed at identification of similar and differing abilities of various
molecular modeling programs to enable more precise translation between programs.


PyMOL and Rasmol were the first programs addressed.


PyMOL and Rasmol have different methods of identifying hydrogen bond schemes.


A script was created to enable PyMOL to replicate Rasmol’s hydrogen bond schemes as
accurately as possible


Efforts were next directed towards creating plugin programs for PyMOL to allow PyMOL
to directly read Rasmol scripts and to convert PyMOL scripts into Rasmol readable
scripts.


Once the SBEVSL language is complete, these programs will be adapted for use with
PyMOL, allowing PyMOL to read SBEVSL scripts and to output to the SBEVSL
language.

Methods:



Processes going to or from PyMOL require the use of plugins.



Plugins were written in the Python programming language.



Hydrogen bonding schemes are based on specific donor and acceptor atoms, bonding
restrictions, and bonding lengths.



PyMOL’s selection algebra was used to provide hydrogen bonding specificity.



Translation from SBEVSL to PyMOL requires an SBEVSL script that the PyMOL plugin
reads line by line, executing each recognized function.



Translation from PyMOL to SBEVSL requires creation of a PyMOL script which is then
scanned by the plugin for supported commands and converted to a SBEVSL script.



Testing of the SBEVSL to PyMOL translating plugin was performed by creating a
plugin allowing PyMOL to directly read Rasmol scripts.


#Define the translate
-
out Function

def translate_out(Event):

import tkFileDialog

#Open the script write a blank line


Q = tkFileDialog.askopenfilename(initialdir=('./startup'))


f = open(Q, 'a')


f.write('
\
n')


f.close()


f = open(Q, 'r')


Y = tkFileDialog.askopenfilename(initialdir=('./startup'))


r = open(Y, 'w')

#Make a loop


running = True


while running:

#Read each line and see if line contains these variables


p = f.readline()


if p == "cmd.zoom
\
n":


r.write('move
\
n')

#Define the translate Function

def translate(Event):


import tkFileDialog

#Open the script write a blank line


Q = tkFileDialog.askopenfilename(initialdir=('./startup'))


f = open(Q, 'a')


f.write('
\
n')


f.close()


f = open(Q, 'r')

#Make a loop


running = True


while running:

#Read each line and see if line contains these variables


p = f.readline()


if p == ‘move’:


cmd.zoom

Future Plans:



Completion of the SBEVSL language and dictionary



Full support for PyMOL and Rasmol command interchange via SBEVSL



Implementation of SBEVSL support for Jmol, Chime, and Chimera.



Investigation of higher level functions and how to implement them in other molecular
modeling programs to make SBEVSL output equivalent scripts.

After a script has been generated in PyMOL the
resulting Python based file can be converted into the
common SBEVSL ontology. Above is a sample from
the translation function.

Because PyMOL and Rasmol have differing hydrogen bond
schemes, a script was generated to calculate bonds in
PyMOL comparable to those found in Rasmol.

After generating a script from within another molecular
modeling program, the translate plugin takes the SBEVSL
script file and enables PyMOL to read it directly.

Future plans will allow users to seamlessly replicate viewing information in a variety of molecular modeling programs. Users

wi
ll no longer
have to spend time regenerating a script for different programs to render the same general view, and can use that time for mo
re
directed
study.

Acknowledgements:



NIH 1R15GM078077
-
01



NSF DUE 0402408



Rochester Institute of Technology



Dowling College



Brookhaven National Laboratory


Information:

SBEVSL is currently a work in progress.
Everyone is welcome to participate in this
project.

Questions and suggestions can be directed to:

sbevsl@arcib.org

The project’s homepage resides at:

http://blondie.dowling.edu/projects/sbevsl/