首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rentrez和Using下载蛋白质序列

使用rentrez和Using下载蛋白质序列
EN

Stack Overflow用户
提问于 2018-09-23 20:56:07
回答 1查看 109关注 0票数 0

我不熟悉R和闪亮。到目前为止,我已经能够制作一个脚本,该脚本可以使用rentrez包从ncbi中获取蛋白质序列。然而,我无法使它在一个闪亮的应用程序中工作。

我在ui中有以下输入

代码语言:javascript
复制
 sidebarPanel(
                    uiOutput("maps.protein.input")
                  ),

在应用程序文件中:

代码语言:javascript
复制
output$maps.protein.input <- renderUI({
selectInput("prot.accession", "Accession:", as.list(pep.accession))

此部分工作良好,并将pep.accession列表读取到selectInput中。

现在,我想使用rentrez下载蛋白质序列。

代码语言:javascript
复制
protein_seq <- reactive({

                    raw_seq <- entrez_fetch(db="protein", id= paste(input$prot.accession), rettype = "fasta")
                    raw_seq <- str_sub(raw_seq, start = str_locate(pattern = "\n", protein_seq)[,1] +1 )
                    str_replace_all(raw_seq, "[\r\n]" , "")

 }) 

在一个R脚本中,我使用:

代码语言:javascript
复制
protein_seq <- entrez_fetch(db="protein", id="XP_011524437.1", rettype = "fasta")
protein_seq <- str_sub(protein_seq, start = str_locate(pattern = "\n", protein_seq)[,1] +1 )
protein_seq <- str_replace_all(protein_seq, "[\r\n]" , "")

这个密码起作用了。我只想让它具有交互性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 17:42:13

这里有个解决办法。我在selectInput中使用了selectInput,因为我不知道pep.accession是什么。你可以在你的应用程序中改变它。我还更正了str_sub中的逻辑,并添加了一个req()语句。

代码语言:javascript
复制
library(shiny)
library(rentrez)

ui <- fluidPage(
  sidebarPanel(
    uiOutput("maps.protein.input")
  ),
  mainPanel(
    textOutput("result1")
  )
)

server <- function(input, output, session) {
  output$maps.protein.input <- renderUI({
    selectInput("prot.accession", "Accession:", "XP_011524437.1")
  })

  protein_seq <- reactive({
    req(input$prot.accession)
    raw_seq <- entrez_fetch(db = "protein", id = input$prot.accession, rettype = "fasta")
    raw_seq <- stringr::str_sub(raw_seq, start = str_locate(pattern = "\n", raw_seq)[,1] +1 )
    stringr::str_replace_all(raw_seq, "[\r\n]" , "")
    return(raw_seq)
  })

  output$result1 <- renderText({
    paste0("Protein sequence: ", as.character(protein_seq()))
  })
}

shinyApp(ui, server)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52470174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档