0
votes

I'm posting this because I have not managed to get the solutions posted other places working. I'm trying to re-deploy a shiny dash, but it is failing to install a package at deploy.

It's the BioConductor error, but the package it claims to fail for is a CRAN package, and so I have no idea what to do.

MRE:

library(ggseg); library(shiny); library(tidyverse); library(plotly)

# Define UI ----
ui <- fluidPage(

  # Application title
  titlePanel("Demonstration of ggseg package"),

  # Sidebar with a slider input for number of bins 
  sidebarLayout(
    sidebarPanel(
      radioButtons(inputId = "atlasChoice", label="Choose atlas", 
                   choiceValues = c("dkt_3d","yeo7_3d",), 
                   choiceNames = c("DKT", "Yeo7"),
                   inline = FALSE, width = NULL),
      radioButtons(inputId = "positionChoice", label="Choose position", 
                   choices = c("LCBC left","LCBC right"), 
                   inline = FALSE, width = NULL)
    ),

    # Show a plot of the generated distribution
    mainPanel(
      uiOutput("plotUI")
    )
  )
)

# Define server  ----
server <- function(input, output) {

  output$plotUI <- renderUI({
    plotlyOutput("plotlyPlot")
  })

  output$plotlyPlot <- renderPlotly({

cc = strsplit(input$positionChoice, " ")[[1]]

ggseg3d(atlas=input$atlasChoice, 
        surface=cc[1],
        hemisphere=cc[2]
)
  })
}

# Run the application 
shinyApp(ui = ui, server = server)

My repos are set as so:

getOption("repos")
                                               BioCsoft 
           "https://bioconductor.org/packages/3.7/bioc" 
                                                BioCann 
"https://bioconductor.org/packages/3.7/data/annotation" 
                                                BioCexp 
"https://bioconductor.org/packages/3.7/data/experiment" 
                                          BioCworkflows 
      "https://bioconductor.org/packages/3.7/workflows" 
                                                   CRAN 
                             "https://cran.rstudio.com"

And the error is as following:

Preparing to deploy document...DONE
Uploading bundle for document: 619289...DONE
Deploying bundle: 1770029 for document: 619289 ...
Waiting for task: 573690766
  building: Parsing manifest
################################ Begin Task Log ################################ 
################################# End Task Log ################################# 
Error: Unhandled Exception: Child Task 573690767 failed:  
Error parsing manifest: Unable to determine package source for Bioconductor package oompaBase: Repository must be specified  
Execution halted
1
Why does your example need BioConductor? The only non-CRAN package there seems to be your ggseg and I don't see that on CRAN or BioC. Does ggseg have oompaBase as a dependency somehow? Do you have admin on the shiny server to add packages globally to R there?Spacedman
I really dont know WHY it needs BioConductor, other than the error telling me so. oompaBase is on CRAN, so why it wants to install it from BC i dont know. ggseg depends on paletteer, which has oompaBase palettes in it. I'm launching it on shinyapps.io, and I dont believe I can add packages there.Athanasia Mowinckel
Docs for shinyapps.io say it uses rsconnect to search for "library" calls and then hunts down the packages in CRAN, BioC and github, but how does it know where on github to find ggseg? Is your shinyapps account linked with the right github account? Probably a job for shinyapps support...Spacedman
I already have an older version of this shiny on shinyapps, so it does install it from github. It's something odd happening with this release, that has the paletteer dependence.Athanasia Mowinckel

1 Answers

1
votes

I don't know if Athanasia's solved this in the end, but I had a similar problem today, so here's what worked for me, in case it's useful for someone else :)

My app uses biomaRt, which I think depends on Biobase. When I tried to deploy, I had the error:

Error: Unhandled Exception: Child Task 601909864 failed: Error parsing manifest: Unable to
determine package source for Bioconductor package Biobase: Repository must be specified

I changed my repos settings based on instructions I found here. This alone also didn't work for me.

Once I reinstalled Biomart using BiocInstaller::biocLite(), my app deployed successfully :)