# 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")
    #> # Source:   table<gene_hg38> [?? x 2]
    #> # Database: DuckDB v1.3.2 [biocbuild@Darwin 22.6.0:R 4.5.1//Users/biocbuild/Library/Caches/org.R-project.R/R/BiocFileCache/d632252c248f_d632252c248f]
    #>    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()
    #> * [18:54:14][info] disconnecting all registered connections

Database connections that are not closed correctly trigger warning messages.

# Session information

    sessionInfo()
    #> R version 4.5.1 Patched (2025-06-14 r88325)
    #> Platform: aarch64-apple-darwin20
    #> Running under: macOS Ventura 13.7.5
    #>
    #> Matrix products: default
    #> BLAS:   /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRblas.0.dylib
    #> LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
    #>
    #> locale:
    #> [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
    #>
    #> time zone: America/New_York
    #> tzcode source: internal
    #>
    #> attached base packages:
    #> [1] stats4    stats     graphics  grDevices utils     datasets  methods
    #> [8] base
    #>
    #> other attached packages:
    #>  [1] ensembldb_2.32.0        AnnotationFilter_1.32.0 GenomicFeatures_1.60.0
    #>  [4] AnnotationDbi_1.70.0    Biobase_2.68.0          GenomicRanges_1.60.0
    #>  [7] GenomeInfoDb_1.44.1     IRanges_2.42.0          S4Vectors_0.46.0
    #> [10] gghalves_0.1.4          ggplot2_3.5.2           ggdist_3.3.3
    #> [13] tidyr_1.3.1             ExperimentHub_2.16.1    AnnotationHub_3.16.1
    #> [16] BiocFileCache_2.16.1    dbplyr_2.5.0            BiocGenerics_0.54.0
    #> [19] generics_0.1.4          AlphaMissenseR_1.4.2    dplyr_1.1.4
    #>
    #> loaded via a namespace (and not attached):
    #>  [1] DBI_1.2.3                   bitops_1.0-9
    #>  [3] rlang_1.1.6                 magrittr_2.0.3
    #>  [5] matrixStats_1.5.0           compiler_4.5.1
    #>  [7] RSQLite_2.4.2               png_0.1-8
    #>  [9] vctrs_0.6.5                 ProtGenerics_1.40.0
    #> [11] pkgconfig_2.0.3             crayon_1.5.3
    #> [13] fastmap_1.2.0               XVector_0.48.0
    #> [15] labeling_0.4.3              utf8_1.2.6
    #> [17] Rsamtools_2.24.0            promises_1.3.3
    #> [19] rmarkdown_2.29              UCSC.utils_1.4.0
    #> [21] purrr_1.1.0                 bit_4.6.0
    #> [23] xfun_0.52                   cachem_1.1.0
    #> [25] jsonlite_2.0.0              blob_1.2.4
    #> [27] later_1.4.2                 DelayedArray_0.34.1
    #> [29] BiocParallel_1.42.1         parallel_4.5.1
    #> [31] spdl_0.0.5                  R6_2.6.1
    #> [33] bslib_0.9.0                 RColorBrewer_1.1-3
    #> [35] rtracklayer_1.68.0          jquerylib_0.1.4
    #> [37] SummarizedExperiment_1.38.1 Rcpp_1.1.0
    #> [39] knitr_1.50                  BiocBaseUtils_1.10.0
    #> [41] Matrix_1.7-3                httpuv_1.6.16
    #> [43] tidyselect_1.2.1            abind_1.4-8
    #> [45] dichromat_2.0-0.1           yaml_2.3.10
    #> [47] codetools_0.2-20            curl_6.4.0
    #> [49] rjsoncons_1.3.2             lattice_0.22-7
    #> [51] tibble_3.3.0                shiny_1.11.1
    #> [53] bio3d_2.4-5                 withr_3.0.2
    #> [55] KEGGREST_1.48.1             evaluate_1.0.4
    #> [57] r3dmol_0.1.2                Biostrings_2.76.0
    #> [59] pillar_1.11.0               BiocManager_1.30.26
    #> [61] filelock_1.0.3              MatrixGenerics_1.20.0
    #> [63] whisker_0.4.1               distributional_0.5.0
    #> [65] RCurl_1.98-1.17             BiocVersion_3.21.1
    #> [67] scales_1.4.0                xtable_1.8-4
    #> [69] glue_1.8.0                  lazyeval_0.2.2
    #> [71] tools_4.5.1                 BiocIO_1.18.0
    #> [73] GenomicAlignments_1.44.0    XML_3.99-0.18
    #> [75] grid_4.5.1                  colorspace_2.1-1
    #> [77] GenomeInfoDbData_1.2.14     RcppSpdlog_0.0.22
    #> [79] duckdb_1.3.2                restfulr_0.0.16
    #> [81] cli_3.6.5                   rappdirs_0.3.3
    #> [83] shiny.gosling_1.4.0         S4Arrays_1.8.1
    #> [85] viridisLite_0.4.2           gtable_0.3.6
    #> [87] sass_0.4.10                 digest_0.6.37
    #> [89] SparseArray_1.8.1           rjson_0.2.23
    #> [91] htmlwidgets_1.6.4           farver_2.1.2
    #> [93] memoise_2.0.1               htmltools_0.5.8.1
    #> [95] lifecycle_1.0.4             httr_1.4.7
    #> [97] mime_0.13                   bit64_4.6.0-1