Add a new selection to a NGLVieweR object in Shinymode.
addSelection(NGLVieweR_proxy, type, param = list(), structureIndex = NULL)
A NGLVieweR object.
Type of representation. Most common options are "cartoon", "ball+stick", "surface", "ribbon" and "label".
Options for the different types of representations. Most common
options are name
, opacity
, colorScheme
, sele
,
colorValue
and visibility
. For a full list of options, see the
general "RepresentationParameters" method and type specific Label-,
Structure- and Surface- RepresentationParameters in the official
NGL.js manual.
(optional) The index of the specific structure to which the selection should be added. If not specified, the selection will be applied to all loaded structures.
API call containing NGLVieweR
id
and list of message
parameters.
updateRepresentation()
Update an existing NGLVieweR representation.
NGLVieweR_example()
See example "addSelection".
Other selections:
removeSelection()
,
updateSelection()
if (FALSE) { # \dontrun{
NGLVieweR_proxy("7CID") %>%
addSelection("ball+stick", param = list(name="sel1",
sele="1-20",
colorValue="yellow",
colorScheme="element"
))
} # }
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")
)
})
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)
}