Всякий раз, когда вы используете реактивные выражения, вы должны использовать скобки, чтобы получить значение этого выражения. Я добавил заявление для печати, чтобы вы могли увидеть разницу. Код должен работать сейчас. Но в целом, поскольку вы не манипулируете своими входными данными, нет необходимости переносить их, как в реактивных выражениях.
library(seqinr)
library(shiny)
# User interface
ui <- fluidPage(
titlePanel("Welcome to DotMatcher Plot App"),
sidebarLayout(
sidebarPanel (
fileInput("protein1",
label = "Choose a file",
multiple = FALSE,
accept =c("text", "fasta")),
fileInput( "protein2",
label = NULL,
multiple=FALSE,
accept =c("text", "fasta"))
),
# Outputs
mainPanel(
plotOutput(outputId = "plot")
)
)
)
# Server Function
server <- function(input, output) {
seq1 <- reactive({
req(input$protein1)})
seq2 <- reactive({
req(input$protein2)
})
output$plot <- renderPlot({
print(seq1)
print(seq1())
dotPlot(seq1(), seq2(), wsize = 100, wstep = 100, nmatch = 100)
})
}
# App
shinyApp(ui = ui, server = server)