Skip to content

[Bioc-devel] orthogene: evolving dependencies

5 messages · Brian Schilder, Hervé Pagès

#
Hello everyone, 

I?m the developer of orthogene <https://github.com/neurogenomics/orthogene>, a package for inter-species gene mapping.

Despite orthogene passing all CRAN and Bioc checks on GitHub Actions <https://github.com/neurogenomics/orthogene/actions/runs/2079508299> (including when using the official Bioc devel Docker container <https://github.com/neurogenomics/orthogene/runs/5794025048?check_suite_focus=true> with Bioc 3.15 and R 4.2), it is consistently failing on Bioc?s VMs <http://bioconductor.org/checkResults/devel/bioc-LATEST/orthogene/>. Most if not all of these errors seem to be due to corrupted .rda files from babelgene (a central dependency of orthogene):
Error in `load(filename)`: bad restore file magic number (file may be corrupted) -- no data loaded
The developer of babelgene <https://github.com/igordot/babelgene/> has recently been making quite a few changes/updates to their package. They last submitted an update to CRAN on March 30th 2022 <https://cran.r-project.org/web/packages/babelgene/index.html>. Hopefully these will be complete soon so I can make any necessary adjustments to orthogene. Still, I?m not sure why I?ve been unable to replicate the errors seen on Bioc?s VMs over the past several weeks.

In addition, I just received a message that the old version of orthogene on Bioc 3.14 is now failing <https://master.bioconductor.org/checkResults/3.14/bioc-LATEST/orthogene/nebbiolo2-checksrc.html> for the first time because of these changes. I hadn?t specified a version of babelgene in 3.14 because I designed my unit tests to pass after slight changes (e.g. varying numbers of mapped orthologs between mouse and human) but not failures (e.g. corrupted .rda files).

So my questions are two-fold:
Why am I unable to replicate the errors seen on Bioc?s VMs on my local machine (both within a Bioc 3.15 Docker container and outside of it) or on GHA (both within a Bioc 3.15 Docker container and outside of it).
Since Bioc 3.14 is now frozen, how can I prevent orthogene from?failing?Bioc checks? <https://master.bioconductor.org/checkResults/3.14/bioc-LATEST/orthogene/nebbiolo2-checksrc.html>failing <https://master.bioconductor.org/checkResults/3.14/bioc-LATEST/orthogene/nebbiolo2-checksrc.html> Bioc checks due to the changes to babelgene?

Many thanks in advance, 
Brian

___________
Brian Schilder
PhD Candidate
UK Dementia Research Institute at Imperial College London
Faculty of Medicine, Department of Brain Sciences, Neurogenomics Lab
Profile | bit.ly/imperial_profile <https://bit.ly/imperial_profile>
LinkedIn | linkedin.com/in/brian-schilder <https://www.linkedin.com/in/brian-schilder/>
Twitter | twitter.com/BMSchilder <http://www.twitter.com/BMSchilder>
Lab | neurogenomics.co.uk <http://neurogenomics.co.uk/>
UK DRI | www.ukdri.ac.uk <http://www.ukdri.ac.uk/>
#
Hi Brian,

Let's start by taking care of orthogene's failure in BioC 3.14 (this is 
orthogene 1.0.0):

https://bioconductor.org/checkResults/3.14/bioc-LATEST/orthogene/

The error we see there is different from what we see in devel for 
orthogene 1.1.4. In release the tests in 
'test-map_orthologs_babelgene.R' fail at line 18. I can reproduce this 
on my laptop with:

 ??? library(testthat)

 ??? library(orthogene)

 ??? data("exp_mouse")

 ??? #### mouse ==> human ####
 ??? gene_map1 <- orthogene:::map_orthologs_babelgene(
 ??????? genes = rownames(exp_mouse),
 ??????? input_species = "mouse",
 ??????? output_species = "human"
 ??? )
 ??? testthat::expect_gte(nrow(gene_map1), 13000)

 ??? #### human ==> mouse ####
 ??? gene_map2 <- orthogene:::map_orthologs_babelgene(
 ??????? genes = gene_map1$ortholog_gene,
 ??????? input_species = "human",
 ??????? output_species = "mouse"
 ??? )
 ??? testthat::expect_gte(nrow(gene_map2), 13000)

This last line produces:

 ??? Error: nrow(gene_map2) is not more than 13000. Difference: -1.3e+04

