This guide provides a quick start and key instructions on how to access and interpret datasets from the m6AConquer database. m6AConquer consist of two components: (1) a multi-omics data framework and (2) orthogonal validation outputs. We will demonstrate how to load and extract data step by step.

Multi-Omics data framework

m6AConquer provides MultiAssayExperiment (multi-omics), SummarizedExperiment (single-omics) and RaggedExperiment (genetic variants) files for sharing quantitative m6A data. The MAE object contains four omics layers: m6A methylome, transcriptomics, genetic variants, and alternative splicing data. Users may choose any of these layers depending on their analysis needs.

To access the quantification matrices in MAE file format, please download the corresponding R object from the MultiAssayExperiment column. As an illustration, here we use the quantification matrices from eTAM-seq sequencing data. First, load the SummarizedExperiment and MultiAssayExperiment packages and read the file into R:

suppressPackageStartupMessages(library(SummarizedExperiment))
suppressPackageStartupMessages(library(MultiAssayExperiment))
suppressPackageStartupMessages(library(RaggedExperiment))
suppressPackageStartupMessages(library(Biostrings))
MAE <- readRDS("eTAM_hg38_WT_MAE.rds")
MAE
## A MultiAssayExperiment object of 4 listed
##  experiments with user-defined names and respective classes.
##  Containing an ExperimentList class object of length 4:
##  [1] m6AOmics: RangedSummarizedExperiment with 2788705 rows and 4 columns
##  [2] TranscriptOmics: RangedSummarizedExperiment with 58650 rows and 4 columns
##  [3] SplicingEvents: RangedSummarizedExperiment with 671257 rows and 4 columns
##  [4] GeneticVariation: RaggedExperiment with 46 rows and 4 columns
## Functionality:
##  experiments() - obtain the ExperimentList instance
##  colData() - the primary/phenotype DataFrame
##  sampleMap() - the sample coordination DataFrame
##  `$`, `[`, `[[` - extract colData columns, subset, or experiment
##  *Format() - convert into a long or wide DataFrame
##  assays() - convert ExperimentList to a SimpleList of matrices
##  exportClass() - save data to flat files

The MAE object contains four omics layers.

experiments(MAE)
## ExperimentList class object of length 4:
##  [1] m6AOmics: RangedSummarizedExperiment with 2788705 rows and 4 columns
##  [2] TranscriptOmics: RangedSummarizedExperiment with 58650 rows and 4 columns
##  [3] SplicingEvents: RangedSummarizedExperiment with 671257 rows and 4 columns
##  [4] GeneticVariation: RaggedExperiment with 46 rows and 4 columns

Assay data

To access the m6A methylome data, you may extract the m6AOmics experiment data:

m6AOmics <- MAE[["m6AOmics"]]
m6AOmics
## class: RangedSummarizedExperiment 
## dim: 2788705 4 
## metadata(1): OmixM6A_para
## assays(4): m6A Total m6ASiteProb AdjPvalue
## rownames: NULL
## rowData names(2): orthogonal_validation_status reference_site_source
## colnames(4): SRR21070403 SRR21070404 SRR21070405 SRR21070406
## colData names(10): SampleID Title ... CurationDate BioSample

This is basically a SummarizedExperiment (SE) object with four assay matrices:

  • m6A: m6A signal-specific read counts

  • Total: Total coverage

  • m6ASiteProb: m6A probabilities (where m6ASiteProb > 0.5 corresponds to positive m6A site, and ≤ 0.5 correspond to negative)

  • AdjPvalue: BH adjusted p-value for site calling

Specifically, for each type of m6A profiling techniques, the m6A signal and Total coverage are defined as follows:

Method Category m6A signal (per site) Total coverage (per site)
GLORI Chemical-assisted Unconverted A Total reads
DART-seq Enzyme-assisted C -> U (−1 position) Total reads
eTAM-seq Enzyme-assisted Unconverted A Total reads
m6A-REF-seq Enzyme-assisted Undigested ACA motifs (first A) Digested + undigested ACA motifs
m6A-SAC-seq Enzyme-assisted Mismatched bases Total reads
MAZTER-seq Enzyme-assisted 3′ read-end at ACA (first A) Total bases at ACA (first A)
scDART-seq Enzyme-assisted C -> U (−1 position) Total reads
MeRIP-seq Antibody-assisted IP reads IP + input reads
m6ACE-seq Antibody-assisted Digested reads Digested + input reads
Nanopore (ONT) Direct RNA sequencing m6Anet-called m6A reads Total reads

