Nothing
## ----setup, echo = FALSE, message = FALSE-------------------------------------
knitr::opts_chunk$set(tidy = FALSE, comment = "#>")
## ----eval=FALSE---------------------------------------------------------------
# install.packages("remotes")
# remotes::install_github("nvelden/NGLVieweR")
## ----eval=FALSE---------------------------------------------------------------
# #Load local pdb file
# NGLVieweR("C:/7CID.pdb") %>%
# addRepresentation("cartoon")
# #Load protein by PDB code
# NGLVieweR("7CID") %>%
# addRepresentation("cartoon")
## ----Loading, echo=FALSE, screenshot.force=FALSE------------------------------
library(NGLVieweR)
#Load local pdb file
NGLVieweR("7CID") %>%
addRepresentation("cartoon")
## ----eval=FALSE---------------------------------------------------------------
# library(NGLVieweR)
# library(shiny)
# NGLVieweR_example("basic")
## ----fileformat, screenshot.force=FALSE---------------------------------------
#Note that line formatting needs to be exact when reading from console!
benz <- "
702
-OEChem-02271511112D
9 8 0 0 0 0 0 0 0999 V2000
0.5369 0.9749 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
1.4030 0.4749 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
2.2690 0.9749 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8015 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
1.0044 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
1.9590 1.5118 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
2.8059 1.2849 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
2.5790 0.4380 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.6649 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
1 9 1 0 0 0 0
2 3 1 0 0 0 0
2 4 1 0 0 0 0
2 5 1 0 0 0 0
3 6 1 0 0 0 0
3 7 1 0 0 0 0
3 8 1 0 0 0 0
M END
> <ID>
00001
> <DESCRIPTION>
Solvent produced by yeast-based fermentation of sugars.
$$$$
"
NGLVieweR(benz, format="sdf") %>%
addRepresentation("ball+stick")
## ----eval=FALSE---------------------------------------------------------------
# NGLVieweR("7CID") %>%
# addRepresentation("cartoon") %>%
# addRepresentation("ball+stick")
## ----structures, screenshot.force=FALSE---------------------------------------
NGLVieweR("7CID") %>%
addRepresentation("cartoon",
param = list(colorScheme = "residueindex")
) %>%
addRepresentation("ball+stick",
param = list(
sele = "233-248",
colorValue = "red",
colorScheme = "element"
)
) %>%
addRepresentation("surface",
param = list(
colorValue = "white",
opacity = 0.1
)
)
## ----representations, screenshot.force=FALSE----------------------------------
NGLVieweR("1CRN") %>%
addRepresentation("cartoon", param = list(color = "blue")) %>%
addStructure("1CRN") %>%
addRepresentation("cartoon", param = list(color = "orange")) %>%
setPosition(x = 20, y = 0, z = 0) %>%
setRotation(x = 2, y = 0, z = 0, degrees = FALSE) %>%
setScale(0.5)
## ----superpose, screenshot.force=FALSE----------------------------------------
NGLVieweR("1GZM") %>%
addRepresentation("cartoon", param = list(color = "blue")) %>%
addStructure("1U19") %>%
addRepresentation("cartoon", param = list(color = "orange")) %>%
setSuperpose(
reference = 1,
sele_reference = ":A",
sele_target = ":A",
superpose = TRUE
)
## ----stage, screenshot.force=FALSE--------------------------------------------
NGLVieweR("7CID") %>%
stageParameters(backgroundColor = "white", zoomSpeed = 1) %>%
addRepresentation("cartoon",
param = list(name = "cartoon", colorScheme = "residueindex")
) %>%
setSpin()
## ----labels, screenshot.force=FALSE-------------------------------------------
NGLVieweR("7CID") %>%
addRepresentation("cartoon") %>%
addRepresentation("ball+stick", param = list(
colorScheme = "element",
colorValue = "yellow",
sele = "20"
)) %>%
addRepresentation("label",
param = list(
sele = "20",
labelType = "format",
labelFormat = "[%(resname)s]%(resno)s", # or enter custom text
labelGrouping = "residue", # or "atom" (eg. sele = "20:A.CB")
color = "white",
fontFamiliy = "sans-serif",
xOffset = 1,
yOffset = 0,
zOffset = 0,
fixedSize = TRUE,
radiusType = 1,
radiusSize = 1.5, # Label size
showBackground = FALSE
# backgroundColor="black",
# backgroundOpacity=0.5
)
)
## ----zoom, screenshot.force=FALSE---------------------------------------------
NGLVieweR("7CID") %>%
addRepresentation("cartoon") %>%
addRepresentation("ball+stick",
param = list(
colorScheme = "element",
colorValue = "yellow",
sele = "20"
)
) %>%
addRepresentation("label",
param = list(
sele = "20",
labelType = "format",
labelFormat = "[%(resname)s]%(resno)s", # or enter custom text
labelGrouping = "residue", # or "atom" (eg. sele = "20:A.CB")
color = "white",
xOffset = 1,
fixedSize = TRUE,
radiusType = 1,
radiusSize = 1.5
) # Label size
) %>%
zoomMove(
center = "20",
zoom = "20",
duration = 0, # animation time in ms
z_offSet = -20
)
## ----contact, screenshot.force=FALSE------------------------------------------
NGLVieweR("3RY2") %>%
addRepresentation("cartoon") %>%
addRepresentation("ball+stick",
param = list(
name = "biotin",
colorvalue = "grey",
colorScheme = "element",
sele = "5001"
)
) %>%
addRepresentation("ball+stick",
param = list(
name = "interacting",
colorScheme = "element",
colorValue = "green",
sele = "23 or 27 or 43 or 45 or 128"
)
) %>%
zoomMove(
center = "27:B",
zoom = "27:B",
z_offSet = -20
) %>%
addRepresentation("contact",
param = list(
name = "contact",
sele = "5001 or 23 or 27 or 43 or 45 or 128",
filterSele = list("23 or 27 or 45 or 128", "5001"),
labelVisible = TRUE,
labelFixedSize = FALSE,
labelUnit = "angstrom", # "", "angstrom", "nm"
labelSize = 2
# hydrogenBond=TRUE,
# weakHydrogenBond=FALSE,
# waterHydrogenBond=FALSE,
# backboneHydrogenBond=TRUE,
# hydrophobic=FALSE,
# halogenBond=TRUE,
# ionicInteraction=TRUE,
# metalCoordination=TRUE,
# cationPi=TRUE,
# piStacking=TRUE,
# maxHydrophobicDist= 4.0,
# maxHbondDist= 3.5,
# maxHbondSulfurDist= 4.1,
# maxHbondAccAngle= 45,
# maxHbondDonAngle= 45,
# maxHbondAccPlaneAngle= 90,
# maxHbondDonPlaneAngle= 30,
# maxPiStackingDist= 5.5,
# maxPiStackingOffset= 2.0,
# maxPiStackingAngle= 30,
# maxCationPiDist= 6.0,
# maxCationPiOffset= 2.0,
# maxIonicDist= 5.0,
# maxHalogenBondDist= 3.5,
# maxHalogenBondAngle= 30,
# maxMetalDist= 3.0,
# refineSaltBridges= TRUE,
# masterModelIndex= -1,
# lineOfSightDistFactor= 1
)
)
## ----eval=FALSE---------------------------------------------------------------
# library(shiny)
# library(NGLVieweR)
# ui <- fluidPage(NGLVieweROutput("structure"))
# server <- function(input, output) {
# output$structure <- renderNGLVieweR({
# NGLVieweR("7CID") %>%
# addRepresentation("cartoon",
# param = list(
# name = "cartoon", color =
# "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)
## ----echo=FALSE, fig.cap="A basic NGLVieweR Shiny app"------------------------
knitr::include_graphics("../man/figures/basic_shiny.PNG")
## ----eval=FALSE---------------------------------------------------------------
# library(shiny)
# library(NGLVieweR)
#
# 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, {
# if (isolate(input$type) == "cartoon") {
# # For cartoon, use the color parameter
# NGLVieweR_proxy("structure") %>%
# addSelection(isolate(input$type),
# param = list(
# name = "sel1",
# sele = isolate(input$selection),
# color = isolate(input$color)
# )
# )
# } else {
# # For other types, use colorValue
# 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)
## ----echo=FALSE, fig.cap="NGLVieweR API in Shiny"-----------------------------
knitr::include_graphics("../man/figures/API_shiny.PNG")
## ----eval=FALSE---------------------------------------------------------------
# library(shiny)
# library(NGLVieweR)
# library(stringr)
#
# ui <- fluidPage(
# titlePanel("Viewer with click interaction"),
# sidebarLayout(
# sidebarPanel(verbatimTextOutput('selection')),
# mainPanel(NGLVieweROutput("structure"))
# )
# )
#
# server <- function(input, output) {
# output$structure <- renderNGLVieweR({
# NGLVieweR("3RY2") %>%
# addRepresentation("cartoon") %>%
# addRepresentation(
# "ball+stick",
# param = list(
# name = "biotin",
# colorvalue = "grey",
# colorScheme = "element",
# sele = "5001"
# )
# ) %>%
# zoomMove(center = "27:B",
# zoom = "27:B",
# z_offSet = -20) %>%
# selectionParameters(3, "residue") #"atom"
# })
#
# #Save click selections
# sele <- reactiveValues()
#
# observe({
# sele$aa <-
# str_extract(input$structure_selection, "(?<=[\\[])(.*?)(?=\\])")
# sele$aa_bond <-
# str_extract(input$structure_selection, "(?<=[\\]])(.*?)(?=[:space:])")
# sele$resiChain <-
# str_extract(input$structure_selection, "(?<=[]])(.*?)(?=[.])")
# sele$resi <-
# str_extract(input$structure_selection, "(?<=[]])(.*?)(?=[:])")
# sele$fileName <-
# str_extract(input$structure_selection, "(?<=[(])(.*?)(?=[.])")
# })
#
# output$selection = renderPrint({
# #Full selection
# print(input$structure_selection)
# #Amino Acid
# print(sele$aa)
# #Bond
# print(sele$aa_bond)
# #Residue number + ChainNAme
# print(sele$resiChain)
# #Residue number
# print(sele$resi)
# #PDB name
# print(sele$fileName)
# #SelAround
# print(input$structure_selAround)
# })
#
# observeEvent(input$structure_selAround, {
# NGLVieweR_proxy("structure") %>% removeSelection("selAround")
#
# NGLVieweR_proxy("structure") %>%
# addSelection(
# "ball+stick",
# param =
# list(
# name = "selAround",
# sele = input$structure_selAround,
# colorValue = "grey"
# )
# )
#
# })
#
# observeEvent(sele$resiChain, {
# #Remove any selections
# NGLVieweR_proxy("structure") %>% removeSelection("label")
# NGLVieweR_proxy("structure") %>% removeSelection("contact")
#
# #Add label and contacts
# NGLVieweR_proxy("structure") %>%
#
# addSelection(
# "label",
# param = list(
# name = "label",
# sele = sele$resiChain,
# labelType = "format",
# labelFormat = "[%(resname)s]%(resno)s",
# # or enter custom text
# labelGrouping = "residue",
# # or "atom" (eg. sele = "20:A.CB")
# color = "white",
# xOffset = 1,
# fixedSize = TRUE,
# radiusType = 1,
# radiusSize = 1.5
# )
# ) %>%
# addSelection(
# "contact",
# param = list(
# name = "contact",
# sele = "*",
# #Select all residues
# filterSele =
# list(sele$resiChain, # Show bonds between selected residue
# "*"),
# # and all other residues
# labelVisible = TRUE,
# labelFixedSize = FALSE,
# labelUnit = "angstrom",
# # "", "angstrom", "nm"
# labelSize = 2
# )
# )
# })
#
# }
# shinyApp(ui, server)
## ----echo=FALSE, fig.cap="Click interaction example in NGLVieweR"-------------
knitr::include_graphics("../man/figures/click_interaction.PNG")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.