addSelection: Add a selection

View source: R/api.R

addSelectionR Documentation

Add a selection

Description

Add a new selection to a NGLVieweR object in Shinymode.

Usage

addSelection(
  NGLVieweR_proxy,
  type,
  param = list(),
  structureIndex = NULL,
  structure = NULL
)

Arguments

NGLVieweR_proxy

A NGLVieweR object.

type

Type of representation. Most common options are "cartoon", "ball+stick", "surface", "ribbon" and "label".

param

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.

structureIndex

Deprecated; use structure. The same, but counting from 0.

structure

(optional) Number of the structure to add the selection to, counting from 1 in the order the structures were added (see addStructure()). In Shiny, input$<outputId>_selectionStructure gives the number of the last clicked structure. If not specified, the selection is added to all loaded structures.

Value

API call containing NGLVieweR id and list of message parameters.

See Also

  • updateRepresentation() Update an existing NGLVieweR representation.

  • NGLVieweR_example() See example "addSelection".

Other selections: removeSelection(), updateSelection()

Examples

## Not run: 
NGLVieweR_proxy("7CID") %>%
 addSelection("ball+stick", param = list(name="sel1",
                                         sele="1-20",
                                         colorValue="yellow",
                                         colorScheme="element"
                                         ))

## End(Not run)

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)
}

NGLVieweR documentation built on Oct. 20, 2026, 1:07 a.m.