Each of these assays can be accessed as follow from the SE object (applicable if you have downloaded the SE objects directly):

## Here, we illustrate data on high-coverage m6A sites (Total ≥ 20)
index <- rowSums(assays(m6AOmics)[["m6A"]]) >= 20
head(assays(m6AOmics)[["m6A"]][index,])
##      SRR21070403 SRR21070404 SRR21070405 SRR21070406
## [1,]          10           3           7           7
## [2,]          23           9          12          14
## [3,]          32          19          27          37
## [4,]          11          15          23          26
## [5,]          15          20          20          27
## [6,]           8          13          23          24
head(assays(m6AOmics)[["Total"]][index,])
##      SRR21070403 SRR21070404 SRR21070405 SRR21070406
## [1,]         165         206         233         339
## [2,]         925         614         924        2024
## [3,]        2473        3693        4103        7044
## [4,]        3158        4628        5032        8219
## [5,]        3222        4795        5035        8236
## [6,]        3285        4790        5042        8168
head(assays(m6AOmics)[["m6ASiteProb"]][index,])
##      SRR21070403 SRR21070404 SRR21070405 SRR21070406
## [1,]   0.2769102   0.1394828   0.1688821   0.1427396
## [2,]   0.1306800   0.1318108   0.1334797   0.1410390
## [3,]   0.1199664   0.1549337   0.1458592   0.1509339
## [4,]   0.1795600   0.1844007   0.1623979   0.1790439
## [5,]   0.1591554   0.1669527   0.1702940   0.1767272
## [6,]   0.2101689   0.1984438   0.1625029   0.1839964
head(assays(m6AOmics)[["AdjPvalue"]][index,])
##      SRR21070403 SRR21070404 SRR21070405 SRR21070406
## [1,]           1           1           1           1
## [2,]           1           1           1           1
## [3,]           1           1           1           1
## [4,]           1           1           1           1
## [5,]           1           1           1           1
## [6,]           1           1           1           1
## The beta-value matrix can be computed as follows:
head(assays(m6AOmics)[["m6A"]][index,]/assays(m6AOmics)[["Total"]][index,])
##      SRR21070403 SRR21070404 SRR21070405 SRR21070406
## [1,] 0.060606061 0.014563107 0.030042918 0.020648968
## [2,] 0.024864865 0.014657980 0.012987013 0.006916996
## [3,] 0.012939749 0.005144869 0.006580551 0.005252697
## [4,] 0.003483217 0.003241141 0.004570747 0.003163402
## [5,] 0.004655493 0.004171011 0.003972195 0.003278290
## [6,] 0.002435312 0.002713987 0.004561682 0.002938296

To obtain the expression levels quantified, you may extract the TranscriptOmics experiment:

TranscriptOmics <- experiments(MAE)[["TranscriptOmics"]]
TranscriptOmics
## class: RangedSummarizedExperiment 
## dim: 58650 4 
## metadata(0):
## assays(2): ReadCounts RPKM
## rownames(58650): ENSG00000223972 ENSG00000227232 ... ENSG00000231514
##   ENSG00000235857
## rowData names(6): gene_id gene_name ... symbol entrezid
## colnames(4): SRR21070403 SRR21070404 SRR21070405 SRR21070406
## colData names(10): SampleID Title ... CurationDate BioSample

This SE only contains two assays, which are the original read counts on all the genes and the normalized RPKM:

## Here, we illustrate data on high-coverage genes (ReadCounts ≥ 20)
index <- rowSums(assays(TranscriptOmics)[["ReadCounts"]]) >= 20
head(assays(TranscriptOmics)[["ReadCounts"]][index,])
##                 SRR21070403 SRR21070404 SRR21070405 SRR21070406
## ENSG00000227232         164         105         118         162
## ENSG00000238009          13           3           3           9
## ENSG00000241860           6           3           5           7
## ENSG00000279457         120         156         147         195
## ENSG00000228463          15           5          10          24
## ENSG00000237094          12          11          16          21
head(assays(TranscriptOmics)[["RPKM"]][index,])
##                 SRR21070403 SRR21070404 SRR21070405 SRR21070406
## ENSG00000227232  3.25961863  2.34464547  2.46789140  2.49753440
## ENSG00000238009  0.09368688  0.02428967  0.02274981  0.05030967
## ENSG00000241860  0.02600688  0.01460909  0.02280490  0.02353469
## ENSG00000279457  1.62575796  2.37445630  2.09562259  2.04919258
## ENSG00000228463  0.09972308  0.03734560  0.06995609  0.12376254
## ENSG00000237094  0.06724233  0.06924989  0.09434145  0.09127552

