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.
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
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
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.
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 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))
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]]
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.
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
##
## ──────────────────────────────────────────────────────────────────────────────