# E. Issues & Solutions

Original version: 16 October, 2023

    library(AlphaMissenseR)

# Updating duckdb to 0.9.1

The R duckdb client version 0.9.1 cannot read databases created with previous versions of the package. The duckdb error message indicates

> > am_available() Error in h(simpleError(msg, call)) : error in evaluating the argument ‘drv’ in selecting a method for function ‘dbConnect’: rapi_startup: Failed to open database: IO Error: Trying to read a database file with version number 51, but we can only read version 64.

> The database file was created with DuckDB version v0.8.0 or v0.8.1.

> The storage of DuckDB is not yet stable; newer versions of DuckDB cannot read old database files and vice versa. The storage will be stabilized when version 1.0 releases.

> For now, we recommend that you load the database file in a supported version of DuckDB, and use the EXPORT DATABASE command followed by IMPORT DATABASE on the current version of DuckDB.

> See the storage page for more information: https://duckdb.org/internals/storage

but in practice the most straight-forward solution is to remove existing AlphaMissenseR data resources and ‘start again’.

The following attempts to identify AlphaMissenseR data resources cached locally

    am_rids <-
        bfcinfo() |>
        dplyr::filter(
            grepl("zenodo", rname) |
            startsWith(rname, "AlphaMissense_")
        ) |>
        pull(rid)

After verifying that these resources have not been created outside AlphaMissenseR, remove them.

    BiocFileCache::bfcremove(rids = am_rids)

Commands such as `am_available()` should report no files cached. The command

    am_data("gene_hg38")
    #> * [03:43:38][info] retrieving file name 'AlphaMissense_gene_hg38.tsv.gz' (247.7 Kb)
    #> * [03:43:38][info] data licensed under 'CC-BY-4.0'
    #> * [03:43:38][info] downloading or finding local file
    #> adding rname 'AlphaMissense_gene_hg38.tsv.gz'
    #>
    #> * [03:43:39][info] creating database table 'gene_hg38'
    #> * [03:43:39][info] disconnecting all registered connections
    #> # Source:   table<gene_hg38> [?? x 2]
    #> # Database: DuckDB 1.4.2 [unknown@Linux 6.11.0-1018-azure:R 4.5.2//github/home/.cache/R/BiocFileCache/198b1be6f7c1_198b1be6f7c1]
    #>    transcript_id      mean_am_pathogenicity
    #>    <chr>                              <dbl>
    #>  1 ENST00000000233.10                 0.742
    #>  2 ENST00000000412.8                  0.378
    #>  3 ENST00000001008.6                  0.422
    #>  4 ENST00000001146.6                  0.467
    #>  5 ENST00000002125.9                  0.351
    #>  6 ENST00000002165.11                 0.406
    #>  7 ENST00000002501.10                 0.320
    #>  8 ENST00000002596.6                  0.471
    #>  9 ENST00000002829.8                  0.524
    #> 10 ENST00000003084.10                 0.405
    #> # ℹ more rows

will re-download the file and insert it into a database that functions with duckdb 0.9.1.

# Resource temporarily unavailable

Trying to access a data resource with `am_data()` may sometimes result in a DuckDB errors about “Resource unavailable”.

    > am_data("hg38")

    * [10:05:09][warning] error in evaluating the argument 'drv' in selecting a
        method for function 'dbConnect': rapi_startup: Failed to open database:
        IO Error: Could not set lock on file
        ".../Caches/org.R-project.R/R/BiocFileCache/1ec5157ddaa2_1ec5157ddaa2":
        Resource unavailable

    Error in value[[3L]](cond) :
        failed to connect to DuckDB database, see 'Issues & Solutions' vignette

This occures when the database is being used by an independent R process. The solution is to identify the process and disconnect from the database using, e.g., `db_disconnect_all()`.

# Finally

Remember to disconnect and shutdown all managed DuckDB connections.

    db_disconnect_all()
    #> * [03:43:40][info] disconnecting all registered connections

Database connections that are not closed correctly trigger warning messages.