Similarly, to access the alternative splicing and genetic variants data, you can extract the SplicingEvents and GeneticVariation experiment respectively.

SplicingEvents <- experiments(MAE)[["SplicingEvents"]]
SplicingEvents
## class: RangedSummarizedExperiment 
## dim: 671257 4 
## metadata(0):
## assays(6): ReadCounts SE ... A5SS A3SS
## rownames(671257): ENSG00000290825:E001 ENSG00000290825:E002 ...
##   ENSG00000210194:E001 ENSG00000210196:E001
## rowData names(7): tx_id tx_name ... exon_rank exonic_part
## colnames(4): SRR21070403 SRR21070404 SRR21070405 SRR21070406
## colData names(10): SampleID Title ... CurationDate BioSample
GeneticVariation <- experiments(MAE)[["GeneticVariation"]]
GeneticVariation
## class: RaggedExperiment 
## dim: 46 4 
## assays(10): paramRangeID REF ... GQ PL
## rownames(46): rs1279138
##   chr12:6770904_TCCCTTTTTGTATAATTTAATAAAGAAATGGTCGCGCTTCTGTTTTTAACCTGTCTCCTGCTTTCCCGGGGGCTCCAGTCAGTGCGACAAAAGGGTAGAGAGGGAGGAGGGTGGCTGACCTCCCATTCTGCCAGGA/T
##   ... rs10096642 rs6478689
## colnames(4): SRR21070403 SRR21070404 SRR21070405 SRR21070406
## colData names(10): SampleID Title ... CurationDate BioSample

Selecting significantly methylated sites

It is important to note that the m6A methylome quantification matrices are complete and have not been pre-filtered using site-calling p-values. However, both the p-value and m6A probability matrices are included in the assays. Therefore, to identify significantly methylated sites in a given sample, users may select an appropriate threshold and filter the reference sites accordingly.

# Sample 1: select sites with padj < 0.05
idx1   <- assays(m6AOmics)[["AdjPvalue"]][, 1] < 0.05
sites1 <- rowRanges(m6AOmics)[which(idx1)]
length(sites1)
## [1] 77054
# Sample 2: select sites with prob > 0.5 and coverage ≥ 20
idx2   <- (assays(m6AOmics)[["m6ASiteProb"]][, 2] > 0.5) & (assays(m6AOmics)[["Total"]][, 2] >= 20)
sites2 <- rowRanges(m6AOmics)[which(idx2)]
length(sites2)
## [1] 62068

In addition, if one wishes to re-compute p-values — for example, after combining replicate samples using rowSums(). We recommend using our OmixM6A package, which allows p-values or m6A posterior probabilities to be re-computed on the new count data.

Site annotation

To access the GRanges of consistent reference sites used to quantify m6A-specific signal and total read coverages, you can extract the rowRanges data from m6AOmics:

rowRanges(m6AOmics)
## GRanges object with 2788705 ranges and 2 metadata columns:
##             seqnames    ranges strand | orthogonal_validation_status
##                <Rle> <IRanges>  <Rle> |                  <character>
##         [1]     chr1     11873      + |                Not_Validated
##         [2]     chr1     11896      + |                Not_Validated
##         [3]     chr1     11940      + |                Not_Validated
##         [4]     chr1     12017      + |                Not_Validated
##         [5]     chr1     12147      + |                Not_Validated
##         ...      ...       ...    ... .                          ...
##   [2788701]     chrM     14324      - |                Not_Validated
##   [2788702]     chrM     15023      - |                Not_Validated
##   [2788703]     chrM     15413      - |                Not_Validated
##   [2788704]     chrM     15639      - |                Not_Validated
##   [2788705]     chrM     15968      - |                Not_Validated
##             reference_site_source
##                       <character>
##         [1]            Exon_DRACH
##         [2]            Exon_DRACH
##         [3]            Exon_DRACH
##         [4]            Exon_DRACH
##         [5]            Exon_DRACH
##         ...                   ...
##   [2788701]            Exon_DRACH
##   [2788702]        GLORI_NonDRACH
##   [2788703]        GLORI_NonDRACH
##   [2788704]        GLORI_NonDRACH
##   [2788705]            Exon_DRACH
##   -------
##   seqinfo: 25 sequences (1 circular) from hg38 genome

