imageFeatureTCGA provides convenient access to
histopathology-derived data from TCGA through two
complementary pipelines:
These datasets can be imported directly into R as Bioconductor objects, facilitating downstream integration with TCGA omics and clinical data.
The datasets accessible through imageFeatureTCGA
originate from whole-slide histopathology images processed by deep
learning pipelines. They are distributed as precomputed features to
avoid the computational cost of running segmentation and embedding
models locally.
HoVerNet provides nuclei segmentation and classification results at the single-cell level. Each detected nucleus is represented by:
x, y) in pixel units
relative to the slideWhen imported as a SpatialExperiment or
SpatialFeatureExperiment, the data are structured as
follows:
These objects enable spatial analyses and integration with other Bioconductor workflows for spatial transcriptomics and imaging data.
ProvGigaPath is a foundation model trained on large-scale pathology image tiles that produces high-dimensional embeddings summarizing visual and morphological features.
Two levels of embeddings are provided:
Slide-level embeddings summarize the entire whole-slide image into a single feature vector.
Tile-level embeddings provide localized representations of tissue regions.
Each tile entry includes:
tile_x, tile_y)
corresponding to the tile position on the slideThese embeddings enable spatial analyses of tissue heterogeneity and
can be integrated with cell-level data from HoVerNet using complementary
packages such as imageTCGAutils.
Use the following function to download the catalog of available files:
## Warning in file.rename(file, dest): cannot rename file
## '/tmp/RtmpoAhpI3/file219f693e65e5/api/records/17981132/files/store_cancerdatasci_catalog.tsv/content'
## to
## '/github/home/.cache/R/BiocFileCache/api/records/17981132/files/store_cancerdatasci_catalog.tsv/content',
## reason 'Invalid cross-device link'
## # A tibble: 54,253 × 25
## pipeline format filename fullpath fnsansext tcga_barcode Case.ID TSS.Code
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 2 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 3 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 4 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 5 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 6 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 7 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 8 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 9 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 10 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## # ℹ 54,243 more rows
## # ℹ 17 more variables: File.ID <chr>, File.Name <chr>, Data.Category <chr>,
## # Data.Type <chr>, Project.ID <chr>, Sample.ID <chr>, Sample.Type <chr>,
## # Source.Site <chr>, Study.Name <chr>, BCR <chr>, city <chr>, state <chr>,
## # country <chr>, bcr_patient_uuid <chr>, lat <dbl>, lon <dbl>, level <chr>
JSON,
GeoJSON, thumb and H5AD
formats.Note that the thumb format refers to the png thumbnails
of the whole-slide images.
## # A tibble: 33,177 × 25
## pipeline format filename fullpath fnsansext tcga_barcode Case.ID TSS.Code
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 2 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 3 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 4 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 5 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 6 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 7 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 8 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 9 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 10 hovernet geojson TCGA-02-00… hoverne… TCGA-02-… TCGA-02-000… TCGA-0… 02
## # ℹ 33,167 more rows
## # ℹ 17 more variables: File.ID <chr>, File.Name <chr>, Data.Category <chr>,
## # Data.Type <chr>, Project.ID <chr>, Sample.ID <chr>, Sample.Type <chr>,
## # Source.Site <chr>, Study.Name <chr>, BCR <chr>, city <chr>, state <chr>,
## # country <chr>, bcr_patient_uuid <chr>, lat <dbl>, lon <dbl>, level <chr>
## # A tibble: 21,076 × 25
## pipeline format filename fullpath fnsansext tcga_barcode Case.ID TSS.Code
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 2 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 3 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 4 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 5 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 6 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 7 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 8 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 9 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## 10 provgigapath csv TCGA-02… provgig… TCGA-02-… TCGA-02-000… TCGA-0… 02
## # ℹ 21,066 more rows
## # ℹ 17 more variables: File.ID <chr>, File.Name <chr>, Data.Category <chr>,
## # Data.Type <chr>, Project.ID <chr>, Sample.ID <chr>, Sample.Type <chr>,
## # Source.Site <chr>, Study.Name <chr>, BCR <chr>, city <chr>, state <chr>,
## # country <chr>, bcr_patient_uuid <chr>, lat <dbl>, lon <dbl>, level <chr>
You can import HoVerNet segmentation results as either a
SpatialExperiment or SpatialFeatureExperiment.
Here we selectively import a file based on its filename, but you can
also filter by other metadata fields such as Project.ID,
pipeline, format, etc.
hspe <- getCatalog("hovernet") |>
dplyr::filter(
filename == paste(
"TCGA-VG-A8LO-01A-01-DX1",
"B39A4D64-82A1-4A04-8AB6-918F3058B83B",
"json",
"gz",
sep = "."
)
) |>
getFileURLs() |>
HoverNet(outClass = "SpatialExperiment") |>
import()## Warning in file.rename(file, dest): cannot rename file
## '/tmp/RtmpoAhpI3/file219f1e2f85bf/waldronlab-image-features/hovernet/json/TCGA-VG-A8LO-01A-01-DX1.B39A4D64-82A1-4A04-8AB6-918F3058B83B.json.gz'
## to
## '/github/home/.cache/R/BiocFileCache/waldronlab-image-features/hovernet/json/TCGA-VG-A8LO-01A-01-DX1.B39A4D64-82A1-4A04-8AB6-918F3058B83B.json.gz',
## reason 'Invalid cross-device link'
## class: SpatialExperiment
## dim: 0 67081
## metadata(1): type_map
## assays(1): counts
## rownames: NULL
## rowData names(0):
## colnames: NULL
## colData names(10): cell_id x ... B sample_id
## reducedDimNames(0):
## mainExpName: NULL
## altExpNames(0):
## spatialCoords names(2) : x y
## imgData names(0):
Each cell is represented with:
x, y spatial coordinates## DataFrame with 67081 rows and 10 columns
## cell_id x y type type_prob label R
## <character> <numeric> <numeric> <integer> <numeric> <character> <integer>
## 1 8 3894.64 15842.5 1 0.9696429 neopla 255
## 2 9 3920.24 15864.1 1 0.9077253 neopla 255
## 3 10 3857.38 15871.0 1 0.9575972 neopla 255
## 4 11 3892.01 15872.0 1 0.9658887 neopla 255
## 5 12 3943.50 15872.6 1 0.0384615 neopla 255
## ... ... ... ... ... ... ... ...
## 67077 88901 86252.5 8284.12 3 0.768924 connec 0
## 67078 88902 86219.8 8291.11 2 0.993865 inflam 0
## 67079 88903 86052.2 8301.45 4 0.750000 necros 255
## 67080 88904 86189.5 8306.04 1 0.774737 neopla 255
## 67081 88905 85777.0 8381.20 2 0.996622 inflam 0
## G B sample_id
## <integer> <integer> <character>
## 1 0 0 sample01
## 2 0 0 sample01
## 3 0 0 sample01
## 4 0 0 sample01
## 5 0 0 sample01
## ... ... ... ...
## 67077 0 255 sample01
## 67078 255 0 sample01
## 67079 255 0 sample01
## 67080 0 0 sample01
## 67081 255 0 sample01
ProvGigaPath embeddings summarize tile or slide-level image features. In this example, we import slide-level embeddings for a single file. Each row corresponds to a slide, with an embedding vector describing the image-derived features.
getCatalog("provgigapath") |>
dplyr::filter(
filename == paste(
"TCGA-VG-A8LO-01A-01-DX1",
"B39A4D64-82A1-4A04-8AB6-918F3058B83B",
"csv",
"gz",
sep = "."
) &
level == "slide_level"
) |>
getFileURLs() |>
ProvGiga() |>
import()## Warning in file.rename(file, dest): cannot rename file
## '/tmp/RtmpoAhpI3/file219f1f734cdb/waldronlab-image-features/provgigapath/slide_level/TCGA-VG-A8LO-01A-01-DX1.B39A4D64-82A1-4A04-8AB6-918F3058B83B.csv.gz'
## to
## '/github/home/.cache/R/BiocFileCache/waldronlab-image-features/provgigapath/slide_level/TCGA-VG-A8LO-01A-01-DX1.B39A4D64-82A1-4A04-8AB6-918F3058B83B.csv.gz',
## reason 'Invalid cross-device link'
## # A tibble: 1 × 771
## slideName tumorType fileName V1 V2 V3 V4 V5 V6 V7
## <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TCGA-VG-A8LO… <NA> TCGA-VG… -0.352 0.594 -0.403 -0.529 0.0304 0.206 -1.13
## # ℹ 761 more variables: V8 <dbl>, V9 <dbl>, V10 <dbl>, V11 <dbl>, V12 <dbl>,
## # V13 <dbl>, V14 <dbl>, V15 <dbl>, V16 <dbl>, V17 <dbl>, V18 <dbl>,
## # V19 <dbl>, V20 <dbl>, V21 <dbl>, V22 <dbl>, V23 <dbl>, V24 <dbl>,
## # V25 <dbl>, V26 <dbl>, V27 <dbl>, V28 <dbl>, V29 <dbl>, V30 <dbl>,
## # V31 <dbl>, V32 <dbl>, V33 <dbl>, V34 <dbl>, V35 <dbl>, V36 <dbl>,
## # V37 <dbl>, V38 <dbl>, V39 <dbl>, V40 <dbl>, V41 <dbl>, V42 <dbl>,
## # V43 <dbl>, V44 <dbl>, V45 <dbl>, V46 <dbl>, V47 <dbl>, V48 <dbl>, …
ProvGigaPath tile-level embeddings provide a more granular
representation of image features at the tile level. Each row corresponds
to a tile, with spatial coordinates (tile_x,
tile_y) and an embedding vector describing the
image-derived features for that tile. In this example, we filter the
catalog to the tile-level file corresponding to the same slide as
above.
getCatalog("provgigapath") |>
dplyr::filter(
filename == paste(
"TCGA-VG-A8LO-01A-01-DX1",
"B39A4D64-82A1-4A04-8AB6-918F3058B83B",
"csv",
"gz",
sep = "."
) &
level == "tile_level"
) |>
getFileURLs() |>
ProvGiga() |>
import()## Warning in file.rename(file, dest): cannot rename file
## '/tmp/RtmpoAhpI3/file219f63d88f3c/waldronlab-image-features/provgigapath/tile_level/TCGA-VG-A8LO-01A-01-DX1.B39A4D64-82A1-4A04-8AB6-918F3058B83B.csv.gz'
## to
## '/github/home/.cache/R/BiocFileCache/waldronlab-image-features/provgigapath/tile_level/TCGA-VG-A8LO-01A-01-DX1.B39A4D64-82A1-4A04-8AB6-918F3058B83B.csv.gz',
## reason 'Invalid cross-device link'
## # A tibble: 211 × 1,543
## slide_name tile_id tile_name tile_x tile_y `0` `1` `2` `3`
## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TCGA-VG-A8LO… 0 02155x_1… 2155 18612 0.177 -1.42 0.787 0.0380
## 2 TCGA-VG-A8LO… 1 03180x_1… 3180 15540 0.433 -1.33 1.11 -0.382
## 3 TCGA-VG-A8LO… 2 03180x_1… 3180 16564 0.886 -1.71 -0.0505 0.317
## 4 TCGA-VG-A8LO… 3 03180x_1… 3180 17588 0.183 -1.31 -0.599 -0.138
## 5 TCGA-VG-A8LO… 4 03180x_1… 3180 18612 0.631 -0.588 0.652 0.548
## 6 TCGA-VG-A8LO… 5 03180x_1… 3180 19636 0.700 -1.51 0.909 0.380
## 7 TCGA-VG-A8LO… 6 04204x_1… 4204 14516 0.821 -2.47 1.05 -0.411
## 8 TCGA-VG-A8LO… 7 04204x_1… 4204 15540 0.251 -0.958 0.259 -0.186
## 9 TCGA-VG-A8LO… 8 04204x_1… 4204 16564 -0.0607 -0.917 -0.168 0.727
## 10 TCGA-VG-A8LO… 9 04204x_1… 4204 17588 -0.00672 -1.05 0.460 0.600
## # ℹ 201 more rows
## # ℹ 1,534 more variables: `4` <dbl>, `5` <dbl>, `6` <dbl>, `7` <dbl>,
## # `8` <dbl>, `9` <dbl>, `10` <dbl>, `11` <dbl>, `12` <dbl>, `13` <dbl>,
## # `14` <dbl>, `15` <dbl>, `16` <dbl>, `17` <dbl>, `18` <dbl>, `19` <dbl>,
## # `20` <dbl>, `21` <dbl>, `22` <dbl>, `23` <dbl>, `24` <dbl>, `25` <dbl>,
## # `26` <dbl>, `27` <dbl>, `28` <dbl>, `29` <dbl>, `30` <dbl>, `31` <dbl>,
## # `32` <dbl>, `33` <dbl>, `34` <dbl>, `35` <dbl>, `36` <dbl>, `37` <dbl>, …
One can also import multiple files at once. Here we filter the
catalog to the first three slide-level files for the TCGA-GBM project,
and import them as a ProvGigaList. Each element of the list
corresponds to a slide, with the same structure as described above for
slide-level embeddings. Note that the ProvGigaList
constructor can also accept a vector of file paths or URLs. The
import method for ProvGigaList will then
import each file in the list and return either a single
SummarizedExperiment or a list of
SummarizedExperiment objects based on the diversity of the
data levels in the input files. In this example, the catalog is filtered
to a slide-level subset, so the output is a single
SummarizedExperiment object with three columns
corresponding to the three slides.
pgl <- getCatalog("provgigapath") |>
dplyr::filter(level == "slide_level", Project.ID == "TCGA-GBM") |>
dplyr::slice(1:3) |>
getFileURLs() |>
ProvGigaList() |>
import()## Warning in file.rename(file, dest): cannot rename file
## '/tmp/RtmpoAhpI3/file219f19a0fd9d/waldronlab-image-features/provgigapath/slide_level/TCGA-02-0001-01Z-00-DX1.83fce43e-42ac-4dcd-b156-2908e75f2e47.csv.gz'
## to
## '/github/home/.cache/R/BiocFileCache/waldronlab-image-features/provgigapath/slide_level/TCGA-02-0001-01Z-00-DX1.83fce43e-42ac-4dcd-b156-2908e75f2e47.csv.gz',
## reason 'Invalid cross-device link'
## Warning in file.rename(file, dest): cannot rename file
## '/tmp/RtmpoAhpI3/file219f19a0fd9d/waldronlab-image-features/provgigapath/slide_level/TCGA-02-0001-01Z-00-DX2.b521a862-280c-4251-ab54-5636f20605d0.csv.gz'
## to
## '/github/home/.cache/R/BiocFileCache/waldronlab-image-features/provgigapath/slide_level/TCGA-02-0001-01Z-00-DX2.b521a862-280c-4251-ab54-5636f20605d0.csv.gz',
## reason 'Invalid cross-device link'
## Warning in file.rename(file, dest): cannot rename file
## '/tmp/RtmpoAhpI3/file219f19a0fd9d/waldronlab-image-features/provgigapath/slide_level/TCGA-02-0001-01Z-00-DX3.2836ce55-491f-4d86-99b1-668946927af8.csv.gz'
## to
## '/github/home/.cache/R/BiocFileCache/waldronlab-image-features/provgigapath/slide_level/TCGA-02-0001-01Z-00-DX3.2836ce55-491f-4d86-99b1-668946927af8.csv.gz',
## reason 'Invalid cross-device link'
## class: SummarizedExperiment
## dim: 768 3
## metadata(5): slideName tumorType fileName patientIds sampleIds
## assays(1): embeddings
## rownames: NULL
## rowData names(0):
## colnames(3): TCGA-02-0001-01Z-00-DX1 TCGA-02-0001-01Z-00-DX2
## TCGA-02-0001-01Z-00-DX3
## colData names(0):
The ProvGigaList constructor can also accept a mix of
slide- and tile-level files. In this case, the import
method will return a list of SummarizedExperiment objects,
one for each data level. Here we filter the catalog to include both
slide- and tile-level files for the same slide, and import them
together.
pgl_mixed <- getCatalog("provgigapath") |>
dplyr::filter(
filename %in% c(
paste(
"TCGA-VG-A8LO-01A-01-DX1",
"B39A4D64-82A1-4A04-8AB6-918F3058B83B",
"csv",
"gz",
sep = "."
)
) &
level %in% c("slide_level", "tile_level")
) |>
getFileURLs() |>
ProvGigaList() |>
import()## Warning in .as(from): NAs introduced by coercion
## $slide_level
## class: SummarizedExperiment
## dim: 768 1
## metadata(5): slideName tumorType fileName patientIds sampleIds
## assays(1): embeddings
## rownames: NULL
## rowData names(0):
## colnames(1): TCGA-VG-A8LO-01A-01-DX1
## colData names(0):
##
## $tile_level
## class: SummarizedExperiment
## dim: 1538 1
## metadata(3): metadata sampleIds patientIds
## assays(1): tiles
## rownames: NULL
## rowData names(0):
## colnames(1): TCGA-VG-A8LO-01A-01-DX1
## colData names(0):
You can explore the full documentation through the MOFA and Point
Pattern Analysis vignettes in the imageTCGA manuscript repository.
Note. More vignettes will be added as new feature types and workflows become available.
The imageTCGA Shiny application provides an interactive interface for exploring TCGA Diagnostic Image Database metadata.
Click here to explore the shiny app: imageTCGA
## R version 4.6.0 (2026-04-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: Etc/UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] dplyr_1.2.1 SummarizedExperiment_1.42.0
## [3] Biobase_2.72.0 GenomicRanges_1.64.0
## [5] Seqinfo_1.2.0 IRanges_2.46.0
## [7] S4Vectors_0.50.0 BiocGenerics_0.58.0
## [9] generics_0.1.4 MatrixGenerics_1.24.0
## [11] matrixStats_1.5.0 imageFeatureTCGA_1.0.0
## [13] BiocStyle_2.40.0
##
## loaded via a namespace (and not attached):
## [1] tidyselect_1.2.1 blob_1.3.0
## [3] bitops_1.0-9 Biostrings_2.80.0
## [5] filelock_1.0.3 BumpyMatrix_1.20.0
## [7] RCurl_1.98-1.18 fastmap_1.2.0
## [9] SingleCellExperiment_1.34.0 BiocFileCache_3.2.0
## [11] GenomicAlignments_1.48.0 XML_3.99-0.23
## [13] digest_0.6.39 lifecycle_1.0.5
## [15] KEGGREST_1.52.0 RSQLite_2.4.6
## [17] magrittr_2.0.5 compiler_4.6.0
## [19] rlang_1.2.0 sass_0.4.10
## [21] tools_4.6.0 utf8_1.2.6
## [23] yaml_2.3.12 rtracklayer_1.72.0
## [25] knitr_1.51 S4Arrays_1.12.0
## [27] bit_4.6.0 curl_7.1.0
## [29] DelayedArray_0.38.1 xml2_1.5.2
## [31] BiocParallel_1.46.0 abind_1.4-8
## [33] withr_3.0.2 purrr_1.2.2
## [35] sys_3.4.3 grid_4.6.0
## [37] MultiAssayExperiment_1.38.0 cli_3.6.6
## [39] rmarkdown_2.31 crayon_1.5.3
## [41] httr_1.4.8 tzdb_0.5.0
## [43] rjson_0.2.23 BiocBaseUtils_1.14.0
## [45] GenomicDataCommons_1.36.0 DBI_1.3.0
## [47] cachem_1.1.0 stringr_1.6.0
## [49] rvest_1.0.5 parallel_4.6.0
## [51] AnnotationDbi_1.74.0 restfulr_0.0.16
## [53] BiocManager_1.30.27 XVector_0.52.0
## [55] vctrs_0.7.3 Matrix_1.7-5
## [57] jsonlite_2.0.0 hms_1.1.4
## [59] bit64_4.8.0 TENxIO_1.14.0
## [61] GenomicFeatures_1.64.0 maketools_1.3.2
## [63] magick_2.9.1 jquerylib_0.1.4
## [65] glue_1.8.1 codetools_0.2-20
## [67] stringi_1.8.7 GenomeInfoDb_1.48.0
## [69] BiocIO_1.22.0 UCSC.utils_1.8.0
## [71] tibble_3.3.1 pillar_1.11.1
## [73] rappdirs_0.3.4 htmltools_0.5.9
## [75] R6_2.6.1 dbplyr_2.5.2
## [77] httr2_1.2.2 vroom_1.7.1
## [79] evaluate_1.0.5 lattice_0.22-9
## [81] readr_2.2.0 cigarillo_1.2.0
## [83] Rsamtools_2.28.0 png_0.1-9
## [85] SpatialExperiment_1.22.0 memoise_2.0.1
## [87] bslib_0.10.0 rjsoncons_1.3.2
## [89] Rcpp_1.1.1-1.1 SparseArray_1.12.2
## [91] xfun_0.57 TCGAutils_1.32.0
## [93] buildtools_1.0.0 pkgconfig_2.0.3