# Session information

    sessionInfo()
    #> R version 4.5.2 (2025-10-31)
    #> Platform: x86_64-pc-linux-gnu
    #> Running under: Ubuntu 24.04.3 LTS
    #>
    #> Matrix products: default
    #> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
    #> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
    #>
    #> locale:
    #>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
    #>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C
    #>  [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
    #>
    #> time zone: Etc/UTC
    #> tzcode source: system (glibc)
    #>
    #> attached base packages:
    #> [1] stats4    stats     graphics  grDevices utils     datasets  methods
    #> [8] base
    #>
    #> other attached packages:
    #>  [1] ensembldb_2.35.0        AnnotationFilter_1.35.0 GenomicFeatures_1.63.1
    #>  [4] AnnotationDbi_1.73.0    Biobase_2.71.0          GenomicRanges_1.63.0
    #>  [7] Seqinfo_1.1.0           IRanges_2.45.0          S4Vectors_0.49.0
    #> [10] ggplot2_4.0.1           ggdist_3.3.3            tidyr_1.3.1
    #> [13] ExperimentHub_3.1.0     AnnotationHub_4.1.0     BiocFileCache_3.1.0
    #> [16] dbplyr_2.5.1            BiocGenerics_0.57.0     generics_0.1.4
    #> [19] AlphaMissenseR_1.7.1    dplyr_1.1.4             rmarkdown_2.30
    #>
    #> loaded via a namespace (and not attached):
    #>   [1] DBI_1.2.3                   bitops_1.0-9
    #>   [3] httr2_1.2.1                 rlang_1.1.6
    #>   [5] magrittr_2.0.4              otel_0.2.0
    #>   [7] matrixStats_1.5.0           compiler_4.5.2
    #>   [9] RSQLite_2.4.4               png_0.1-8
    #>  [11] vctrs_0.6.5                 ProtGenerics_1.43.0
    #>  [13] pkgconfig_2.0.3             crayon_1.5.3
    #>  [15] fastmap_1.2.0               XVector_0.51.0
    #>  [17] labeling_0.4.3              utf8_1.2.6
    #>  [19] Rsamtools_2.27.0            promises_1.5.0
    #>  [21] UCSC.utils_1.7.0            purrr_1.2.0
    #>  [23] bit_4.6.0                   xfun_0.54
    #>  [25] cachem_1.1.0                cigarillo_1.1.0
    #>  [27] GenomeInfoDb_1.47.1         jsonlite_2.0.0
    #>  [29] blob_1.2.4                  later_1.4.4
    #>  [31] DelayedArray_0.37.0         BiocParallel_1.45.0
    #>  [33] parallel_4.5.2              spdl_0.0.5
    #>  [35] R6_2.6.1                    bslib_0.9.0
    #>  [37] RColorBrewer_1.1-3          rtracklayer_1.69.1
    #>  [39] jquerylib_0.1.4             SummarizedExperiment_1.41.0
    #>  [41] Rcpp_1.1.0                  knitr_1.50
    #>  [43] BiocBaseUtils_1.13.0        Matrix_1.7-4
    #>  [45] httpuv_1.6.16               tidyselect_1.2.1
    #>  [47] abind_1.4-8                 yaml_2.3.10
    #>  [49] codetools_0.2-20            curl_7.0.0
    #>  [51] rjsoncons_1.3.2             lattice_0.22-7
    #>  [53] tibble_3.3.0                shiny_1.11.1
    #>  [55] bio3d_2.4-5                 withr_3.0.2
    #>  [57] KEGGREST_1.51.1             S7_0.2.1
    #>  [59] evaluate_1.0.5              r3dmol_0.1.2
    #>  [61] Biostrings_2.79.2           pillar_1.11.1
    #>  [63] BiocManager_1.30.27         filelock_1.0.3
    #>  [65] MatrixGenerics_1.23.0       whisker_0.4.1
    #>  [67] distributional_0.5.0        RCurl_1.98-1.17
    #>  [69] BiocVersion_3.23.1          scales_1.4.0
    #>  [71] xtable_1.8-4                glue_1.8.0
    #>  [73] lazyeval_0.2.2              maketools_1.3.2
    #>  [75] tools_4.5.2                 BiocIO_1.21.0
    #>  [77] sys_3.4.3                   GenomicAlignments_1.47.0
    #>  [79] buildtools_1.0.0            XML_3.99-0.20
    #>  [81] grid_4.5.2                  colorspace_2.1-2
    #>  [83] RcppSpdlog_0.0.23           duckdb_1.4.2
    #>  [85] restfulr_0.0.16             cli_3.6.5
    #>  [87] rappdirs_0.3.3              shiny.gosling_1.5.0
    #>  [89] S4Arrays_1.11.1             viridisLite_0.4.2
    #>  [91] gtable_0.3.6                sass_0.4.10
    #>  [93] digest_0.6.39               SparseArray_1.11.6
    #>  [95] rjson_0.2.23                htmlwidgets_1.6.4
    #>  [97] farver_2.1.2                memoise_2.0.1
    #>  [99] htmltools_0.5.8.1           lifecycle_1.0.4
    #> [101] httr_1.4.7                  mime_0.13
    #> [103] bit64_4.6.0-1