The default metadata columns of the m6AOmics rowRanges data consist of two components: orthogonal_validation_status and reference_site_source .

  • orthogonal_validation_status summarizes the cross techniques IDR integration outcomes: Not_validated (The site is not validated by any orthogonal pair of techniques), Validated_Current (The site is validated by at least two orthogonal techniques including the current technique), and Validated_Other (The site is validated by at least two orthogonal techniques not including the current technique). The orthogonal validation is performed by the IDR analysis procedure described in our manuscript, and validated sites are filtered with idr < 0.05.

  • reference_site_source annotates the origins of the reference A sites: Exon_DRACH (The site is extracted from exonic DRACH motif), GLORI_DRACH_NonExon (The site is extracted from GLORI-identified non-exonic DRACH motif), and GLORI_NonDRACH (The site is extracted from GLORI-identified non-DRACH loci). GLORI-identified sites are retrieved from the supplementary data of this publication.

You are recommended to subset the rows (reference features) in m6A se data with the rowData depend on the need of your study:

For example, you can examine m6A methylome only on orthogonally validated reference sites:

ov_se <- m6AOmics[rowData(m6AOmics)$orthogonal_validation_status %in% c("Validated_Current", "Validated_Other"),] 
ov_se
## class: RangedSummarizedExperiment 
## dim: 135300 4 
## metadata(1): OmixM6A_para
## assays(4): m6A Total m6ASiteProb AdjPvalue
## rownames: NULL
## rowData names(2): orthogonal_validation_status reference_site_source
## colnames(4): SRR21070403 SRR21070404 SRR21070405 SRR21070406
## colData names(10): SampleID Title ... CurationDate BioSample

Alternatively, you can limit sites only on exonic DRACH motif for your downstream analysis

drach_se <- m6AOmics[rowData(m6AOmics)$reference_site_source == "Exon_DRACH",] 
drach_se
## class: RangedSummarizedExperiment 
## dim: 2533090 4 
## metadata(1): OmixM6A_para
## assays(4): m6A Total m6ASiteProb AdjPvalue
## rownames: NULL
## rowData names(2): orthogonal_validation_status reference_site_source
## colnames(4): SRR21070403 SRR21070404 SRR21070405 SRR21070406
## colData names(10): SampleID Title ... CurationDate BioSample

m6AConquer also provides additional site annotation for more conditionally specific stratification. This supplementary row data includes additional columns: including GLORI_supported, eTAM_seq_supported, [CellType_name]_supported. They can indicate whether the candidate sites are called by any GLORI or eTAM-seq technique and in which cell line they are called.

sup_rowdata <- readRDS("m6AConquer_supplementary_row_data_hg38.rds")
colnames(mcols(sup_rowdata))
## [1] "orthogonal_validation_status" "reference_site_source"       
## [3] "technique_support"            "sample_support"              
## [5] "GLORI_supported"              "eTAM_seq_supported"          
## [7] "HEK293T_supported"            "HeLa_suppoerted"
# The supplementary row data has the matched dimensionality of regular SE, so subset can be done directly
hek293t_se <- m6AOmics[sup_rowdata$HEK293T_supported == TRUE,]
# Alternatively, one can integrate the row data into SE
mcols(m6AOmics) <- cbind(mcols(m6AOmics), mcols(sup_rowdata))
mcols(m6AOmics)

Our resource also support comprehensive genomic features (e.g. Genomic regions 5’UTR, CDS, 3’UTR, exon, intron, histone modifications, m6A related RBPs, and properties of overlapped genomic regions such as length). To add genomic features to a m6A SE object, use:

omicsFeatures <- readRDS("m6AConquer_omicsFeatures_hg38.rds")
colnames(mcols(omicsFeatures))
# The genomic features can also be integrated into the regular SE
mcols(m6AOmics) <- cbind(mcols(m6AOmics), mcols(omicsFeatures))
mcols(m6AOmics)

Finally, for TranscriptOmics and SplicingEvents se objects, you can access the genomic locations of all the genes and exonic parts with:

rowRanges(TranscriptOmics)
rowRanges(SplicingEvents)

Sample annotation

Sample annotations from the original data sources are included in the MAE and SE objects. For most sequencing techniques, the annotations are identical across all omics layers. In antibody-assisted methods, annotations for the m6A methylome are derived from IP samples, while those for the transcriptome are from the corresponding input samples. Accessing colData(MAE) or colData(SE) provides a complete annotation table for both IP and input samples. In contrast, non-antibody techniques such as GLORI and eTAM-seq use the same sample annotations across layers.

