Description Usage Arguments Details Value See Also Examples
NGLVieweR 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 in Shiny.
1 |
data |
PDB file or PDB entry code |
format |
Input format (.mmcif, .cif, .mcif, .pdb, .ent, .pqr, .gro, .sdf, .sd, .mol2, .mmtf). Needed when no file extension is provided. |
width, height |
Must be a valid CSS unit (like |
elementId |
optional element Id |
The package is based on the NGL.js JavaScript library. To see the full set of features please read the official manual of NGL.js.
A NGLVieweR
htmlwidgets
object.
NGLVieweR_proxy()
for handling of API calls after rendering.
NGLVieweR_example()
See example "API" and "basic".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | # Example 1: Most Basic
NGLVieweR("7CID") %>%
addRepresentation("cartoon", param = list(name = "cartoon", colorScheme="residueindex"))
# Example 2: Advanced
NGLVieweR("7CID") %>%
stageParameters(backgroundColor = "white") %>%
setQuality("high") %>%
setSpin(FALSE) %>%
addRepresentation("cartoon",
param = list(
name = "cartoon",
colorScheme = "residueindex"
)
) %>%
addRepresentation("ball+stick",
param = list(
name = "ball+stick",
colorValue = "red",
colorScheme = "element",
sele = "200"
)
) %>%
addRepresentation("label",
param = list(
name = "label", sele = "200:A.O",
showBackground = TRUE,
backgroundColor = "black",
backgroundMargin = 2,
backgroundOpacity = 0.5,
showBorder = TRUE,
colorValue = "white"
)
) %>%
addRepresentation("surface",
param = list(
name = "surface",
colorValue = "white",
opacity = 0.1
)
) %>%
zoomMove("200", "200", 2000, -20)
#---------------------Using Shiny-------------------------
# App 1: Basic Example
if (interactive()) {
library(shiny)
ui <- fluidPage(NGLVieweROutput("structure"))
server <- function(input, output) {
output$structure <- renderNGLVieweR({
NGLVieweR("7CID") %>%
addRepresentation("cartoon",
param = list(
name = "cartoon",
colorScheme = "residueindex"
)
) %>%
addRepresentation("ball+stick",
param = list(
name = "cartoon",
sele = "1-20",
colorScheme = "element"
)
) %>%
stageParameters(backgroundColor = "black") %>%
setQuality("high") %>%
setFocus(0) %>%
setSpin(TRUE)
})
}
shinyApp(ui, server)
}
# App 2: Example with API calls
if (interactive()) {
library(shiny)
ui <- fluidPage(
titlePanel("Viewer with API inputs"),
sidebarLayout(
sidebarPanel(
textInput("selection", "Selection", "1-20"),
selectInput("type", "Type", c("ball+stick", "cartoon", "backbone")),
selectInput("color", "Color", c("orange", "grey", "white")),
actionButton("add", "Add"),
actionButton("remove", "Remove")
),
mainPanel(
NGLVieweROutput("structure")
)
)
)
server <- function(input, output) {
output$structure <- renderNGLVieweR({
NGLVieweR("7CID") %>%
addRepresentation("cartoon",
param = list(name = "cartoon", colorScheme = "residueindex")
) %>%
stageParameters(backgroundColor = input$backgroundColor) %>%
setQuality("high") %>%
setFocus(0) %>%
setSpin(TRUE)
})
observeEvent(input$add, {
NGLVieweR_proxy("structure") %>%
addSelection(isolate(input$type),
param =
list(
name = "sel1",
sele = isolate(input$selection),
colorValue = isolate(input$color)
)
)
})
observeEvent(input$remove, {
NGLVieweR_proxy("structure") %>%
removeSelection("sel1")
})
}
shinyApp(ui, server)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.