Literature DB >> 25505090

3Dmol.js: molecular visualization with WebGL.

Nicholas Rego1, David Koes2.   

Abstract

UNLABELLED: 3Dmol.js is a modern, object-oriented JavaScript library that uses the latest web technologies to provide interactive, hardware-accelerated three-dimensional representations of molecular data without the need to install browser plugins or Java. 3Dmol.js provides a full featured API for developers as well as a straightforward declarative interface that lets users easily share and embed molecular data in websites.
AVAILABILITY AND IMPLEMENTATION: 3Dmol.js is distributed under the permissive BSD open source license. Source code and documentation can be found at http://3Dmol.csb.pitt.edu CONTACT: dkoes@pitt.edu.
© The Author 2014. Published by Oxford University Press.

Entities:  

Mesh:

Substances:

Year:  2014        PMID: 25505090      PMCID: PMC4393526          DOI: 10.1093/bioinformatics/btu829

Source DB:  PubMed          Journal:  Bioinformatics        ISSN: 1367-4803            Impact factor:   6.937


1 Introduction

Molecular visualization is an essential tool for computational chemists and biologists. Due to the demanding nature of three-dimensional (3D) graphics, most molecular viewers are desktop applications. The need to install specialized applications and, in some cases, the restrictive nature of the software licenses, introduces hurdles to the sharing of molecular data. Unlike a desktop application, a standards-based client-side web application comes pre-installed with every computer and mobile device with a modern web browser and can be seamlessly integrated into online environments for accessing and analyzing molecular data. Currently, Jmol (Hanson, 2010) (http://www.jmol.org) is the most used web-based molecular viewer. Jmol is implemented as a Java applet and includes a custom rendering engine for efficiently rendering common molecular data representations, such as spheres and sticks. Due to this custom rendering engine and Java’s optimizing just-in-time compiler, the performance of Jmol can approach that of native, desktop applications. However, due to heavily publicized security failures, the Java install base is shrinking (Yegulalp, 2013). Even when Java is installed, users are presented with multiple security prompts that must be correctly navigated before a Java applet, such as Jmol, can run. To address these concerns, JSmol (Hanson ) was developed. JSmol is the product of applying a Java to JavaScript translator to Jmol. However, particularly for large and complex visualizations, the performance of JSmol lags behind that of Jmol. An alternative to the software-based rendering of Jmol/JSmol is to use hardware-accelerated graphics, as is done with desktop applications. This is enabled by the recently adopted WebGL 1.0 standard, which is now supported natively by all major desktop and mobile browsers. PV (http://biasmv.github.io/pv) and GLmol (http://webglmol.sourceforge.jp) are two examples of WebGL-based molecular viewers. GLmol was the first WebGL viewer and uses the Three.js (http://threejs.org) framework for interfacing with WebGL. However, GLmol lacks a full featured API and the use of the Three.js library results in performance inefficiencies. We forked GLmol and radically reworked its architecture to overcome these deficiencies and create 3Dmol.js. PV, like 3Dmol.js, uses WebGL directly, but has a focus on displaying protein structures and does not provide the same set of features as 3Dmol.js.

2 3Dmol.js

3Dmol.js is a pure JavaScript, hardware-accelerated, object-oriented molecular visualization library that enables web developers and casual users to visualize and interact with molecular data in any modern desktop or mobile web browser with near native performance. The focus of 3Dmol.js is providing a full-featured API for online high-performance molecular visualization. This allows 3Dmol.js to be integrated with other web applications that provide additional cheminformatics and analysis capabilities. A variety of common styles are supported, as demonstrated by Figure 1a, and supported file formats include pdb, sdf, mol2, xyz and cube. 3Dmol.js can be used to view molecular data by web application developers, HTML authors and end users.
Fig. 1.

(a) A capsid protein (PDB: 3M8L) with 12 375 atoms as rendered by 3Dmol.js. This same scene can be generated (b) programmatically in JavaScript, (c) from within HTML or (d) by specifying a properly formatted URL to the 3Dmol.js hosted viewer. (e) The time required to create this scene and then rotate it for Jmol/JSmol 14.2.2, GLmol.47, PV v1.1-126-g85f16da and 3Dmol.js. PV was configured to be in high quality mode to better match the default quality of 3Dmol.js

(a) A capsid protein (PDB: 3M8L) with 12 375 atoms as rendered by 3Dmol.js. This same scene can be generated (b) programmatically in JavaScript, (c) from within HTML or (d) by specifying a properly formatted URL to the 3Dmol.js hosted viewer. (e) The time required to create this scene and then rotate it for Jmol/JSmol 14.2.2, GLmol.47, PV v1.1-126-g85f16da and 3Dmol.js. PV was configured to be in high quality mode to better match the default quality of 3Dmol.js

2.1 JavaScript API

JavaScript developers can use 3Dmol.js by including a single minified script and using the routines provided in the $3Dmol namespace. There are routines to manipulate and style molecular data, create isosurfaces from grid data, generate molecular surfaces, create arbitrary shapes, such as spheres and arrows, annotate the view with text and image labels and install callback handlers for when a user interacts with the viewer contents (e.g. clicks on an atom). Molecular styles include lines, crosses, sticks, spheres and cartoons, and atoms and surfaces can be colored by user specified properties, such as partial charge or atom type. An example of programmatically controlling a 3Dmol.js viewer to create the scene shown in Figure 1a is provided in Figure 1b.

2.2 Embeddable viewer

HTML authors do not need to use JavaScript to embed 3D viewers within their websites. 3Dmol.js will automatically turn any HTML element annotated with the viewer_3Dmoljs class into a viewer. The contents of the viewer are set and styled through the use of HTML data tags, as shown in Figure 1c. The molecular data can be retrieved from a remote URL or from an element that is embedded within the web page.

2.3 Hosted viewer

End users may use 3Dmol.js through a hosted viewer as shown in Figure 1d. In this case, the molecular data is set and styled through a URL specification. Data may be retrieved from a remote URL, such as a publicly accessible shared folder on cloud storage. This allows users to easily share complex scenes without requiring that the recipients have any software other than a modern web browser.

3 Performance comparison

The performance of 3Dmol.js is compared to Jmol, JSmol, GLmol and PV in Figure 1e. The time to create the scene of Figure 1a, which contains several visual styles applied to 12 375 atoms, and then to perform a single rotation was measured using JavaScript wall clock time. The scene was rendered in a 600 pixel square HTML element. Firefox 31 on a 2.4 GHz Core Duo 2008 MacBook with 4 GB of RAM running OS X 10.9.5 was used to time the operations and the average of the three best times of five trials is reported. The initial creation time for a scene can be more time consuming in 3Dmol.js compared to a software-rendering approach like Jmol. The scene needs to be decomposed into a mesh of triangles since this is what is expected by the graphics subsystem. However, once a 3D scene is created, interactions with the scene that do not change its fundamental geometry, such as rotating, translating and zooming, are extremely fast (a few milliseconds) since the 3D scene data are managed by the native graphics subsystem. Consequently, even complex scenes can be smoothly manipulated by the user.

4 Conclusion

3Dmol.js is an high-performance interactive viewer for 3D molecular data that requires no plugins to work in modern desktop and mobile web browsers. 3Dmol.js provides a full-featured API to JavaScript developers, but can also be used by HTML authors and end users to share and distribute 3D visualizations of molecular data. 3Dmol.js is available under a permissive BSD open source license from http://3dmol.csb.pitt.edu.
  84 in total

1.  NGL viewer: web-based molecular graphics for large complexes.

Authors:  Alexander S Rose; Anthony R Bradley; Yana Valasatava; Jose M Duarte; Andreas Prlic; Peter W Rose
Journal:  Bioinformatics       Date:  2018-11-01       Impact factor: 6.937

Review 2.  Open source molecular modeling.

Authors:  Somayeh Pirhadi; Jocelyn Sunseri; David Ryan Koes
Journal:  J Mol Graph Model       Date:  2016-07-30       Impact factor: 2.518

3.  PRISMOID: a comprehensive 3D structure database for post-translational modifications and mutations with functional impact.

Authors:  Fuyi Li; Cunshuo Fan; Tatiana T Marquez-Lago; André Leier; Jerico Revote; Cangzhi Jia; Yan Zhu; A Ian Smith; Geoffrey I Webb; Quanzhong Liu; Leyi Wei; Jian Li; Jiangning Song
Journal:  Brief Bioinform       Date:  2020-05-21       Impact factor: 11.622

4.  AbRSA: A robust tool for antibody numbering.

Authors:  Lei Li; Shuang Chen; Zhichao Miao; Yang Liu; Xu Liu; Zhi-Xiong Xiao; Yang Cao
Journal:  Protein Sci       Date:  2019-05-11       Impact factor: 6.725

5.  MDockPeP: An ab-initio protein-peptide docking server.

Authors:  Xianjin Xu; Chengfei Yan; Xiaoqin Zou
Journal:  J Comput Chem       Date:  2018-10-23       Impact factor: 3.376

6.  Improvements to the APBS biomolecular solvation software suite.

Authors:  Elizabeth Jurrus; Dave Engel; Keith Star; Kyle Monson; Juan Brandi; Lisa E Felberg; David H Brookes; Leighton Wilson; Jiahui Chen; Karina Liles; Minju Chun; Peter Li; David W Gohara; Todd Dolinsky; Robert Konecny; David R Koes; Jens Erik Nielsen; Teresa Head-Gordon; Weihua Geng; Robert Krasny; Guo-Wei Wei; Michael J Holst; J Andrew McCammon; Nathan A Baker
Journal:  Protein Sci       Date:  2017-10-24       Impact factor: 6.725

7.  NGLview-interactive molecular graphics for Jupyter notebooks.

Authors:  Hai Nguyen; David A Case; Alexander S Rose
Journal:  Bioinformatics       Date:  2018-04-01       Impact factor: 6.937

8.  Taking biological structure communications into the third dimension.

Authors:  Mark J van Raaij; Janet Newman
Journal:  Acta Crystallogr F Struct Biol Commun       Date:  2019-11-05       Impact factor: 1.056

9.  Integration of the Rosetta suite with the python software stack via reproducible packaging and core programming interfaces for distributed simulation.

Authors:  Alexander S Ford; Brian D Weitzner; Christopher D Bahl
Journal:  Protein Sci       Date:  2019-12-02       Impact factor: 6.725

10.  Systematic Functional Annotation of Somatic Mutations in Cancer.

Authors:  Patrick Kwok-Shing Ng; Jun Li; Kang Jin Jeong; Shan Shao; Hu Chen; Yiu Huen Tsang; Sohini Sengupta; Zixing Wang; Venkata Hemanjani Bhavana; Richard Tran; Stephanie Soewito; Darlan Conterno Minussi; Daniela Moreno; Kathleen Kong; Turgut Dogruluk; Hengyu Lu; Jianjiong Gao; Collin Tokheim; Daniel Cui Zhou; Amber M Johnson; Jia Zeng; Carman Ka Man Ip; Zhenlin Ju; Matthew Wester; Shuangxing Yu; Yongsheng Li; Christopher P Vellano; Nikolaus Schultz; Rachel Karchin; Li Ding; Yiling Lu; Lydia Wai Ting Cheung; Ken Chen; Kenna R Shaw; Funda Meric-Bernstam; Kenneth L Scott; Song Yi; Nidhi Sahni; Han Liang; Gordon B Mills
Journal:  Cancer Cell       Date:  2018-03-12       Impact factor: 31.743

View more

北京卡尤迪生物科技股份有限公司 © 2022-2023.