head(colData(MAE))
## DataFrame with 4 rows and 10 columns
##                SampleID                  Title SourceDatabase TissueOrCellLine
##             <character>            <character>    <character>      <character>
## SRR21070403 SRR21070403 HeLa_polyA_WT_FTO-_r..            GEO             HeLa
## SRR21070404 SRR21070404 HeLa_polyA_WT_FTO-_r..            GEO             HeLa
## SRR21070405 SRR21070405 HeLa_polyA_WT_FTO-_r..            GEO             HeLa
## SRR21070406 SRR21070406 HeLa_polyA_WT_FTO-_r..            GEO             HeLa
##                 Organism   Treatment DetectionTechnique         DataProcessing
##              <character> <character>        <character>            <character>
## SRR21070403 Homo Sapiens          WT           eTAM-seq Cutadapt|Hisat3N|fin..
## SRR21070404 Homo Sapiens          WT           eTAM-seq Cutadapt|Hisat3N|fin..
## SRR21070405 Homo Sapiens          WT           eTAM-seq Cutadapt|Hisat3N|fin..
## SRR21070406 Homo Sapiens          WT           eTAM-seq Cutadapt|Hisat3N|fin..
##             CurationDate    BioSample
##              <character>  <character>
## SRR21070403 Oct 24, 2022 SAMN30324096
## SRR21070404 Oct 24, 2022 SAMN30324097
## SRR21070405 Oct 24, 2022 SAMN30324098
## SRR21070406 Oct 24, 2022 SAMN30324098

Or with SE:

head(colData(m6AOmics))

Fitted parameters

The MAE and SE objects also contain fitted parameters of the beta-binomial mixture models.

metadata(MAE)[[1]]
##             bg_proportion fg_proportion alpha_m6A_bg beta_m6A_bg alpha_m6A_fg
## SRR21070403     0.6259963     0.3740037    1.0403727    45.46696    0.3501398
## SRR21070404     0.6067907     0.3932093    0.9823051    50.64032    0.3159781
## SRR21070405     0.6110785     0.3889215    0.9205881    44.92017    0.3238199
## SRR21070406     0.6103329     0.3896671    0.9397112    45.87532    0.3478345
##             beta_m6A_fg
## SRR21070403   0.9485091
## SRR21070404   0.9112292
## SRR21070405   0.9308952
## SRR21070406   0.9743458

Or with:

metadata(m6AOmics)[[1]]

Orthogonally validated sites

m6AConquer provides Genomic Ranges to document detailed orthogonal validation (OV) sites and statistics.

For each orthogonal technique pair, the OV sites are defined as:

As an illustration, here we load the OV sites between GLORI and eTAM-seq. First, load the GenomicRanges packages and read the file into R:

suppressWarnings(suppressPackageStartupMessages(library(GenomicRanges)))
ov_eTAM_GLORI <- readRDS("m6A_OrthogonallyValidatedSites_eTAM_GLORI_hg38.rds")
head(ov_eTAM_GLORI, 3)
## GRanges object with 3 ranges and 7 metadata columns:
##       seqnames    ranges strand | m6A_ratio_eTAM_seq   m6A_ratio_GLORI
##          <Rle> <IRanges>  <Rle> |        <character>       <character>
##   [1]     chr5 172339669      - |                  1 0.988571428571429
##   [2]    chr20  30512433      - |                  1 0.993157380254154
##   [3]     chr7   4764049      + |                  1                 1
##       m6A_probability_eTAM_seq m6A_probability_GLORI Pvalue_adjusted_eTAM_seq
##                    <character>           <character>              <character>
##   [1]                        1                     1     6.59523340105527e-65
##   [2]                        1                     1      9.1957035297511e-40
##   [3]                        1                     1     4.90269299673246e-31
##       Pvalue_adjusted_GLORI Irreproducible_discovery_rate
##                 <character>                   <character>
##   [1] 1.05596909776191e-180          3.64423036192107e-09
##   [2]                     0          3.64423036192107e-09
##   [3]  4.85119768337239e-39          3.64423036192107e-09
##   -------
##   seqinfo: 25 sequences from an unspecified genome; no seqlengths

To access the combined OV sites (between all orthogonal technique pairs), you may load the merged genomic ranges file into R:

gr_combined <- readRDS("m6A_OrthogonallyValidatedSites_Combined_hg38.rds")
colnames(mcols(gr))

The meta data columns of the combined OV sites at here include the details about the supported orthogonal technique pairs.

Session info

