【发布时间】:2017-08-22 11:19:09
【问题描述】:
我正在开发一个非常简单的 Shiny 应用程序,它接收 DNA 密码子并返回相应的氨基酸。我的问题是我想验证用户输入,以便它只能接受 3 个字母(单个密码子),必须是大写字母,并且只接受 DNA 碱基(A、C、T 或 G)。我看过Shiny's validation article,但不断遇到错误。 这是我到目前为止的代码:
ui.R
library(shiny)
library(shinythemes)
shinyUI(fluidPage(
theme = shinytheme("slate"),
# Application title
titlePanel("Codon lookup"),
#
sidebarLayout(
sidebarPanel(
textInput(
inputId = "codon",
label = "Enter a codon",
value = ""),
actionButton(inputId = "go", label = "Search")
),
#
mainPanel(
verbatimTextOutput("aminoacid")
)
)
))
服务器.R
library(shiny)
library(Biostrings)
shinyServer(function(input, output) {
data <- eventReactive(input$go, {
#validate somehow
input$codon
})
output$aminoacid <- renderText({
GENETIC_CODE[[as.character(data())]]
})
})
另外,如果有人知道检索氨基酸全名的简单方法,而不仅仅是单个字母符号,那将很有帮助。欢迎任何其他建议。
【问题讨论】:
-
对我有什么反馈吗?
-
@MikeWise 是的,抱歉,今天很忙。这太棒了!我曾考虑过使用 selectInput,但将来可能想进一步扩展它,用户可以输入整个序列并进行翻译。很棒且有用的解释,谢谢!
标签: r shiny user-input