Interactive 3D Visualization of Molecular Structures

Provides an 'htmlwidgets' < https://www.htmlwidgets.org/> interface to 'NGL.js' < https://nglviewer.org/ngl/api/>. 'NGLVieweR' can be used to visualize and interact with protein databank ('PDB') and structural files in R and Shiny applications. It includes a set of API functions to manipulate the viewer after creation in Shiny.


NGLVieweR Logo

NGLVieweR - Visualize and interact with Protein Data Bank (PDB) and structural files in R and Shiny

R-CMD-check Lifecycle: experimental CRAN status Metacran downloads

Click here to view a Shiny application integrating most features of NGLVieweR.

Note: The app can take 1-2 minutes to load on your first visit while the browser downloads and starts the WebAssembly runtime.

Description

NGLVieweR provides an R interface to the NGL.js JavaScript library. It can be used to visualize and interact with protein data bank (PDB) and structural files in R and Shiny applications. It includes a set of API functions to manipulate the viewer after creation and makes it possible to retrieve data from the visualization into R.

Installation

You can install the released version of NGLVieweR from CRAN with:

install.packages("NGLVieweR")

And the development version from GitHub with:

install.packages("remotes")
remotes::install_github("nvelden/NGLVieweR")

Basics

You can load a PDB (or any other supported structural file) directly or use a PDB code of a structure on RCSB.org. The below minimal example loads the PDB file and displays the structure in a "cartoon" representation.

#Load local pdb file
NGLVieweR("C:/7CID.pdb") %>%
addRepresentation("cartoon")

#Load protein by PDB code
NGLVieweR("7CID") %>%
addRepresentation("cartoon")
Cartoon representation example in NGLVieweR

Functionality

There are functions provided to:

  • Overlay different representation styles
  • Alter the stage parameters (e.g. background, zoom- and rotation speed)
  • Zoom to specific selections
  • Add labels
  • Add contacts between residues
  • Auto rotate/rock

In Shiny apps, you can manipulate the NGLVieweR widget after creation using specific "API"" calls. Users can for instance add/remove representations, make snapshots, add labels or highlight specific regions. See the Get started section for a complete overview.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("NGLVieweR")

1.5.0 by Niels van der Velden, 7 days ago


https://nvelden.github.io/NGLVieweR/, https://github.com/nvelden/NGLVieweR


Report a bug at https://github.com/nvelden/NGLVieweR/issues


Browse source code at https://github.com/cran/NGLVieweR


Authors: Niels van der Velden [aut, cre] , Alexander Rose [cph] (NGL.js library) , three.js authors [cph] (three.js library , bundled in NGL.js) , Mol* contributors [cph] (Mol* library , bundled in NGL.js) , Gregor Aisch [cph] (chroma.js library , bundled in NGL.js) , Cynthia Brewer [cph] (ColorBrewer colors in chroma.js) , Mark Harrower [cph] (ColorBrewer colors in chroma.js) , The Pennsylvania State University [cph] (ColorBrewer colors in chroma.js) , Alexandru Mărășteanu [cph] (sprintf.js library , bundled in NGL.js) , Miller Medeiros [cph] (JS Signals library , bundled in NGL.js) , Microsoft Corporation [cph] (tslib library , bundled in NGL.js) , Vitaly Puzrin [cph] (pako code in NGL.js) , Jean-loup Gailly [cph] (zlib code ported in pako) , Mark Adler [cph] (zlib code ported in pako) , Daniel Lemire [cph] (FastBitSet.js code in NGL.js) , Gregg Tavares [cph] (webgl-utils.js code in NGL.js)


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports grDevices, htmlwidgets, magrittr, tools, shiny

Suggests knitr, webshot, markdown, rmarkdown, colourpicker, testthat, shinytest2, chromote, withr, pkgload, htmltools, callr


See at CRAN