The field of molecular visualization is an important part of biology, chemistry, medical computer science and bioinformatics. Molecular visualizations can help scientists to gain a better understanding of underlying mechanisms of molecular structures, even for large sets of data. With this thesis, we aim at bringing molecular visualizations to the browser. In order to achieve this goal, this thesis introduces a new online visualization tool for the web-based molecular structure analysis system ballaxy. Ballaxy is a customized version of the popular molecular data analysis and workflow system Galaxy and relies on the Biochemical Algorithms Library (BALL) framework. This framework provides molecular modeling functionality for structural bioinformatics.
This new ballaxy tool equips scientists with a small and handy application to visualize molecular structures directly in the browser without forcing them to use any additional tools or browser plugins. It makes use of the HTML extension XML3D to render molecular visualizations in the browser and optimizes the already existing XML3D export feature available in BALL and its accompanied molecular visualization tool BALLView.
The implementation of this optimization exploits XML3D features, which have been added to the XML3D library only recently. It removes many redundancies in the resulting documents and adds new features, like animations or additional information about the visualized molecules.
This thesis provides an initial implementation of the tool mentioned above and also extends BALLView with all newly developed features. Furthermore, it proofs that the newly introduced optimizations of the XML3D renderer have a significant positive impact on the browser rendering performance and the general usability of this solution.
Our approach shows that native 3D visualizations of molecular structures in the browser are a feasible option for displaying and analyzing molecular structures. The solutions developed for this thesis can already be used by scientists for their everyday work.
Table of Contents
List of Tables
List of Figures
1 Introduction
1.1 Motivation
1.2 Related Work
1.3 Goals of this work
2 Materials & Methods
2.1 Materials
2.1.1 BALL
2.1.2 BALLView
2.1.3 Galaxy
2.1.4 ballaxy
2.1.5 XML3D
2.2 Methods
2.2.1 Challenges
2.2.2 Integration of the XML3D visualization into ballaxy . .
2.2.3 Improvements to the already existing XML3D visualization
2.2.4 Integration of animations into the XML3D visualization
2.2.5 Enhancing the export dialogue of BALLView
2.2.6 Simplifications to the process of setting up a ballaxy instance
3 Implementation
3.1 Creation of an XML3D export tool for ballaxy
3.1.1 The XML3D export tool
3.1.2 The XML3D renderer
3.2 Improvements to the existing XML3D renderer
3.2.1 History of XML3D visualizations
3.2.2 Removing redundant shader nodes
3.2.3 XML3D Performance Features
3.2.4 Illumination issues
3.2.5 Different quality levels for XML3D templates
3.3 Implementation of animations into the XML3D visualization
3.3.1 Spin
3.3.2 Rock&Roll
3.3.3 Reset
3.4 Changes made to the BALLView GUI
3.4.1 The advanced layout
3.4.2 External Resources
3.4.3 Legacy Camera
3.4.4 Changing the background color
3.5 Creation of a script to simplify setting up ballaxy instances
4 Results
4.1 Testing the implementation
4.2 Comparison of different XML3D visualization versions
4.2.1 Test configuration
4.2.2 Analyzed molecular models
4.2.3 Impact of different XML3D visualization versions on document size and DOM node count
4.2.4 Impact of different XML3D visualization versions on the rendering times
5 Discussion & Outlook
5.1 Discussion
5.1.1 Document file size
5.1.2 DOM node count
5.1.3 Rendering times
5.2 Summary
5.2.1 Integrating the XML3D visualization of BALLView into ballaxy . .
5.2.2 Optimizing the XML3D visualization to ensure a faster rendering process
5.2.3 Give the user the possibility to use animations
5.2.4 Enhancing the XML3D visualization export dialogue of BALLView
5.2.5 Simplifying the process of setting up a ballaxy instance
5.3 Outlook
5.3.1 Deep integration of the XML3D visualization
5.3.2 Integration of the XML3D visualization into the RCSB website . .
5.3.3 Using JSON instead of XML for external resources
5.3.4 Increasing the performance of the XML3D renderer further
5.3.5 Including semantics into the molecular visualizations
APPENDICES
A XML3D Concepts
B XML3D CSS Transformations
C XML3D External Resources
D DOM node count
References
List of Tables
2.1 Ballaxy - Available parameters
3.1 Comparison between different XML3D visualization versions
3.2 Amount of shader nodes for different coloring methods
3.3 Comparison of values for transform node attributes and CSS transformations
3.4 Quality options for the XML3D templates
3.5 Rendering times for different quality levels
4.1 Description of the different versions of the XML3D visualization
4.2 System configuration used for testing and comparing different XML3D vi- sualization versions
4.3 PDB structure configuration used for the performance tests
4.4 Size of the resulting documents for the PDB structure 2OVC
4.5 Size of the resulting documents for the PDB structure 1PTH
4.6 Size of the resulting documents for the PDB structure 2GLS
4.7 Size of the resulting documents for the PDB structure 1GRU
4.8 Rendering times for the PDB structure 2OVC with Firefox and Chromium
4.9 Rendering times for the PDB structure 1PTH with Firefox and Chromium
4.10 Rendering times for the PDB structure 2GLS with Firefox and Chromium
4.11 Rendering times for the PDB structure 1GRU with Firefox and Chromium
List of Figures
1.1 Sample molecular visualization
1.2 Jmol Viewer
2.1 BALLView displaying the PDC structure 1PMA using ray tracing
2.2 XML3D Museum Simulation
2.3 Ballaxy - XML3D Export Tool
2.4 Ballaxy - XML3D Visualization in ballaxy
2.5 XML3D Export Dialogue in BALLView
3.1 Basic processing structure of the XML3D visualization tool
3.2 XML3DRender - Initialization process
3.3 XML3DRender - Render one representation
3.4 XML3DRender - Finish
3.5 External Resources - Example
3.6 PDB structure 2OVC with Ball-and-Stick model - Front view (top) and back view (bottom) using point light sources
3.7 PDB structure 2OVC with Ball-and-Stick model - Front view (top) and back view (bottom) using an eyelight shader
3.8 PDB structure 20VC with SES model - Comparison between point light sources (top) and the original eyelight shader (bottom)
3.9 Icosahedron
3.10 Pentakisdodecahedron
3.11 Animation buttons
3.12 XML3D as XHTML (advanced layout)
4.1 Comparison of different PDB structures visualized with the Cartoon model
4.2 Comparison of different molecular models for the PDB structure 1PTH . .
4.3 2OVC - File sizes in kilobytes
4.4 2OVC - Amount of DOM nodes
4.5 1PTH - File sizes in kilobytes
4.6 1PTH - Amount of DOM nodes
4.7 2GLS - File sizes in kilobytes
4.8 2GLS - Amount of DOM nodes
4.9 1GRU - File sizes in kilobytes
4.10 1GRU - Amount of DOM nodes
4.11 2OVC - Rendering times (Firefox)
4.12 2OVC - Rendering times (Chromium)
4.13 1PTH - Rendering times (Firefox)
4.14 1PTH - Rendering times (Chromium)
4.15 2GLS - Rendering times (Firefox)
4.16 2GLS - Rendering times (Chromium)
4.17 1GRU - Rendering times (Firefox)
4.18 1GRU - Rendering times (Chromium)
5.1 Deep integration example for the XML3D visualization
5.2 Integration of the XML3D visualization into the RCSB PDB website . . .
5.3 XML3D visualization of acetylsalicylic acid (aspirin) within its surrounding PDB structure 1PTH
Acknowledgements
First of all, I would like to thank Prof. Dr. Hans-Peter Lenhof, Prof. Dr. Andreas Hilde- brandt and Stefan Nickels for offering me the possibility to work on such an interesting topic.
I would like to thank my supervisor Stefan Nickels in particular a lot for helping me circuiting all obstacles one might face when it comes to writing a bachelor’s thesis and giv- ing the associated presentations. His support and advise turned out to be a very valuable source and helped me avoid many mistakes a beginner in the field of academic research might do.
I also would like to thank Cholpon Degenbaeva, Daniel Fass, Felix Klein and Stefan Klos a lot for proof-reading my thesis and providing very valuable advice.
Last but not least, my deep gratitude is due to my family and my wonderful wife Atuganile for supporting me in any possible way during my studies.
Abstract
The field of molecular visualization is an important part of biology, chemistry, medical computer science and bioinformatics. Molecular visualizations can help scientists to gain a better understanding of underlying mechanisms of molecular structures, even for large sets of data. With this thesis, we aim at bringing molecular visualizations to the browser. In order to achieve this goal, this thesis introduces a new online visualization tool for the web-based molecular structure analysis system ballaxy. Ballaxy is a customized version of the popular molecular data analysis and workflow system Galaxy and relies on the Biochemical Algorithms Library (BALL) framework. This framework provides molecular modeling functionality for structural bioinformatics.
This new ballaxy tool equips scientists with a small and handy application to visualize molecular structures directly in the browser without forcing them to use any additional tools or browser plugins. It makes use of the HTML extension XML3D to render molecu- lar visualizations in the browser and optimizes the already existing XML3D export feature available in BALL and its accompanied molecular visualization tool BALLView.
The implementation of this optimization exploits XML3D features, which have been added to the XML3D library only recently. It removes many redundancies in the resulting docu- ments and adds new features, like animations or additional information about the visualized molecules.
This thesis provides an initial implementation of the tool mentioned above and also extends BALLView with all newly developed features. Furthermore, it proofs that the newly introduced optimizations of the XML3D renderer have a significant positive impact on the browser rendering performance and the general usability of this solution.
Our approach shows that native 3D visualizations of molecular structures in the browser are a feasible option for displaying and analyzing molecular structures. The solutions developed for this thesis can already be used by scientists for their everyday work.
Chapter 1 Introduction
This thesis is about browser-based visualizations of molecular structures. It begins with this introduction, which presents insight about the motivation for this thesis and states the goals we aim to achieve.
Chapter 2 contains detailed information about used materials (i.e. technologies and tools) and discusses the methods (i.e. approaches) used to solve the stated problems. Chapter 3 describes the implementation of the provided solutions in-depth, while chapter 4 presents our findings and results.
In chapter 5 we discuss this thesis and give a summary after presenting a general view of some possible future works.
1.1 Motivation
The visualization of molecular structures is very important in many scientific fields such as biology, bioinformatics, chemistry and medicine. For many scientists it is crucial to have a visual understanding of their work to see where they are heading and which effects a molecular calculation on the structure as a whole might have. There is a great variety of tools, which enable the user to view 3D-visualizations of molecular structures within a dedicated software environment1 2 3.
Abbildung in dieser Leseprobe nicht enthalten
Figure 1.1: Sample molecular visualization
Source: http://www.ball-project.org/Ballview/Gallery/clipping.jpg
Figure 1.1 shows an example of such a molecular visualization. It includes the molecular models SES (Solvent-excluded surfaces), Stick and VDW (Van der Waals), which can be clearly seen as parts of the molecule have been clipped. This image has been created with the molecular modeling and visualization application BALLView4 5.
BALLView is a stand-alone molecular modeling and visualization application, which “provides a variety of different models for bio-molecular visualization [...] and also offers rich functionality for molecular modeling and simulation”4.
It is based on the Biochemical Algorithms Library (BALL), which is a library of algorithms and data structures targeting molecular modeling and computational structural bioinformatics6. Both BALL and BALLView are being developed at Saarland University, Mainz University and at the University of Tübingen.
BALLView provides the possibility to export molecular visualizations to XML3D7, which is an extension to HTML to support interactive 3D graphics in the browser. XML3D is a joint project of the DFKI (Deutsches Forschungszentrum für künstliche Intelligenz - German research institute for artificial intelligence), the computer graphics chair of the Saarland University and the Intel Visual Computing Institute. Please see Appendix A - XML3D Concepts for a basic introduction to some important XML3D concepts.
Many other visualization applications similar to BALLView exist. However, when it comes to browser-based visualization solutions, the variety of applications shrinks drastically. We discuss some available browser-based alternatives in section 1.2.
A proper browser-based application for molecular visualizations should provide an user- friendly interface for novice users, while giving expert users the possibility to create so- phisticated and advanced visualizations. Additionally, we were looking for an integrated workflow solution with which scientists can work on and create visualizations of molecular structures without being forced to change the platform. After conducting further research, we could not find any existing application fulfilling these prerequisites. Thus, we decided to make use of the ballaxy project8, which is also developed at Saarland University. Ballaxy is a customized version of the computational biology workflow framework Galaxy 9 10 11 and provides a deep integration of the BALL library. Galaxy is developed at Pennsylvania State University and Emory University. It is a platform to build multi-step computational analyses, which is widely used by computational biologists and chemists.
One of the main foci of this thesis is the integration of the XML3D visualization, which already exists in BALLView, into ballaxy to allow for a browser-based, easy-to-use and plugin-free molecular visualization solution. Hand in hand with this integration goes the optimization of the existing XML3D export to make sure that the rendering process of the molecular structures in the browser is finished quickly. To improve the usability of the XML3D export feature, we aimed for gaining as much performance as possible with the help of existing techniques and new XML3D features. Details of the implemented performance optimizations will be presented in chapter 2 and chapter 3.
Furthermore, the possibility to use the animations Spin (to spin the molecular structure around) and Rock&Roll (to get an impression of the spatial depth and volume of the structure in question) has been implemented as well. These animations remain optional and can be activated by pressing the corresponding buttons.
In addition, we extended the BALLView GUI to include our newly introduced changes and to give the user a greater degree of freedom to create XML3D visualizations. Lastly, we created an additional Python script to assist the user step-by-step with the process of setting up a working ballaxy environment. This script has been created as it became more and more apparent that the existing procedure for setting up a ballaxy instance requires a lot of expertise on the side of the user and might not be feasible for inexperienced users.
Abbildung in dieser Leseprobe nicht enthalten
Figure 1.2: Jmol Viewer
Source: http://www.rcsb.org/pdb/explore/jmol.do?structureId=1GRU&bionumber=1
1.2 Related Work
As previously stated, there are various browser-based visualization solutions. The free software solution Jmol Viewer12 is one example and provides a wide variety of features, including support for high-performance 3D rendering, read and write support for various data file formats and the possibility to display animations.
The RCSB protein data bank (PDB) website13 provides an implementation of the Jmol Viewer, which can be seen rendering the PDB14 structure 1GRU in figure 1.2. Despite all of its advantages, the Jmol viewer requires the installation of a web browser plugin that enables support for the programming language Java15. This requirement is a significant drawback of this molecular viewer in particular since not all users are willing or able to use such a Java plugin.
Other solutions like GLmol16, CanvasMol17 or jolecule18 avoid the requirement of a Java plugin by using web technologies like HTML519 and native WebGL20. The usage of those technologies allows these solutions to run in the browser natively without relying on any plugins or browser extensions.
However, although being considerably fast in many cases, these solutions all lack the visual quality and functional variety of the XML3D export feature of BALLView. Another issue with these solutions is that there is no way to share the raw visualization data with other researchers. CanvasMol alone provides an export function to the PNG file format21 at least, but this format does not allow for dynamic and interactive 3D views. GLmol and jolecule do not provide any export function at all.
Furthermore, neither of those web applications is integrated in a workflow environment like Galaxy or ballaxy. Such an integration would give the user the possibility to do molecular calculations and view the result afterwards without having to switch between applications. In the end, all presented alternatives do have their strengths and advantages, but neither of them convinced us completely, which is why we decided to create our own solution based on BALL, BALLView and ballaxy.
1.3 Goals of this work
The five major goals of this thesis are:
1. Integrating the XML3D visualization of BALLView into ballaxy
2. Optimizing the XML3D visualization to ensure a faster rendering process
3. Giving the user the possibility to use animations
4. Enhancing the XML3D visualization functionality of BALLView
5. Simplifying the process of setting up a ballaxy instance
The molecular visualization and modeling framework BALLView already provides the pos- sibility to export visualizations of molecular structures into image formats like PNG, stan- dard 3D data exchange formats like POV-Ray22, STL23, VRML24, as well as XML3D. This thesis focuses on the XML3D export of BALLView as it offers browser- based 3D-visualizations without forcing the user to install any additional software.
The main goal of this thesis is the integration of the existing BALLView XML3D visu- alization into the Galaxy extension ballaxy. This has to be done as seamless as possible to ensure that users who are already familiar with the ballaxy system do not have any difficulties to create browser-based visualizations of their work. Thus, we decided to create a new tool, which gives the user the possibility to customize the resulting XML3D visual- izations to a large extent, while still being easy enough to be learned by novice users.
Naturally, a user wants to view visualizations of processed molecular structures quickly, which requires the performance of the rendering process in the browser to be reasonably well. In order to achieve a reasonable performance without interfering with the quality of the visualization, another major goal of this thesis is the optimization of the rendering process of XML3D based molecular visualizations. This optimization can be achieved by using some performance enhancing approaches and new XML3D features.
The third goal of this thesis is to give the user the possibility to trigger simple animations for the resulting XML3D visualizations. As a first proof of concept, we provide the two animations Rock&Roll and Spin. They can easily be enabled and disabled by clicking on the corresponding buttons in the resulting XHTML page.
Our fourth goal is the enhancement of the existing XML3D visualization functionality of BALLView. This enhancement consists of the creation of an advanced layout for presentational purposes and an extension of the existing export dialogue. The export dialogue now reflects the changes made so far to the code base and gives the user more freedom for creating XML3D visualizations.
Our fifth goal is to create a script, which simplifies the installation of a ballaxy instance significantly. This script has been written in the programming language Python and gives the user the possibility to specify a wide range of parameters to customize the ballaxy installation to a large extent.
All those challenges and their respective solutions form the basis of this thesis. Due to time constraints and the fact that the implementation of certain tasks would have been out of scope for this thesis, some work still remains to be done in the future. This future work will be discussed in chapter 5.
Chapter 2 Materials & Methods
The following chapter deals with the materials and methods used for this thesis. It aims to give a rough overview and is followed by chapter 3, which explains the implementation of the discussed approaches.
2.1 Materials
This section explains and discusses the materials used for this thesis in detail. The materials include tools, software and technologies we used to create satisfactory results.
2.1.1 BALL
The Biochemical Algorithms Library (BALL) is a development framework for structural bioinformatics, which is being developed and maintained by groups at Saarland University, Mainz University, and University of Tübingen. It “provides an extensive C++ class library of data structures and algorithms for molecular modeling and structural bioinformatics”6. This library simplifies the process of writing scientific bioinformatics applications to a great extent because it already includes many complex algorithms.
BALL is being developed since 1996 and is available for Linux/Unix, MacOS X and Windows under the free software license GNU Lesser General Public License (LGPL). It has been designed to be open, easy to use, robust and to provide a wide range of functionality. According to 6 it offers “the widest range of functionality for rapidly and robustly developing applications in structural bioinformatics”.
Furthermore, BALL also provides compatibility with other front-ends. An example for such a front-end is the molecular modeling application BALLView, which we are going to describe below in detail.
BALL is able to read and write a variety of molecular structure file formats. To make sure that as much input data as possible is recognized correctly, robustness in dealing with faulty data, like malformed PDB files, is an integral part of BALL. Many scientists do not stick to one way of creating PDB files, which leads to irregularities in the syntax of those files. BALL tackles this issue by making sure that a very high percentage of different circulating PDB files can be properly read and processed. BALL is also able to prepare molecular structures for further processing or to validate them.
An integrated Python interface gives users the possibility to create their own scripts and add custom functionalities on demand within BALL. SIP25, a tool being able of creating Python bindings for C and C++ libraries, is used to automatically create Python classes for all relevant BALL C++ classes. Thus, most BALL class interfaces are available for C++ and Python alike and the user does not have to memorize new class names if he or she decides to use the Python interface.
Both BALLView and ballaxy are based on BALL and require the library to be present in order to compile and run. Thus, the BALL library forms the back-end of this thesis.
Abbildung in dieser Leseprobe nicht enthalten
Figure 2.1: BALLView displaying the PDC structure 1PMA using ray tracing
Source: https://upload.wikimedia.org/wikipedia/commons/f/f6/Ballview_1pma_raytraced.png
2.1.2 BALLView
BALLView is a stand-alone molecular modeling and visualization application based on BALL, which “provides a variety of different models for bio-molecular visualization [...] and also offers rich functionality for molecular modeling and simulation”4. It “combines state-of-the-art visualization capabilities with powerful modeling functionality”5 and is available as free software for Linux/Unix, Windows and MacOS X under the GNU General Public License (GPL) license.
The modeling functionality of BALLView includes visualization models for atoms, bonds and surfaces, but also grid based visualizations for electrostatic potentials. It also allows for C++ code plugins and provides a Python interface, which enables users to create their own methods. Furthermore, a large part of the functionality of BALL can be applied directly to the loaded molecular structures.
BALLView aims to be a simple graphical user interface, which even allows inexperienced users to access almost all functionality of the BALL library. Additionally, it also provides the possibility to export molecular structures to some 3D file formats, including XML3D. This XML3D export function in particular is one of the main foci of this thesis and the associated export dialogue has been modified to a great extent. Those modifications will be discussed in detail in section 2.2.5.
Figure 2.1 conveys an impression of some BALLView functionality by showing the PDB structure 1PMA, which has been opened in an older BALLView version. The 1PMA struc- ture has been created with the molecular model Ball-and-Stick and the ray tracing26 algorithm. The result of this visualization is visible on the right side of the image, while the left side shows some basic BALLView features. These features include the Python interpreter and a listing of all present structures in the scene. Furthermore, the user can choose which representations he or she wants to see and which should remain invisible.
2.1.3 Galaxy
Galaxy is a free software browser-based scientific workflow platform licensed under the Academic Free License version 3.0. It is being developed at Penn State and Emory University and aims to make computational biology accessible to research scientists with and without computer programming experience.
Workflows are an essential part of the Galaxy platform and are defined as follows:
“A Galaxy workflow is a reusable template analysis that a user can run repeatedly on different data. [...] Nearly any Galaxy tool can be added to a workflow.”9 A Galaxy tool in turn, is a program used to perform one certain task.
The Galaxy workflows and tools are integrated into a web environment and form the Galaxy platform. This platform was created with the following goals in mind:
1. Accessibility
2. Reproducibility
3. Transparency
Accessibility ensures that the system is as easy to use as possible because many biomedical researchers, who form the target group of the Galaxy project, do not have any background in software engineering. Galaxy tries to equip those researchers with powerful tools without forcing them to implement these tools by themselves. Thus, Galaxy aims to provide a simple user interface.
Reproducibility ensures that every experiment, which has been performed with Galaxy, can be reproduced in the future. To achieve this, Galaxy keeps track of all inputs, datasets, parameters and the order in which the steps of the analysis have been executed.
Transparency provides researchers with means to distribute and share their experiment with others. Those experiments can be rerun, modified or extended by others later.
The Galaxy platform is well established and used by many scientists all over the world. A public server has been made available to the scientific community and eliminates the need to set up dedicated local server instances for every new project. However, a local server instance might still be needed for bigger projects or projects with special needs. Even though a rich variety of functionality is provided by the Galaxy project, not all needs can be covered by one system. Many extensions to the original Galaxy server have been created, which provide one or more special features not present in the original server27.
The Galaxy project distinguishes between the following three kinds of public servers:
General Purpose Servers, Domain Servers and Tool Publishing Servers.
According to 27 a General Purpose Server is a server, which “implement[s] a broad range of tools and [is not] specific to any part of the tree of life, or to any specific type of analysis. These are servers you can use when [you] want to do general genomic analysis.” Domain servers “specialize in either a particular branch of the tree of life, or in particular types of analysis. However, within their specializations they have a wide variety of tools.” Tool publishing servers “expose one or a few tools so that researchers can use the tools without having to install them locally or use [the] command line”.
2.1.4 ballaxy
Ballaxy is a workflow framework for structure based computational biology based on the Galaxy workflow engine and has been created to extend Galaxy with additional functionalities, needed for structural analyses. It is being developed as free software under the license LGPL at Saarland University.
The underlying molecular modeling engine of ballaxy is the BALL framework because “the large number of molecular data structures and algorithms implemented in BALL allows for elegant and sophisticated development of new approaches in the field” 8. Furthermore, ballaxy “enables the user to simply and intuitively create sophisticated pipelines for applications in structure-based computational biology, integrated into a standard tool for molecular modeling”8.
According to the official Galaxy terminology27, ballaxy is a Domain Server. It currently provides the following additional workflows:
- BOA Constructor for optimal bond order assignment28
- NightShift for NMR shift Inference by General Hybrid model training29
- Spinster for pure protein chemical shift prediction29
Furthermore, ballaxy provides many additional tools. Listing them all here would stretch the scope of this thesis too far. Thus, we just would like to introduce the various groups of the available tools:
- Tools for getting and editing data
- Structure creation tools
- Preparation tools
- BOA constructor tools28
- Tools for graphing molecular structures
- Tools for checking and evaluating molecular structures
- General analysis tools
- Docking tools
- Rescoring tools
- NMR NightShift tools29
- Clustering tools
- Quantitative structure-activity relationship (QSAR)30 tools
- Chemoinformatics tools
With this thesis we introduce an additional group called Visualization tools. Currently, this group only consists of our newly created XML3D export tool. However, it might be extended in the future by other additional visualization tools.
Ballaxy can be accessed via the website https://ballaxy.bioinf.uni-sb.de/
Abbildung in dieser Leseprobe nicht enthalten
Figure 2.2: XML3D Museum Simulation
Source: http://www.dfki.de/web/aktuelles/cebit2013/xflow/index_html/2013-02-12.3485586668/image
2.1.5 XML3D
XML3D is a free software extension to HTML to support interactive 3D graphics in the browser. It is developed at Saarland University and uses a declarative approach, which directly embeds 3D content into the Document Object Model (DOM) of the (X)HTML31 page. The DOM “is a platform- and language-neutral interface that [allows] programs and scripts to dynamically access and update the content, structure and style of documents. The document can be further processed and the results of that processing can be incorporated back into the presented page.”32 The declarative XML3D approach makes it very easy to embed 3D content into arbitrary (X)HTML pages.
XML3D is based on standardized web technologies and does not need any external plugins to run. It is based on WebGL and JavaScript and any browser supporting these two technologies also supports XML3D.
The concept of embedding XML3D code into the DOM simplifies the creation of static 3D scenes to a great extent. However, for dynamic 3D scenes with animated content, it is often necessary to process complex vertex data for each frame. Computationally, this is too expensive to be done via the DOM with JavaScript. Instead, a system for declarative data processing called Xflow33 can be used to model these complex animations. This system handles and optimizes the mesh processing of animations internally, which allows for the creation of very complex 3D scenes in the browser in a reasonable amount of time as figure 2.2 illustrates. This figure displays a simulation of a museum, which in- cludes avatars walking around, looking at pictures and engaging in various other activities. Note that this simulation runs directly in the browser without relying on any stand-alone software.
Even though this thesis does not make use of it, Xflow and other means have led to signif- icant performance improvements in recent XML3D releases, compared to earlier versions.
As the previous XML3D renderer of BALLView was based on an old XML3D version (4.0), many recent features have not been included yet. This thesis adds all recent XML3D per- formance features to the code base. The following chapters describe the chosen approaches.
Performance Features
All XML3D versions, starting from version 4.3, provide two features, which can significantly improve the rendering performance compared to previous XML3D versions under certain preconditions.
Those features are called CSS inline transformations34 and external resources35. They have been included in an optimized version of the XML3D visualization in BALLView and their corresponding implementations will be discussed in section 2.2.3. The necessary preconditions for profiting from the mentioned performance improvements are discussed in chapter 4 and chapter 5.
CSS Inline Transformations
CSS inline transformations can be used to remove XML3D transform nodes by writing the corresponding information of those nodes into the CSS style attribute of the associated group node. Appendix B - XML3D CSS Transformations provides a detailed overview of this feature.
External Resources
By using external resources it is possible to outsource certain content such as mesh data or shaders from the original XHTML page into an external file. The file format for this external file should either be XML36 or JSON37. This is particularly useful for larger mesh data because it does not have to be stored in the original file any more. Only the references to the external data have to remain in the original document. Appendix C - XML3D External Resources explains this feature in detail.
Since the release of version 4.5, XML3D provides even more built-in performance fea- tures, like Frustum Culling and Paging38. However, this version was released while this thesis was still being written and thus only implicit new features, which do not have to be invoked by any additional parameters or function calls, are used in our implementation. Features of XML3D version 4.5 and above, which have to be invoked explicitly, are not being considered.
Furthermore, many other performance enhancing features are currently in development at the time of writing. Subsection 5.3.4 will give a short overview of additional approaches, even though some of them have not yet been integrated into an XML3D release.
2.2 Methods
This section begins with the introduction of the challenges we were facing before we started to work on this thesis. After that, the used methods to solve those challenges are discussed in detail.
2.2.1 Challenges
As stated above, we aim at creating a browser-based solution for visualizing molecular structures. To provide the user with an easy solution, we faced five major challenges:
1. Integrating XML3D visualizations into ballaxy
2. Optimizing the XML3D visualization
3. Providing the user with the possibility to use animations
4. Enhancing the XML3D visualization functionality of BALLView
5. Simplifying the process of setting up a ballaxy instance
The first challenge is the integration of the XML3D visualization into ballaxy. This task is one of the main foci of this thesis and required the largest amount of time and work. A new ballaxy tool has been created and enriched by many features in order to achieve this goal. This integration will be discussed in detail in section 2.2.2.
The rendering process of the molecular structures in the browser should have the best possible performance because the user naturally wants to see the result of his or her work without any major delay. To make sure that the rendering process in the browser finishes as fast as possible, the existing code base had to be modified significantly. Plenty of new code has been created and many new performance features have been integrated into the existing XML3D export. An exhaustive overview of all optimizations can be found in sec- tion 2.2.3.
Section 2.2.4 will explain in detail how the possibility to use animations like Rock&Roll or Spin has been integrated into the existing XML3D visualization. This feature was mainly realized by extending the XML3D renderer with JavaScript code to create the desired animations while the corresponding buttons “Spin”, “Rock&Roll” and “Reset” have been created with plain XHTML.
Section 2.2.5 discusses how BALLView has been extended to make all improvements available to the user. This includes the extension of the existing export dialogue, but also new functionality like the possibility to export to an advanced layout.
The last challenge of simplifying the process of setting up a ballaxy instance has been tackled by creating a script in the programming language Python. This script reduces the amount of effort the user has to put into the task of setting up a working ballaxy instance significantly. More in-depth information about this can be found in section 2.2.6.
Solving those problems turned out to be very time-consuming and even though many improvements already could be integrated successfully, some further work remains to be done. Chapter 5 will provide a general discussion and an outlook into this future work.
2.2.2 Integration of the XML3D visualization into ballaxy
In order to integrate the XML3D visualization into ballaxy, we first had to learn more about the Galaxy platform and how tool integration for this platform is achieved. A tool is a small command line program, which has been embedded into the Galaxy platform and can be executed from the web interface. The main goal was to make sure that the integration of our new visualization tool is as seamless as possible.
The user should be able to resort to skills he or she already acquired before by using other tools and workflows. Thus, the new tool was designed to be usable even for novices to respect Galaxys policy of Accessibility.
Galaxy’s policy of Reproducibility is also respected by our tool because the user is able to rerun the visualization process as often as he or she likes.
The Transparency policy is fulfilled as well because the results of any visualization can be easily distributed as an (X)HTML page with embedded XML3D code.
Furthermore, the user also has the possibility to choose from a variety of different parameters, which give him or her a great extent of freedom when it comes to visualizing molecular structures. We came up with a broad collection of parameters we deem to be reasonable. This set of parameters should be sufficient for most use cases, but it could be extended in the future to contain more advanced or specialized parameters as well. The following section gives an overview of all currently supported parameters.
Ballaxy parameters of the XML3D visualization
Within our newly created ballaxy tool, the following parameters are available for generating XML3D visualizations: Input File Format, Model, Drawing Precision and Coloring Method.
As the name already indicates, the parameter Input File Format specifies the input file format. The user can choose from a variety of formats, which are listed below in table 2.1.
The molecular model can be specified with the Model parameter. In the field of molecular graphics, a molecular model is a graphical representation of molecular structures and their processes. Each (molecular) model focuses on different molecular properties and thus also has unique use-cases. For example, the Ball-and-Stick model is very well suited for having a closer look at every single atom within the molecular structure, while the Cartoon model does not give any information about single atoms at all but is often used to get a general impression of the structure in question. Due to the fact that every molecular model makes use of different geometrical objects, they also differ a lot when it comes to rendering performance. Section 4.2.2 discusses some of those molecular models.
The Drawing Precision parameter indicates the quality level of the visualization. A “low” drawing precision will lead to a very basic visualization, while an “ultra” drawing precision will render all geometrical objects in the scene as detailed as possible. Section 3.2.5 explains the newly created changes concerning the quality levels.
The coloring method describes the method with which the molecular structure is colored. “By element” for example, displays one new color for each element in the scene. The other coloring methods behave respectively.
All available values within our ballaxy tool are listed in table 2.1.
Abbildung in dieser Leseprobe nicht enthalten
Table 2.1: Ballaxy - Available parameters
The values for the parameters stated above reflect the parameters that are also offered in BALLView. Additionally, there are three optional parameters:
- Choosing the Export Folder
- Adding hydrogen
- Using external resources
The first optional parameter is used to specify which folder the results should be written to. This is mainly useful if the visualization tool is used stand-alone and not within a ballaxy instance. For example, this parameter can be useful if the user would like to use external resources (see Appendix C - XML3D External Resources). If external resources are used, a local web server has to be present. If this web server is running within a different folder than the folder, which the resulting visualization has been exported to, this visualization might not be recognized by the web server. Thus, specifying the export folder directly can help to avoid this problem.
The second optional parameter lets the user decide whether he or she would like to add hy- drogen to the molecular structure. Adding hydrogen automatically can be useful in many cases because of the fact that “X-ray crystallography cannot resolve hydrogen atoms in most protein crystals, so in most PDB files, hydrogen atoms are absent”39. In order to gain a deeper understanding of geometrical characteristics and interdependencies within a molecular structure and to make sure that the current model accurately reflects reality on a molecular model, sometimes, adding hydrogen even is a stringent necessity.
The third optional parameter determines whether external resources should be used (see Appendix C - XML3D External Resources).
With external resources many DOM nodes can be written to an external file, which de- creases the amount of DOM nodes in the original DOM tree. This is because the original document only stores references of the outsourced nodes, instead of their content. By using external resources, the rendering process of the molecular visualization in the browser can finish much faster depending on the chosen molecular model and the browser if certain preconditions are met. Details of this behaviour will be shown in chapter 4 and chapter 5.
Abbildung in dieser Leseprobe nicht enthalten
Figure 2.3: Ballaxy - XML3D Export Tool
Usage of the XML3D export tool
Figure 2.3 shows our newly created tool XML3DExport. It has been created to achieve the integration of the XML3D visualization into ballaxy. It is visible in the list of tools on the left and became a part of the tool collection of the ballaxy platform.
After invoking the tool, an interface with all parameters appears and the user can choose from a variety of parameters as explained above. Once all choices have been made, the “Execute” button triggers the process of creating a new XHTML file, which already includes the corresponding XML3D code.
After this process is finished, a new notification will appear in the “History” side pane. If the process has been finished successfully, the user is able to view the result in the browser by clicking on the “eye icon” in the upper right corner of the notification. Figure 2.4 shows how the resulting visualization looks like for the PDB structure 1PTH with the Cartoon model.
As one can see in this image, each representation is displayed above a table, which gives more information about the PDB structure, the visibility, the molecular model, the coloring method, the properties, the surface drawing precision, the drawing mode and the drawing precision of the visualized structure.
By using the mouse, the user can move the structure around, zoom in and zoom out. The buttons “Spin”, “Rock&Roll” and “Reset” are responsible for animating the visualization or resetting the original values again respectively.
Depending on the chosen parameters and the PDB structure(s), the performance of rendering the scene and moving the visualization around will differ significantly.
Section 3.1 will give more details about the integration of our tool into the ballaxy platform.
Abbildung in dieser Leseprobe nicht enthalten
Figure 2.4: Ballaxy - XML3D Visualization in ballaxy
2.2.3 Improvements to the already existing XML3D
visualization
Improving the rendering times
After displaying several molecular structures with our integrated XML3D visualization tool in ballaxy, we realized that the rendering process in the browser takes a lot of time to finish for larger molecular structures. Even though the time consumed by the render- ing process heavily depends on the used molecular model, the drawing precision and the coloring method, there are some things we could do to optimize the rendering process as a whole to a great extent.
The old XML3D visualization was based on XML3D version 4.0. This version did not offer some performance improving features, which are present in newer releases. It also contained some redundancies, which have been removed as a result of the work for this thesis.
More recent versions of XML3D saw the advent of new features, like CSS transformations (see Appendix B - XML3D CSS Transformations) and external resources (see Appendix C
- XML3D External Resources). Those features can be used to gain more performance if certain preconditions are met. They are able to shrink the DOM tree to an extent, which allows for more reasonable rendering times, even for bigger molecular structures. With the help of those new features and some other approaches explained in section 3.2, we were able to significantly decrease the rendering times of the XML3D visualization.
The results of rendering times performance tests, file size comparisons and DOM node count comparisons are presented in chapter 4.
Improving the illumination of XML3D visualizations
Currently, BALLView does not provide the possibility to arrange point light sources relative to the camera. Even though it is possible to insert point light sources at arbitrary places in the scene, they cannot be connected in any sense to the camera to ensure a perfect illumination regardless of the viewing angle and direction. This can lead to some unwanted effects, like the improper illumination of some parts of the molecular structure if only one point light source is used. In order to avoid this problem, the user can arrange several point light sources in the scene to make sure the light is evenly distributed and reaches every angle of the resulting XML3D visualization.
However, this approach has some serious disadvantages. First of all, much time and effort has to be invested by the user in order to create a perfectly balanced illumination of the scene. Secondly, the user also has to have a certain degree of knowledge about this issue to be able to avoid it and finally, having multiple point light sources in the resulting XML3D scene can also slow down the visualization in the browser to a great extent. This is due to the fact that all those light sources have to be stored, managed and processed by the browser.
As we aimed at making our tool usable, even for inexperienced users, we decided to use another approach, which does not require any effort or knowledge from the user, does not interfere too much with the performance of the scene and, of course, results in a well illuminated visualization.
The solution lies in using an alternative shader instead of the default Phong shader40. “The term shading refers to the process of computing pixel colors after any lighting has been calculated. The three standard shading models are flat, Gourad, and Phong.”41 Our choice was a so-called “eyelight shader”. This is a shader, which illuminates the scene from the direction of the viewer instead of relying on fixed point light sources within the scene. The result is a very well and evenly illuminated scene.
A detailed explanation of this approach and our implementation can be found in section 3.2.4.
2.2.4 Integration of animations into the XML3D visualization
To show some capabilities of the XML3D export, we also decided to integrate the possibility for animations. Each XML3D visualization now contains the buttons ’Spin’, ’Rock&Roll’ and ’Reset’. The animations have been integrated using the programming language JavaScript. The “Spin” animation lets the molecular structure spin around its center.
The “Rock&Roll” animation moves the molecular structure forwards and backwards to give an impression of its spacial depth and volume.
By clicking on the “Reset” button, the original orientation of the molecular visualization is restored again, even if it has been rotated or moved around before.
Section 3.3 provides a detailed explanation of the implementation of those animations.
Abbildung in dieser Leseprobe nicht enthalten
Figure 2.5: XML3D Export Dialogue in BALLView
2.2.5 Enhancing the export dialogue of BALLView
As figure 2.5 illustrates, the BALLView XML3D export dialogue has been extended and now contains the following export options:
- XML3D
- XML3D as XHTML
- XML3D as XHTML (advanced layout)
The XML3D option produces plain XML3D code without embedding it into an XHTML skeleton. This option might be useful for users who want to include this code into their own website.
The XML3D as XHTML option produces XML3D code, which has already been embed- ded into an XHTML skeleton. This skeleton includes a table containing more information about the visualization (PDB structure, visibility, molecular model, coloring method, prop- erties, surface drawing precision, drawing mode and drawing precision) and two buttons for the animations Rock&Roll and Spin, plus one Reset button to reset all previous movements.
The XML3D as XHTML (advanced layout) option produces XML3D code, which has been embedded into an XHTML skeleton with an advanced layout. This layout mainly serves presentational purposes and includes all features of the normal XML3D XHTML output while additionally providing promotional content.
Furthermore, the following four additional parameters might be specified by the user:
- enable external resources (requires a web server)
- use point light sources
- use legacy camera
- Background Color
The option enable external resources (requires a web server) makes use of the XML3D feature external resources, which can lead to significant performance improvements, if certain preconditions are met. Appendix C - XML3D External Resources gives more background information about this XML3D performance feature, while section 3.2.3 explains more details concerning its implementation.
The option use point light sources writes the point light sources, which have been cre- ated by the user in the scene, to the resulting XHTML page. If this option is not chosen, the point light sources defined by the user are ignored and an eyelight shader is used in- stead. In section 3.2.4 the details of this shader and its implementation are discussed.
The option use legacy camera enables the user to use the deprecated XML3D JavaScript library camera.js, instead of the current library xml3d-motion.js. Section 3.4.3 explains why using this deprecated library for handling the camera might be useful.
If the user wishes for it, it is now also possible to change the background color of the exported XHTML page.
Section 3.4 explains the changes made to the export dialogue and the underlying mechanisms in detail.
2.2.6 Simplifications to the process of setting up a ballaxy instance
After setting up ballaxy several times for the purpose of integrating the XML3D visualization, it became clear to us that this process is very time-consuming. The setup instructions42 demonstrate that very clearly as many steps have to be followed to get a working instance of ballaxy. A lot of time and effort has to be invested by the user to use a local ballaxy instance properly.
In order to avoid the need for the user to execute all of these instructions himself or herself, we decided to create a script in the programming language Python, which simplifies the setup process significantly. The whole script fits into one Python file and provides several input parameters to customize the resulting ballaxy instance to a large extent. In section 3.5 the implementation details of this script are discussed.
Due to many changes to the ballaxy code base, this script is only usable for ballaxy versions released before late 2013. Some future work could include rewriting this script to work with newer ballaxy versions. Even though this script has become deprecated by now, it can still be used as a basis for a newer script simplifying the setup process of ballaxy.
Chapter 3 Implementation
This chapter discusses the implementation details of the methods mentioned above. We give insight into our design and its implementation without stretching the scope of this thesis too far.
3.1 Creation of an XML3D export tool for ballaxy
The first and most important goal of this thesis is to integrate the existing XML3D visu- alization of BALLView into the ballaxy server. In order to realize this goal, we created a new ballaxy tool, which provides all necessary parameters to create sophisticated molecular visualizations with XML3D. A ballaxy tool is essentially no different from any Galaxy tool except for the fact that ballaxy tools heavily rely on the BALL library. We aim for integrating our newly created tool as seamless as possible into the existing ballaxy setup to make sure that the user does not have to learn new skills to use it. On the other hand, as many features as possible should be present to enable the user to create sophisticated visualizations. Section 2.2.2 gives an overview of the available parameters. Of course, we also provide a preselected set of reasonable default values for each parameter in order to enable the user to create new visualizations fast and easy without requiring extensive knowledge about the details.
In order to create a new integrated tool for ballaxy, we had to create a new stand-alone C++ tool first, which we could then easily integrate into the ballaxy system. This new tool is now part of the BALL code base and goes by the name ’XML3DExport.C’. The corresponding header file is called ’XML3DExport.h’.
This new tool is able to take inputs from the command line if it is used stand-alone but of course is also able to receive and process the same inputs from within the ballaxy web server. The following parameters can be specified if this tool is used from the command line:
- i - input file (mandatory)
- o - output file (mandatory)
- model - visualization model (optional, default model: Cartoon)
- precision - drawing precision (optional, default drawing precision: medium)
- coloring - coloring method (optional, default coloring method: by residue index)
- folder - export folder (optional, default export folder: current folder)
- add hydrogen - add hydrogen (optional, default: no hydrogen)
- external resources - use external resources (optional, default: do not use external resources)
- help - display help (optional, default: do not display help)
Please note that those parameters are congruent to the parameters already listed in section 2.2.2.
[...]
[1] K. Harrison, J. P. Bowen, and A. M. Bowen, \Electronic visualisation in chemistry: From alchemy to art," in EVA Conference Proceedings, Electronic Workshops in Computing (eWiC), British Computer Society, 29-31 July 2013, (London, UK), ACM, 2013.
[2] S. I. O'Donoghue1, D. S. Goodsell, F. A. S, F. Jossinet, R. A. Laskowski, M. Nilges, H. R. Saibil, A. Scha erhans, R. Wade, E. Westhof, and A. J. Olson, \Visualization of macromolecular structures," Nature Methods, vol. 7, no. 3, pp. 42 { 55, 2010.
[3] D. S. Goodsell, \Visual methods from atoms to cells," Structure, vol. 13, no. 3, pp. 347 { 354, 2005.
[4] A. Moll, A. Hildebrandt, H.-P. Lenhof, and O. Kohlbacher, \Ballview: An objectoriented molecular visualization and modeling framework," Genome research, vol. 19, no. 11, pp. 791{800, 2005.
[5] A. Moll, A. Hildebrandt, H.-P. Lenhof, and O. Kohlbacher, \Ballview: A tool for research and education in molecular modeling," Genome research, vol. 22, no. 3, pp. 365{366, 2006.
[6] A. Hildebrandt, A. K. Dehof, A. Rurainski, A. Bertsch, M. Schumann, N. Toussaint, A. Moll, D. Stockel, S. Nickels, S. Mueller, H.-P. Lenhof, and O. Kohlbacher, \Ball - biochemical algorithms library 1.3," BMC Bioinformatics, vol. 11, no. 1, p. 531, 2010.
[7] K. Sons, F. Klein, D. Rubinstein, S. Byelozyorov, and P. Slusallek, \Xml3d: interactive 3d graphics for the web," in Web3D '10: Proceedings of the 15th International Conference on Web 3D Technology, (New York, NY, USA), pp. 175{184, ACM, 2010.
[8] A. K. Hildebrandt, D. Stoeckel, N. M. Fischer, L. de la Garza, J. Krueger, S. Nickels, M. Roettig, C. Schaerfe, M. Schumann, P. Thiel, H.-P. Lenhof, O. Kohlbacher, and A. Hildebrandt, \ballaxy: web services for structural bioinformatics." Not published yet - Pending review, 2014.
[9] J. Goecks, A. Nekrutenko, J. Taylor, and T. G. Team, \Galaxy: a comprehensive approach for supporting accessible, reproducible, and transparent computational research in the life sciences," Genome Biol, vol. 11, no. 8, p. R86, 2010.
[10] D. Blankenberg, G. V. Kuster, N. Coraor, G. Ananda, R. Lazarus, M. Mangan, A. Nekrutenko, and J. Taylor, \Galaxy: A web-based genome analysis tool for experimentalists," Current protocols in molecular biology, pp. 19{10, 2010.
[11] B. Giardine, C. Riemer, R. C. Hardison, R. Burhans, L. Elnitski, P. Shah, Y. Zhang, D. Blankenberg, I. Albert, J. Taylor, W. C. Miller, W. J. Kent, and A. Nekrutenko, \Galaxy: a platform for interactive large-scale genome analysis," Genome research, vol. 15, no. 10, pp. 1451{1455, 2005.
[12] \Jmol: an open-source java viewer for chemical structures in 3d." http://www.jmol. org/. Accessed: 2014-03-31. 77
[13] \RCSB PDB website." http://www.rcsb.org/pdb/staticHelp.do?p=help/ viewers/jmol_viewer.html. Accessed: 2014-03-31.
[14] \Protein Data Bank File Format." http://deposit.rcsb.org/adit/docs/pdb_ atom_format.html. Accessed: 2014-03-31.
[15] \Java website." https://www.java.com/. Accessed: 2014-03-31.
[16] \GLmol website." http://glmol.com/. Accessed: 2014-03-31.
[17] \CanvasMol website." http://alteredqualia.com/canvasmol/. Accessed: 2014-03-31.
[18] \jolecule website." https://jolecule.appspot.com/. Accessed: 2014-03-31.
[19] \W3C HTML5 website." http://www.w3.org/TR/html5/. Accessed: 2014-03-31.
[20] \Khronos group WebGL website." https://www.khronos.org/webgl/. Accessed:2014-03-31.
[21] \PNG (Portable Network Graphics) Speci cation." https://tools.ietf.org/html/rfc2083. Accessed: 2014-03-31.
[22] \POV-Ray website." http://www.povray.org/. Accessed: 2014-03-31.
[23] \The StL Format." http://www.ennex.com/~fabbers/StL.asp. Accessed: 2014-03-31.
[24] \Web3D VRML Archives." http://www.web3d.org/x3d/vrml/. Accessed: 2014-03-31.
[25] \SIP Website." https://wiki.python.org/moin/SIP. Accessed: 2014-03-31.
[26] A. Appel, \Some techniques for shading machine renderings of solids," in Proceedings of the April 30{May 2, 1968, Spring Joint Computer Conference, AFIPS '68 (Spring), (New York, NY, USA), pp. 37{45, ACM, 1968.
[27] \Publicly Accessible Galaxy Servers." https://wiki.galaxyproject.org/PublicGalaxyServers. Accessed: 2014-03-31.
[28] A. K. Dehof, A. Rurainski, Q. B. A. Bui, S. Bcker, H.-P. Lenhof, and A. Hildebrandt, \Automated bond order assignment as an optimization problem," Bioinformatics, vol. 27, no. 5, pp. 619{625, 2011.
[29] A. K. Dehof, S. Loew, H.-P. Lenhof, and A. Hildebrandt, \Nightshift: Nmr shift inference by general hybrid model training - a framework for nmr chemical shift prediction," BMC Bioinformatics, vol. 14, p. 98, 2013.
[30] C. Nantasenamat, C. Isarankura-Na-Ayudhya, T. Naenna, and V. Prachayasittikul, \A practical overview of quantitative structure-activity relationship," Excli Journal, vol. 8, no. 8, pp. 74{88, 2009.
[31] \XHTML Reference." http://xhtml.com/en/xhtml/reference/. Accessed: 2014-03-31. 78
[32] \Document Object Model (DOM)." http://www.w3.org/DOM/. Accessed: 2014-03-31.
[33] F. Klein, K. Sons, D. Rubinstein, S. Byelozyorov, S. John, and P. Slusallek, \Xow - declarative data processing for the web," in Proceedings of the 17th International Conference on Web 3D Technology, (Los Angeles, California), 2012.
[34] \XML3D CSS Transformations." https://github.com/xml3d/xml3d.js/wiki/CSS-Transformations. Accessed: 2014-03-31.
[35] \XML3D External resources." https://github.com/xml3d/xml3d.js/wiki/External-resources. Accessed: 2014-03-31.
[36] \Extensible Markup Language (XML)." http://www.w3.org/XML/. Accessed: 2014-03-31.
[37] \JSON (JavaScript Object Notation)." http://www.json.org/. Accessed: 2014-03-31.
[38] \XML3D version 4.5 release notes." https://github.com/xml3d/xml3d.js#change-log. Accessed: 2014-03-31.
[39] \Hydrogens in PDB les." http://www.umass.edu/microbio/chime/pe_beta/pe/protexpl/help_hyd.htm. Accessed: 2014-03-31.
[40] B.-T. Phong, \Illumination for Computer Generated Pictures," Communications of the ACM, vol. 18, no. 6, pp. 311{317, 1975.
[41] D. H. Eberly, 3D Game Engine Design. Morgan Kaufmann Publishers 340 Pine Street, Sixth Floor, San Franciso, CA 94104-3205, USA: Morgan Kaufmann Publishers, 2000.
[42] \ballaxy - Setup instructions." http://ball-trac.bioinf.uni-sb.de/wiki/Ballaxy_Setup. Accessed: 2014-03-31.
-
-
-
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X.