sessioninfo::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.4.0 (2024-04-24)
##  os       macOS Monterey 12.6.2
##  system   x86_64, darwin20
##  ui       X11
##  language (EN)
##  collate  en_US.UTF-8
##  ctype    en_US.UTF-8
##  tz       Asia/Shanghai
##  date     2025-10-10
##  pandoc   3.2 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/x86_64/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  package              * version date (UTC) lib source
##  abind                  1.4-8   2024-09-12 [1] CRAN (R 4.4.1)
##  Biobase              * 2.64.0  2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
##  BiocBaseUtils          1.6.0   2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
##  BiocGenerics         * 0.50.0  2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
##  Biostrings           * 2.72.1  2024-06-02 [1] Bioconductor 3.19 (R 4.4.0)
##  bslib                  0.8.0   2024-07-29 [1] CRAN (R 4.4.0)
##  cachem                 1.1.0   2024-05-16 [1] CRAN (R 4.4.0)
##  cli                    3.6.5   2025-04-23 [1] CRAN (R 4.4.1)
##  crayon                 1.5.3   2024-06-20 [1] CRAN (R 4.4.0)
##  DelayedArray           0.30.1  2024-05-07 [1] Bioconductor 3.19 (R 4.4.0)
##  digest                 0.6.37  2024-08-19 [1] CRAN (R 4.4.1)
##  evaluate               1.0.1   2024-10-10 [1] CRAN (R 4.4.1)
##  fastmap                1.2.0   2024-05-15 [1] CRAN (R 4.4.0)
##  GenomeInfoDb         * 1.40.1  2024-05-24 [1] Bioconductor 3.19 (R 4.4.0)
##  GenomeInfoDbData       1.2.12  2024-06-20 [1] Bioconductor
##  GenomicRanges        * 1.56.1  2024-06-16 [1] Bioconductor 3.19 (R 4.4.0)
##  htmltools              0.5.8.1 2024-04-04 [1] CRAN (R 4.4.0)
##  httr                   1.4.7   2023-08-15 [1] CRAN (R 4.4.0)
##  IRanges              * 2.38.1  2024-07-03 [1] Bioconductor 3.19 (R 4.4.1)
##  jquerylib              0.1.4   2021-04-26 [1] CRAN (R 4.4.0)
##  jsonlite               1.8.9   2024-09-20 [1] CRAN (R 4.4.1)
##  knitr                  1.48    2024-07-07 [1] CRAN (R 4.4.0)
##  lattice                0.22-6  2024-03-20 [1] CRAN (R 4.4.0)
##  lifecycle              1.0.4   2023-11-07 [1] CRAN (R 4.4.0)
##  Matrix                 1.7-0   2024-03-22 [1] CRAN (R 4.4.0)
##  MatrixGenerics       * 1.16.0  2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
##  matrixStats          * 1.4.1   2024-09-08 [1] CRAN (R 4.4.1)
##  MultiAssayExperiment * 1.30.3  2024-07-10 [1] Bioconductor 3.19 (R 4.4.1)
##  R6                     2.5.1   2021-08-19 [1] CRAN (R 4.4.0)
##  RaggedExperiment     * 1.28.1  2024-07-10 [1] Bioconductor 3.19 (R 4.4.1)
##  rlang                  1.1.6   2025-04-11 [1] CRAN (R 4.4.1)
##  rmarkdown              2.28    2024-08-17 [1] CRAN (R 4.4.1)
##  rstudioapi             0.17.1  2024-10-22 [1] CRAN (R 4.4.1)
##  S4Arrays               1.4.1   2024-05-20 [1] Bioconductor 3.19 (R 4.4.0)
##  S4Vectors            * 0.42.1  2024-07-03 [1] Bioconductor 3.19 (R 4.4.1)
##  sass                   0.4.9   2024-03-15 [1] CRAN (R 4.4.0)
##  sessioninfo            1.2.2   2021-12-06 [1] CRAN (R 4.4.0)
##  SparseArray            1.4.8   2024-05-24 [1] Bioconductor 3.19 (R 4.4.0)
##  SummarizedExperiment * 1.34.0  2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
##  UCSC.utils             1.0.0   2024-05-01 [1] Bioconductor 3.19 (R 4.4.0)
##  xfun                   0.48    2024-10-03 [1] CRAN (R 4.4.1)
##  XVector              * 0.44.0  2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
##  yaml                   2.3.10  2024-07-26 [1] CRAN (R 4.4.0)
##  zlibbioc               1.50.0  2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
## 
##  [1] /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/library
## 
## ──────────────────────────────────────────────────────────────────────────────