gpt4 book ai didi

javascript - R 中 Shiny 的 STRING 交互网络

转载 作者:行者123 更新时间:2023-12-02 21:36:04 24 4
gpt4 key购买 nike

问题陈述:我正在尝试使用 R 将 STRING 的交互式网络加载到 Shiny 的网站中

我尝试过的:根据STRING ,我可以嵌入交互式网络,但我需要几个元素:

  1. Javascript 库
    <script type="text/javascript" src="http://string-db.org/javascript/combined_embedded_network_v2.0.2.js"></script>
  2. 嵌入div元素
    <div id="stringEmbedded"></div>
  3. 使用参数调用特定蛋白质,例如TP53
    getSTRING('https://string-db.org', {'ncbiTaxonId':'9606', 'identifiers':['TP53'], 'network_flavor':'confidence'})"

理论上,生成的网络应该定位到 <div id="stringEmbedded"></div> 的任何地方。被放置。

所以我为 Shiny 做了这个:

library(shiny)
library(shinydashboard)

header <- dashboardHeader(title = "Test")
tags$head(HTML("<script type='text/javascript' src='http://string-db.org/javascript/combined_embedded_network_v2.0.2.js'></script>"))

sidebar <- dashboardSidebar(sidebarMenu(
menuItem("Item1", tabName = "dashboard", icon = icon("dashboard")),
menuItem("Item2", tabName = "widgets", icon = icon("th")),
sidebarSearchForm(textId = "searchText", buttonId = "searchButton",label = "Search...") #input$searchText and input$searchButton
))

body <-dashboardBody(
fluidRow(
tags$body(tags$script(HTML("getSTRING('https://string-db.org', {'ncbiTaxonId':'9606', 'identifiers':['TP53'], 'network_flavor':'confidence'})")),
fluidRow(

tabBox(
side = "left", height = "250px",
selected = "Tab3",
tabPanel("Tab1", tags$div(id="stringEmbedded")),
tabPanel("Tab2", "Tab content 2"),
tabPanel("Tab3", "Note that when side=right, the tab order is reversed.")
)
)

ui <- fluidPage(dashboardPage(header, sidebar, body))

server <- function(input, output) {}

shinyApp(ui = ui, server = server)

最佳答案

根据我上面的评论,这里是一个关于如何将 STRING 基因网络嵌入到 Shiny 应用程序中的最小工作示例。我使用了 shinyjs,虽然不是绝对必要的,但它使使用自定义 JS 代码变得更容易。

library(shiny)
library(shinyjs)

jsCode <- "
shinyjs.loadStringData = function(gene) {
getSTRING('https://string-db.org', {
'ncbiTaxonId':'9606',
'identifiers': gene,
'network_flavor':'confidence'})
}"

ui <- fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode),
tags$head(tags$script(src = "http://string-db.org/javascript/combined_embedded_network_v2.0.2.js")),
textInput("gene", "Gene symbol", value = "TP53"),
actionButton("button", "Show"),
h3("Network:"),
tags$div(id = "stringEmbedded")
)

server <- function(input, output, session) {

onclick("button", {
req(input$gene)
js$loadStringData(input$gene)
})

}

shinyApp(ui, server)

enter image description here

关于javascript - R 中 Shiny 的 STRING 交互网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60492135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com