vignettes/bedbaser.Rmd
bedbaser.Rmdbedbaser is an R API client for BEDbase that provides access to the bedhost API and includes convenience functions, such as to create GRanges and GRangesList objects.
Install bedbaser using BiocManager.
if (!"BiocManager" %in% rownames(installed.packages())) {
install.packages("BiocManager")
}
BiocManager::install("bedbaser")Load the package and create a BEDbase instance, optionally setting
the cache to cache_path. If cache_path is not
set, bedbaser
will choose the default location.
## 663721 BED files available.
bedbaser
can use the same cache as geniml’s BBClient by setting
the cache_path to the same location. It will create the
following structure:
cache_path
bedfiles
a/f/afile.bed.gz
bedsets
a/s/aset.txt
bedbaser
includes convenience functions prefixed with bb_ to facilitate
finding BED files, exploring their metadata, downloading files, and
creating GRanges objects.
Use bbs_stats() to display the total available BED
files, BEDsets, and genomes. Set detailed to
TRUE to display the type of BED formats and genomes
available.
Use bb_list_beds() and bb_list_bedsets() to
browse available resources in BEDbase. Both functions display the id and
names of BED files and BEDsets. An id can be used to access a specific
resource.
bb_list_beds(bedbase)## # A tibble: 1,000 × 51
## name genome_alias genome_digest bed_compliance data_format compliant_columns
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Plas… hg19 GOIHeGSorDrb… bed6+4 encode_nar… 6
## 2 ENCF… hg38 Ba88PY52_qei… bed5+1 bed_like_rs 5
## 3 ENCF… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## 4 ENCF… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## 5 ENCF… hg38 Ba88PY52_qei… bed6+3 encode_bro… 6
## 6 ENCF… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## 7 ENCF… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## 8 ENCF… hg38 Ba88PY52_qei… bed4+0 ucsc_bed 4
## 9 ENCF… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## 10 ENCF… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## # ℹ 990 more rows
## # ℹ 45 more variables: non_compliant_columns <chr>, id <chr>,
## # description <chr>, submission_date <chr>, last_update_date <chr>,
## # is_universe <chr>, license_id <chr>, annotation.organism <chr>,
## # annotation.species_id <chr>, annotation.genotype <chr>,
## # annotation.phenotype <chr>, annotation.description <chr>,
## # annotation.cell_type <chr>, annotation.cell_line <chr>, …
bb_list_bedsets(bedbase)## # A tibble: 1,000 × 9
## id name md5sum submission_date last_update_date description bedfile_count
## <chr> <chr> <chr> <chr> <chr> <chr> <int>
## 1 gse2… gse2… cae52… 2025-06-03T01:… 2025-06-03T01:4… "Data from… 6
## 2 gse2… gse2… dbbca… 2025-06-03T01:… 2025-06-03T01:5… "Data from… 6
## 3 gse1… gse1… f38b1… 2025-06-03T00:… 2025-06-03T00:5… "Data from… 2
## 4 gse2… gse2… d7b0d… 2025-06-03T00:… 2025-06-03T00:5… "Data from… 3
## 5 gse1… gse1… fbc7c… 2026-02-11T10:… 2026-02-11T10:3… "Data from… 1
## 6 gse6… gse6… 005f5… 2025-06-03T00:… 2025-06-03T00:5… "Data from… 19
## 7 gse2… gse2… 51ff1… 2025-06-03T00:… 2025-06-03T00:5… "Data from… 3
## 8 gse9… gse9… d2a4f… 2025-06-03T19:… 2025-06-03T19:1… "Data from… 4
## 9 gse9… gse9… 745f9… 2025-06-03T00:… 2025-06-03T00:5… "Data from… 3
## 10 gse1… gse1… 7b517… 2026-02-11T10:… 2026-02-11T10:3… "Data from… 5
## # ℹ 990 more rows
## # ℹ 2 more variables: author <chr>, source <chr>
Use bb_metadata() to learn more about a BED or BEDset
associated with an id.
ex_bed <- bb_example(bedbase, "bed")
md <- bb_metadata(bedbase, ex_bed$id)
head(md)## $name
## [1] "ENCFF370XZK"
##
## $genome_alias
## [1] "hg38"
##
## $genome_digest
## [1] "Ba88PY52_qeifhJrgUXyin6UITdXNsg3"
##
## $bed_compliance
## [1] "bed5+1"
##
## $data_format
## [1] "bed_like_rs"
##
## $compliant_columns
## [1] 5
Use bb_beds_in_bedset() to display the id of BEDs in a
BEDset.
bb_beds_in_bedset(bedbase, "excluderanges")## # A tibble: 81 × 34
## name genome_alias genome_digest bed_compliance data_format compliant_columns
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 mm10… mm10 hW3Ba5zoufl3… bed4+1 bed_like 4
## 2 hg38… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## 3 T2T.… hg19 GOIHeGSorDrb… bed4+8 bed_like 4
## 4 TAIR… hg18 ieWVCws5MC2Q… bed4+2 bed_like 4
## 5 mm9.… mm9 4mvptys3ckGg… bed4+1 bed_like 4
## 6 T2T.… hg38 Ba88PY52_qei… bed4+1 bed_like 4
## 7 danR… hg18 ieWVCws5MC2Q… bed4+1 bed_like 4
## 8 mm39… mm39 -e70JAQq4NJD… bed4+7 bed_like 4
## 9 mm9.… mm9 4mvptys3ckGg… bed4+4 bed_like 4
## 10 hg19… hg19 GOIHeGSorDrb… bed4+7 bed_like 4
## # ℹ 71 more rows
## # ℹ 28 more variables: non_compliant_columns <chr>, id <chr>,
## # description <chr>, submission_date <chr>, last_update_date <chr>,
## # is_universe <chr>, license_id <chr>, annotation.species_name <chr>,
## # annotation.species_id <chr>, annotation.genotype <chr>,
## # annotation.phenotype <chr>, annotation.description <chr>,
## # annotation.cell_type <chr>, annotation.cell_line <chr>, …
Search for BED files by keywords. bb_bed_text_search()
returns all BED files scored against a keyword query.
bb_bed_text_search(bedbase, "cancer", limit = 10)## # A tibble: 10 × 43
## id payload.id payload.name payload.description payload.cell_line
## <chr> <chr> <chr> <chr> <chr>
## 1 c1ec0ee9b824b3… c1ec0ee9b… VCaP_H3K4me… "Chromatin IP agai… "Vertebral Cance…
## 2 f0f66be64b879d… f0f66be64… WT_T47D_HiC "" "T47D-MTVL"
## 3 5fbba3a301e929… 5fbba3a30… WT_T47D_HiC "" "T47D-MTVL"
## 4 6247ec77ee9a4f… 6247ec77e… PAX 139 "" ""
## 5 0815d601135466… 0815d6011… PAX 217 "" ""
## 6 d1d29207cdb6a6… d1d29207c… HeLa_1k_1D_… "" "HeLa"
## 7 6a508f798160d9… 6a508f798… PAX 265 "" ""
## 8 4e870164bcc0a4… 4e870164b… HeLa_1k_1D_… "" "HeLa"
## 9 57291034c3664d… 57291034c… 786-O H3K27… "" "786-O"
## 10 7d929f0062483c… 7d929f006… HeLa_1k_1D_… "" "HeLa"
## # ℹ 38 more variables: payload.cell_type <chr>, payload.tissue <chr>,
## # payload.target <chr>, payload.treatment <chr>, payload.assay <chr>,
## # payload.genome_alias <chr>, payload.species_name <chr>, score <chr>,
## # metadata.name <chr>, metadata.genome_alias <chr>,
## # metadata.genome_digest <chr>, metadata.bed_compliance <chr>,
## # metadata.data_format <chr>, metadata.compliant_columns <chr>,
## # metadata.non_compliant_columns <chr>, metadata.id <chr>, …
Create a GRanges object with a BED id with
bb_to_granges, which downloads and imports a BED file using
rtracklayer.
ex_bed <- bb_example(bedbase, "bed")
# Allow bedbaser to assign column names and types
bb_to_granges(bedbase, ex_bed$id, quietly = FALSE)## Assigning column names and types.
## 'getOption("repos")' replaces Bioconductor standard repositories, see
## 'help("repositories", package = "BiocManager")' for details.
## Replacement repositories:
## CRAN: https://p3m.dev/cran/__linux__/noble/latest
## GRanges object with 29104 ranges and 3 metadata columns:
## seqnames ranges strand | name score
## <Rle> <IRanges> <Rle> | <character> <numeric>
## [1] chr1 778582-778929 * | Stringent(qval) 778797
## [2] chr1 827207-827302 * | Relaxed 827301
## [3] chr1 827419-827742 * | Stringent(qval) 827720
## [4] chr1 904667-904855 * | Stringent(qval) 904812
## [5] chr1 923746-923944 * | Stringent(qval) 923922
## ... ... ... ... . ... ...
## [29100] chrX 155216250-155216526 * | Stringent(qval) 155216459
## [29101] chrX 155612500-155612630 * | Relaxed 155612585
## [29102] chrX 155612883-155613051 * | Relaxed 155613039
## [29103] chrX 155767493-155767771 * | Relaxed 155767753
## [29104] chrX 155881161-155881411 * | Stringent(qval) 155881357
## V6
## <numeric>
## [1] 778612
## [2] 827207
## [3] 827505
## [4] 904704
## [5] 923747
## ... ...
## [29100] 155216280
## [29101] 155612570
## [29102] 155612942
## [29103] 155767502
## [29104] 155881197
## -------
## seqinfo: 711 sequences (1 circular) from hg38 genome
For BEDX+Y formats, a named list with column types may be passed
through extra_cols if the column name and type are known.
Otherwise, bb_to_granges guesses the column types and
assigns column names.
# Manually assign column name and type using `extra_cols`
bb_to_granges(bedbase, ex_bed$id, extra_cols = c("column_name" = "character"))bb_to_granges automatically assigns the column names and
types for broad peak and narrow peak files.
bed_id <- "bbad85f21962bb8d972444f7f9a3a932"
md <- bb_metadata(bedbase, bed_id)
head(md)## $name
## [1] "PM_137_NPC_CTCF_ChIP"
##
## $genome_alias
## [1] "hg38"
##
## $genome_digest
## [1] "Ba88PY52_qeifhJrgUXyin6UITdXNsg3"
##
## $bed_compliance
## [1] "bed6+4"
##
## $data_format
## [1] "encode_narrowpeak_rs"
##
## $compliant_columns
## [1] 6
bb_to_granges(bedbase, bed_id)## GRanges object with 26210 ranges and 6 metadata columns:
## seqnames ranges strand | name score
## <Rle> <IRanges> <Rle> | <character> <numeric>
## [1] chr1 869762-870077 * | 111-11-DSP-NPC-CTCF-.. 587
## [2] chr1 904638-904908 * | 111-11-DSP-NPC-CTCF-.. 848
## [3] chr1 921139-921331 * | 111-11-DSP-NPC-CTCF-.. 177
## [4] chr1 939191-939364 * | 111-11-DSP-NPC-CTCF-.. 139
## [5] chr1 976105-976282 * | 111-11-DSP-NPC-CTCF-.. 185
## ... ... ... ... . ... ...
## [26206] chrY 18445992-18446211 * | 111-11-DSP-NPC-CTCF-.. 203
## [26207] chrY 18608331-18608547 * | 111-11-DSP-NPC-CTCF-.. 203
## [26208] chrY 18669820-18670062 * | 111-11-DSP-NPC-CTCF-.. 244
## [26209] chrY 18997783-18997956 * | 111-11-DSP-NPC-CTCF-.. 191
## [26210] chrY 19433165-19433380 * | 111-11-DSP-NPC-CTCF-.. 275
## signalValue pValue qValue peak
## <numeric> <numeric> <numeric> <integer>
## [1] 20.94161 58.7971 54.9321 152
## [2] 30.90682 84.8282 80.3102 118
## [3] 9.62671 17.7065 14.8446 69
## [4] 8.10671 13.9033 11.1352 49
## [5] 9.26375 18.5796 15.6985 129
## ... ... ... ... ...
## [26206] 10.64005 20.3549 17.4328 106
## [26207] 8.00064 20.3991 17.4753 149
## [26208] 12.16006 24.4764 21.4585 119
## [26209] 8.97342 19.1163 16.2230 69
## [26210] 12.21130 27.5139 24.4211 89
## -------
## seqinfo: 711 sequences (1 circular) from hg38 genome
Create a GRangesList given a BEDset id with
bb_to_grangeslist.
bedset_id <- "lola_hg38_ucsc_features"
bb_to_grangeslist(bedbase, bedset_id)## GRangesList object of length 11:
## [[1]]
## GRanges object with 864 ranges and 0 metadata columns:
## seqnames ranges strand
## <Rle> <IRanges> <Rle>
## [1] chr1 690078-6272609 *
## [2] chr1 690078-2326424 *
## [3] chr1 771707-6806566 *
## [4] chr1 771707-3153758 *
## [5] chr1 805477-4942653 *
## ... ... ... ...
## [860] chrY 23762211-26011096 *
## [861] chrY 23762211-26011096 *
## [862] chrY 23774007-25910251 *
## [863] chrY 26011096-26174983 *
## [864] chrY 26312489-26653776 *
## -------
## seqinfo: 711 sequences (1 circular) from hg38 genome
##
## ...
## <10 more elements>
Because bedbaser uses the AnVIL Service class, it’s possible to access any endpoint of the BEDbase API.
show(bedbase)## service: bedbase
## host: api.bedbase.org
## tags(); use bedbase$<tab completion>:
## # A tibble: 55 × 3
## tag operation summary
## <chr> <chr> <chr>
## 1 base get_analysis_files_v1_files_get Index of standalon…
## 2 base get_assays_list_v1_assays_get Get available assa…
## 3 base get_bed_exports_v1_exports_get Index of published…
## 4 base get_bedbase_db_stats_v1_stats_get Get summary statis…
## 5 base get_detailed_stats_v1_detailed_stats_get Get detailed stati…
## 6 base get_detailed_usage_v1_detailed_usage_get Get detailed usage…
## 7 base get_genomes_list_v1_genomes_get Get available geno…
## 8 base redirect_to_download_v1_files__file_path__get Redirect To Downlo…
## 9 base service_info_v1_service_info_get GA4GH service info
## 10 bed analyze_reference_genome_v1_bed_analyze_genome_post Analyze reference …
## # ℹ 45 more rows
## tag values:
## base, bed, bedset, home, objects, search, NA
## schemas():
## AccessMethod, AccessURL, AnalysisFileListResult, AnalysisFileResult,
## BaseListResponse
## # ... with 49 more elements
For example, to access a BED file’s stats, access the endpoint with
$ and use httr to get the
result. show will display information about the
endpoint.
##
## Attaching package: 'httr'
## The following object is masked from 'package:Biobase':
##
## content
show(bedbase$get_bed_stats_v1_bed__bed_id__metadata_stats_get)## get_bed_stats_v1_bed__bed_id__metadata_stats_get
## Get stats for a single BED record
## Description:
## Example bed_id: bbad85f21962bb8d972444f7f9a3a932
##
## Parameters:
## bed_id (string)
## BED digest
id <- "bbad85f21962bb8d972444f7f9a3a932"
rsp <- bedbase$get_bed_stats_v1_bed__bed_id__metadata_stats_get(id)
content(rsp)## $number_of_regions
## [1] 26210
##
## $gc_content
## [1] 0.5
##
## $median_tss_dist
## [1] 31480
##
## $mean_region_width
## [1] 276.3
##
## $exon_frequency
## [1] 1358
##
## $exon_percentage
## [1] 0.0518
##
## $intron_frequency
## [1] 9390
##
## $intron_percentage
## [1] 0.3583
##
## $intergenic_percentage
## [1] 0.4441
##
## $intergenic_frequency
## [1] 11639
##
## $promotercore_frequency
## [1] 985
##
## $promotercore_percentage
## [1] 0.0376
##
## $fiveutr_frequency
## [1] 720
##
## $fiveutr_percentage
## [1] 0.0275
##
## $threeutr_frequency
## [1] 1074
##
## $threeutr_percentage
## [1] 0.041
##
## $promoterprox_frequency
## [1] 1044
##
## $promoterprox_percentage
## [1] 0.0398
##
## $distributions
## NULL
Given a BED id, we can use liftOver to convert one genomic coordinate system to another.
Install liftOver and rtracklayer then load the packages.
if (!"BiocManager" %in% rownames(installed.packages())) {
install.packages("BiocManager")
}
BiocManager::install(c("liftOver", "rtracklayer"))
library(liftOver)
library(rtracklayer)Create a GRanges object from a mouse
genome. Create a BEDbase Service instance. Use the instance to
create a GRanges object from the BEDbase id.
id <- "f2a5b06011706376560514c3f39648ea"
bedbase <- BEDbase()
gro <- bb_to_granges(bedbase, id)
gro## GRanges object with 132610 ranges and 2 metadata columns:
## seqnames ranges strand | name score
## <Rle> <IRanges> <Rle> | <character> <numeric>
## [1] chr1 3132268-3132768 + | chr1-21633 1
## [2] chr1 3185464-3185964 + | chr1-21634 1
## [3] chr1 3221560-3222060 + | chr1-6085 1
## [4] chr1 3476307-3476807 + | chr1-21635 1
## [5] chr1 3560226-3561000 + | chr1-4747 1
## ... ... ... ... . ... ...
## [132606] chrY 90737580-90739215 + | chrY-23 1
## [132607] chrY 90742758-90744732 + | chrY-35 1
## [132608] chrY 90810972-90814119 + | chrY-47 1
## [132609] chrY 90819248-90819748 + | chrY-131 1
## [132610] chrY 90828312-90828949 + | chrY-103 1
## -------
## seqinfo: 239 sequences (1 circular) from mm10 genome
Download the chain file from UCSC.
chain_url <- paste0(
"https://hgdownload.soe.ucsc.edu/goldenPath/mm10/liftOver/",
"mm10ToMm39.over.chain.gz"
)
tmpdir <- tempdir()
gz <- file.path(tmpdir, "mm10ToMm39.over.chain.gz")
download.file(chain_url, gz)
gunzip(gz, remove = FALSE)Import the chain, set the sequence levels style, and set the genome for the GRanges object.
ch <- import.chain(file.path(tmpdir, "mm10ToMm39.over.chain"))
seqlevelsStyle(gro) <- "UCSC"
gro39 <- liftOver(gro, ch)
gro39 <- unlist(gro39)
genome(gro39) <- "mm39"
gro39## GRanges object with 132675 ranges and 2 metadata columns:
## seqnames ranges strand | name score
## <Rle> <IRanges> <Rle> | <character> <numeric>
## [1] chr1 3202491-3202991 + | chr1-21633 1
## [2] chr1 3255687-3256187 + | chr1-21634 1
## [3] chr1 3291783-3292283 + | chr1-6085 1
## [4] chr1 3546530-3547030 + | chr1-21635 1
## [5] chr1 3630449-3631223 + | chr1-4747 1
## ... ... ... ... . ... ...
## [132671] chrY 90748849-90750484 + | chrY-23 1
## [132672] chrY 90754027-90756001 + | chrY-35 1
## [132673] chrY 90822241-90825388 + | chrY-47 1
## [132674] chrY 90830517-90831017 + | chrY-131 1
## [132675] chrY 90839581-90840218 + | chrY-103 1
## -------
## seqinfo: 21 sequences from mm39 genome; no seqlengths
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.4 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=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
##
## time zone: UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] httr_1.4.9
## [2] bedbaser_1.4.1
## [3] liftOver_1.36.0
## [4] Homo.sapiens_1.3.1
## [5] TxDb.Hsapiens.UCSC.hg19.knownGene_3.22.1
## [6] org.Hs.eg.db_3.23.1
## [7] GO.db_3.23.1
## [8] OrganismDbi_1.54.0
## [9] GenomicFeatures_1.64.0
## [10] AnnotationDbi_1.74.0
## [11] Biobase_2.72.0
## [12] GenomeInfoDb_1.48.0
## [13] gwascat_2.44.0
## [14] R.utils_2.13.0
## [15] R.oo_1.27.1
## [16] R.methodsS3_1.8.2
## [17] rtracklayer_1.72.0
## [18] GenomicRanges_1.64.0
## [19] Seqinfo_1.2.0
## [20] IRanges_2.46.0
## [21] S4Vectors_0.50.2
## [22] BiocGenerics_0.58.1
## [23] generics_0.1.4
## [24] BiocStyle_2.40.0
##
## loaded via a namespace (and not attached):
## [1] jsonlite_2.0.0 magrittr_2.0.5
## [3] rmarkdown_2.32 fs_2.1.0
## [5] BiocIO_1.22.0 ragg_1.5.2
## [7] vctrs_0.7.3 memoise_2.0.1
## [9] Rsamtools_2.28.0 RCurl_1.98-1.20
## [11] htmltools_0.5.9 S4Arrays_1.12.0
## [13] BiocBaseUtils_1.14.2 lambda.r_1.2.4
## [15] curl_8.0.0 SparseArray_1.12.2
## [17] sass_0.4.10 bslib_0.12.0
## [19] htmlwidgets_1.6.4 keyring_1.4.1
## [21] desc_1.4.3 httr2_1.3.0
## [23] futile.options_1.0.1 cachem_1.1.0
## [25] GenomicAlignments_1.48.0 mime_0.13
## [27] lifecycle_1.0.5 pkgconfig_2.0.3
## [29] Matrix_1.7-6 R6_2.6.1
## [31] fastmap_1.2.0 MatrixGenerics_1.24.0
## [33] shiny_1.14.0 digest_0.6.39
## [35] GCPtools_1.2.1 textshaping_1.0.5
## [37] RSQLite_3.53.3 filelock_1.0.3
## [39] abind_1.4-8 compiler_4.6.1
## [41] bit64_4.8.6 withr_3.0.3
## [43] BiocParallel_1.46.0 DBI_1.3.0
## [45] DelayedArray_0.38.2 rjson_0.2.23
## [47] tools_4.6.1 otel_0.2.0
## [49] httpuv_1.6.17 glue_1.8.1
## [51] restfulr_0.0.17 promises_1.5.0
## [53] grid_4.6.1 BSgenome_1.80.0
## [55] tidyr_1.3.2 data.table_1.18.6.1
## [57] utf8_1.2.6 XVector_0.52.0
## [59] pillar_1.11.1 stringr_1.6.0
## [61] later_1.4.8 splines_4.6.1
## [63] dplyr_1.2.1 BiocFileCache_3.2.0
## [65] lattice_0.23-1 survival_3.8-12
## [67] bit_4.6.0 tidyselect_1.2.1
## [69] RBGL_1.88.0 Biostrings_2.80.2
## [71] miniUI_0.1.2 knitr_1.52
## [73] bookdown_0.48 SummarizedExperiment_1.42.0
## [75] snpStats_1.62.0 futile.logger_1.4.9
## [77] xfun_0.60 matrixStats_1.5.0
## [79] DT_0.34.0 stringi_1.8.9
## [81] UCSC.utils_1.8.0 yaml_2.3.12
## [83] evaluate_1.0.5 codetools_0.2-20
## [85] cigarillo_1.2.1 tibble_3.3.1
## [87] AnVILBase_1.6.0 BiocManager_1.30.27
## [89] graph_1.90.0 cli_3.6.6
## [91] AnVIL_1.24.1 xtable_1.8-8
## [93] systemfonts_1.3.2 jquerylib_0.1.4
## [95] Rcpp_1.1.2 dbplyr_2.6.0
## [97] png_0.1-9 XML_3.99-0.24
## [99] rapiclient_0.1.8 parallel_4.6.1
## [101] pkgdown_2.2.1 blob_1.3.0
## [103] bitops_1.1-0 VariantAnnotation_1.58.0
## [105] purrr_1.2.2 crayon_1.5.3
## [107] rlang_1.3.0 KEGGREST_1.52.2
## [109] formatR_1.14