Closed PeteHaitch closed 2 years ago
I think that's the reason why there's a build in 3.15's basic as well maybe? Or at least odd coincidence it's on the same file. Builds fine for me locally as well http://bioconductor.org/checkResults/release/books-LATEST/OSCA.basic/nebbiolo1-buildsrc.html
I'm going to bump the version number of OSCA.workflows in 3.15 to trigger a new build in the hope it fixes itself.
If that doesn't work then I may need to ask @hpages for advice or to poke around on the build machine.
Still need to push to BioC's git server (https://github.com/OSCA-source/OSCA/issues/3#issuecomment-1275423528), but after some small changes it's now building in release (3.15) and devel (3.16) for me locally on macOS.
Now pushed both release and devel to BioC's git server. Crossing my fingers that it works and makes its way through the build system.
Partial success with those recent changes:
The logs for the most recent build on BioC 3.15 include
# Quitting from lines 23-33 (muraro-pancreas.Rmd)
# Error in joinTwoTables(a = alreadyUsed, b = tab, mysql = mysql) :
# Table(s) gene_info can not be joined with genes!
# Calls: <Anonymous> ... joinQueryOnColumns2 -> joinQueryOnTables2 -> joinTwoTables
#
# Execution halted
Tracing those lines, the error occurs during retrieval/loading of an EnsDb object from AnnotationHub, and I think the joinTwoTables()
function is from the ensembldb package.
The following boils down the issue to a reprex, which I've tested on an up-to-date BioC 3.15 on macOS (Intel) and Linux (CentOS).
In both cases it succeeds, so this seems specific to the BioC build machine.
Perhaps it's an issue with a corrupted AnnotationHub resource AH73881
on the builder?
@hpages are you able to please investigate?
suppressPackageStartupMessages(library(scRNAseq))
sce.muraro <- MuraroPancreasData()
#> snapshotDate(): 2022-04-26
#> see ?scRNAseq and browseVignettes('scRNAseq') for documentation
#> loading from cache
#> see ?scRNAseq and browseVignettes('scRNAseq') for documentation
#> loading from cache
suppressPackageStartupMessages(library(AnnotationHub))
edb <- AnnotationHub()[["AH73881"]]
#> snapshotDate(): 2022-04-25
#> loading from cache
#> require("ensembldb")
gene.symb <- sub("__chr.*$", "", rownames(sce.muraro))
gene.ids <- mapIds(edb, keys=gene.symb,
keytype="SYMBOL", column="GENEID")
#> Warning: Unable to map 2110 of 19059 requested IDs.
# Removing duplicated genes or genes without Ensembl IDs.
keep <- !is.na(gene.ids) & !duplicated(gene.ids)
sce.muraro <- sce.muraro[keep,]
rownames(sce.muraro) <- gene.ids[keep]
Created on 2022-10-13 with reprex v2.0.2
suppressPackageStartupMessages(library(scRNAseq))
sce.muraro <- MuraroPancreasData()
#> snapshotDate(): 2022-04-26
#> see ?scRNAseq and browseVignettes('scRNAseq') for documentation
#> loading from cache
#> see ?scRNAseq and browseVignettes('scRNAseq') for documentation
#> loading from cache
suppressPackageStartupMessages(library(AnnotationHub))
edb <- AnnotationHub()[["AH73881"]]
#> snapshotDate(): 2022-04-25
#> loading from cache
#> require("ensembldb")
gene.symb <- sub("__chr.*$", "", rownames(sce.muraro))
gene.ids <- mapIds(edb, keys=gene.symb,
keytype="SYMBOL", column="GENEID")
#> Warning: Unable to map 2110 of 19059 requested IDs.
keep <- !is.na(gene.ids) & !duplicated(gene.ids)
sce.muraro <- sce.muraro[keep,]
rownames(sce.muraro) <- gene.ids[keep]
Created on 2022-10-13 with reprex v2.0.2
I have no idea. Seems like an AnnotationHub caching problem of some kind. When did this start happening?
Long shot: rebook caches very aggressively via knitr's chunk caching. One possibility is that multiple books are trying to compile the Muraro chapter at the same time, but they all are reading/writing from the same cache, which could cause some corruption. That said, this should not be possible, because the compilation of any given report is protected by multiple filelock locks, and besides, the knitr caching shouldn't have had a chance to save edb
anyway.
@Alanocallaghan's $ operator is invalid for atomic vectors
is a bit easier to explain. The failure of the Muraro compilation causes extractFromPackage
to just emit a "NOT FOUND" string (or something like that, I can't remember) when it can't find the requested object because the compilation didn't complete. Ideally it would throw a more explicit error for easier debugging but I just work with what I get out of knitr::load_cache
- maybe we should file a PR upstream.
I just nuked the AnnotationHub and rebook caches on nebbiolo1. We'll see how that goes.
Thanks Hervé!
Success! Now building and passing checks in BioC 3.16 as well as BioC 3.15
@LTLA Any idea what might be going on here? https://www.bioconductor.org/checkResults/3.15/books-LATEST/OSCA.workflows/nebbiolo1-buildsrc.html The
muraro-pancreas.Rmd
builds fine for me as a standalone doc, so I'm guessing it's tied up in the bookdown/rebook stuff that I'm still trying to wrap my head around. Any pointers appreciated - I'm trying to make sure OSCA.workflows builds properly in release and devel before the forthcoming release deadline.