See my sessionInfo() below.

Best,

H.

 > sessionInfo()
R version 4.1.1 (2021-08-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 21.10

Matrix products: default
BLAS:?? /home/hpages/R/R-4.1.1/lib/libRblas.so
LAPACK: /home/hpages/R/R-4.1.1/lib/libRlapack.so

locale:
 ?[1] LC_CTYPE=en_US.UTF-8?????? LC_NUMERIC=C
 ?[3] LC_TIME=en_GB????????????? LC_COLLATE=en_US.UTF-8
 ?[5] LC_MONETARY=en_US.UTF-8??? LC_MESSAGES=en_US.UTF-8
 ?[7] LC_PAPER=en_US.UTF-8?????? LC_NAME=C
 ?[9] LC_ADDRESS=C?????????????? LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats???? graphics? grDevices utils???? datasets? methods base

other attached packages:
[1] orthogene_1.0.0 testthat_3.1.3

loaded via a namespace (and not attached):
 ?[1] tidyselect_1.1.2????????? purrr_0.3.4
 ?[3] lattice_0.20-45?????????? carData_3.0-5
 ?[5] colorspace_2.0-3????????? gprofiler2_0.2.1
 ?[7] vctrs_0.4.0?????????????? generics_0.1.2
 ?[9] htmltools_0.5.2?????????? viridisLite_0.4.0
[11] utf8_1.2.2??????????????? plotly_4.10.0
[13] rlang_1.0.2?????????????? ggpubr_0.4.0
[15] pillar_1.7.0????????????? glue_1.6.2
[17] DBI_1.1.2???????????????? GenomeInfoDbData_1.2.7
[19] lifecycle_1.0.1?????????? munsell_0.5.0
[21] ggsignif_0.6.3??????????? gtable_0.3.0
[23] htmlwidgets_1.5.4???????? fastmap_1.1.0
[25] parallel_4.1.1??????????? fansi_1.0.3
[27] broom_0.7.12????????????? scales_1.1.1
[29] backports_1.4.1?????????? jsonlite_1.8.0
[31] abind_1.4-5?????????????? brio_1.1.3
[33] babelgene_22.3??????????? ggplot2_3.3.5
[35] digest_0.6.29???????????? rstatix_0.7.0
[37] dplyr_1.0.8?????????????? grid_4.1.1
[39] cli_3.2.0???????????????? tools_4.1.1
[41] magrittr_2.0.3??????????? patchwork_1.1.1
[43] lazyeval_0.2.2??????????? tibble_3.1.6
[45] crayon_1.5.1????????????? tidyr_1.2.0
[47] car_3.0-12??????????????? pkgconfig_2.0.3
[49] ellipsis_0.3.2??????????? Matrix_1.4-1
[51] data.table_1.14.2???????? homologene_1.4.68.19.3.27
[53] assertthat_0.2.1????????? httr_1.4.2
[55] R6_2.5.1????????????????? compiler_4.1.1
On 04/04/2022 10:28, Brian Schilder wrote:

  
    
1 day later
#
Hi Herve, 

Thanks for checking this. I?ve managed to go through and fix the issues on Bioc 3.14 (now orthogene 1.0.1). However, the larger question is at hand is: after the Bioc 3.14 release is frozen, how do I prevent this version of orthogene from breaking when there?s changes to its dependencies that I?m unable to control?

I?ll try tackling the errors on 3.15 next.

Best,
Brian
#
Hi Brian,
On 06/04/2022 06:25, Brian Schilder wrote:

            
Great, thanks!
Unfortunately you can't prevent that. The only way you could maybe try 
to solve this is by convincing the author of the breaking change to 
revert the change.
Sounds good.

Cheers,

H.
2 days later
#
Thanks, Herve, that all makes sense to me. 

I?ve contacted the babelgene <https://github.com/igordot/babelgene/issues/2> author and managed to resolve the issues in a way that doesn?t require me to download data via piggyback anymore. piggyback <https://github.com/ropensci/piggyback/issues/49> (in the current CRAN release) required a valid GitHub Personal Access Token <https://docs.github.com/en/enterprise-server at 3.4/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token> to be stored as a global variable. Thus why I was unable to replicate the errors locally or on GitHub Actions, but they were appearing on Bioc?s VMs.

Fingers crossed that these updates I pushed on Friday all pass before the freeze on Monday!

Thanks again for all your help, 
Brian