Problem using load_raw() function in crossmeta R package
0
0
Entering edit mode
michael.s • 0
@user-24787
Last seen 9 hours ago
Athens

Initially, I have pre-downloaded all the raw files for meta-analysis from GEO in the wd. Then, I run the following code:

> library(crossmeta)
> # specify where data will be downloaded
> data_dir <- file.path(getwd())
> # gather all GSEs
> gse_names  <- c("GSE88", "GSE89", "GSE3167")
> get_raw(gse_names, data_dir)
> esets <- load_raw(gse_names, data_dir)

After get_raw, the .cel files are successfully extracted from .tar raw files. But, after load_raw I get the following error message:

https://ftp.ncbi.nlm.nih.gov/geo/series/GSEnnn/GSE88/matrix/
Error in function (type, msg, asError = TRUE)  : 
  error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘annotation’ for signature ‘"character"’

My sessionInfo() are:

R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)
crossmeta_1.16.1    GEOquery_2.58.0     Biobase_2.50.0 

The traceback() information are:

8: stop(gettextf("unable to find an inherited method for function %s for signature %s", 
       sQuote(fdef@generic), sQuote(cnames)), domain = NA)
7: (function (classes, fdef, mtable) 
   {
       methods <- .findInheritedMethods(classes, fdef, mtable)
       if (length(methods) == 1L) 
           return(methods[[1L]])
       else if (length(methods) == 0L) {
           cnames <- paste0("\"", vapply(classes, as.character, 
               ""), "\"", collapse = ", ")
           stop(gettextf("unable to find an inherited method for function %s for signature %s", 
               sQuote(fdef@generic), sQuote(cnames)), domain = NA)
       }
       else stop("Internal error in finding inherited methods; didn't return a unique method", 
           domain = NA)
   })(list("character"), new("standardGeneric", .Data = function (object, 
       ...) 
   standardGeneric("annotation"), generic = structure("annotation", package = "BiocGenerics"), 
       package = "BiocGenerics", group = list(), valueClass = character(0), 
       signature = "object", default = NULL, skeleton = (function (object, 
           ...) 
       stop("invalid call in method dispatch to 'annotation' (no default method)", 
           domain = NA))(object, ...)), <environment>)
6: FUN(X[[i]], ...)
5: lapply(X = X, FUN = FUN, ...)
4: sapply(eset, Biobase::annotation)
3: paste0(sapply(eset, Biobase::annotation), ".soft", collapse = "|")
2: load_plat(gse_name, data_dir, gpl_dir, ensql)
1: load_raw(gse_names, data_dir)
cross meta-analysis crossmeta • 252 views
ADD COMMENT
0
Entering edit mode
ADD REPLY
0
Entering edit mode

The error is reported a lot on other forums but in relation to other issues, usually Git. Have you tried to re-install crossmeta and verify that it completes with no warnings?

ADD REPLY
0
Entering edit mode

Thank you for the response. I uninstall the package and install it again with no warnings. The same problem appears.

> if (!requireNamespace("BiocManager", quietly = TRUE))
+     install.packages("BiocManager")
> 
> BiocManager::install("crossmeta")
Bioconductor version 3.12 (BiocManager 1.30.10), R 4.0.3 (2020-10-10)
Installing package(s) 'crossmeta'
trying URL 'https://bioconductor.org/packages/3.12/bioc/bin/windows/contrib/4.0/crossmeta_1.16.1.zip'
Content type 'application/zip' length 2921909 bytes (2.8 MB)
downloaded 2.8 MB

package ‘crossmeta’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\Michael\AppData\Local\Temp\RtmpAlk411\downloaded_packages
Old packages: 'rtracklayer'
Update all/some/none? [a/s/n]: 
a

  There is a binary version available but the source version is later:
            binary source needs_compilation
rtracklayer 1.49.5 1.50.0              TRUE

  Binaries will be installed
trying URL 'https://bioconductor.org/packages/3.12/bioc/bin/windows/contrib/4.0/rtracklayer_1.49.5.zip'
Content type 'application/zip' length 2929936 bytes (2.8 MB)
downloaded 2.8 MB

package ‘rtracklayer’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\Michael\AppData\Local\Temp\RtmpAlk411\downloaded_packages
ADD REPLY
0
Entering edit mode

Please try the latest dev version from github and let me know if the issue persists: install.packages('remotes'); remotes::install_github('alexvpickering/crossmeta'). I have also uploaded the saved esets here.

ADD REPLY
0
Entering edit mode

Alex thank you for the reply. I 've installed the dev version (1.17.14). I downloaded the .rds files and put them in the appropriate folders and the issue resolved. The esets are created successfully. What are the .rds files? The .cel files are not enough? I see that the problem was that the .rds files were not created.

ADD REPLY
0
Entering edit mode

THE .rds files are a binary R file format that is being used in this case to persist the loaded ExpressionSet's to disk for subsequent calls to load_raw. I am not able to reproduce the issue you have but my guess is that it is related to networking (SSL). I would delete the existing GSE* folders and re-run the commands incase of a incompletely downloaded file. You could also try setting options(timeout=120) to allow longer for downloads or options("download.file.method.GEOquery" = method) where method is one of the method argument options from ?download.file. If that doesn't fix the issue I would try to run it in another environment (e.g. an AWS EC2 instance). You could also try the above with just one gse_name at a time in order to figure out if it is a particular series or all of them that is causing the issue.

ADD REPLY
0
Entering edit mode

When I delete the existing GSE folders and re-run the commands, I get this error:

https://ftp.ncbi.nlm.nih.gov/geo/series/GSEnnn/GSE88/suppl/
No supplemental files found.
Check URL manually if in doubt
https://ftp.ncbi.nlm.nih.gov/geo/series/GSEnnn/GSE88/suppl/
https://ftp.ncbi.nlm.nih.gov/geo/series/GSEnnn/GSE89/suppl/
No supplemental files found.
Check URL manually if in doubt
https://ftp.ncbi.nlm.nih.gov/geo/series/GSEnnn/GSE89/suppl/
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE3nnn/GSE3167/suppl/
No supplemental files found.
Check URL manually if in doubt
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE3nnn/GSE3167/suppl/

I also tried options("download.file.method.GEOquery" = method) using "internal", "wininet", "libcurl", "wget" and "curl" with no success. It seems that now (that I deleted the files) I have this kind of problem: https://www.biostars.org/p/451168/ https://www.biostars.org/p/438641/. I tried these on RStudio cloud and all worked fine. So, there is an issue with download.file on Windows.

I would like to mention that get_raw() function gives the above mentioned error, but when I use GEOquery package trying URL https://ftp.ncbi.nlm.nih.gov/geo/series/GSEnnn/GSE88/suppl//GSE88_RAW.tar?tool=geoquery the .tar files are downloaded normally.

ADD REPLY

Login before adding your answer.

Traffic: 406 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6