library(ggplot2)
library(purrr)
library(GenomicRanges)
## Loading required package: stats4
## Loading required package: BiocGenerics
##
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:stats':
##
## IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
##
## Filter, Find, Map, Position, Reduce, anyDuplicated, aperm,
## append, as.data.frame, basename, cbind, colnames, dirname,
## do.call, duplicated, eval, evalq, get, grep, grepl, intersect,
## is.unsorted, lapply, mapply, match, mget, order, paste, pmax,
## pmax.int, pmin, pmin.int, rank, rbind, rownames, sapply,
## saveRDS, setdiff, table, tapply, union, unique, unsplit,
## which.max, which.min
## Loading required package: S4Vectors
##
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:utils':
##
## findMatches
## The following objects are masked from 'package:base':
##
## I, expand.grid, unname
## Loading required package: IRanges
##
## Attaching package: 'IRanges'
## The following object is masked from 'package:purrr':
##
## reduce
## Loading required package: GenomeInfoDb
library(InteractionSet)
## Loading required package: SummarizedExperiment
## Loading required package: MatrixGenerics
## Loading required package: matrixStats
##
## Attaching package: 'MatrixGenerics'
## The following objects are masked from 'package:matrixStats':
##
## colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse,
## colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
## colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs,
## colMads, colMaxs, colMeans2, colMedians, colMins, colOrderStats,
## colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds,
## colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
## colWeightedMeans, colWeightedMedians, colWeightedSds,
## colWeightedVars, rowAlls, rowAnyNAs, rowAnys, rowAvgsPerColSet,
## rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
## rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps,
## rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins,
## rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
## rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs,
## rowVars, rowWeightedMads, rowWeightedMeans, rowWeightedMedians,
## rowWeightedSds, rowWeightedVars
## Loading required package: Biobase
## Welcome to Bioconductor
##
## Vignettes contain introductory material; view with
## 'browseVignettes()'. To cite Bioconductor, see
## 'citation("Biobase")', and for packages 'citation("pkgname")'.
##
## Attaching package: 'Biobase'
## The following object is masked from 'package:MatrixGenerics':
##
## rowMedians
## The following objects are masked from 'package:matrixStats':
##
## anyMissing, rowMedians
library(HiCExperiment)
## Consider using the `HiContacts` package to perform advanced genomic operations
## on `HiCExperiment` objects.
##
## Read "Orchestrating Hi-C analysis with Bioconductor" online book to learn more:
## https://js2264.github.io/OHCA/
##
## Attaching package: 'HiCExperiment'
## The following object is masked from 'package:SummarizedExperiment':
##
## metadata<-
## The following object is masked from 'package:S4Vectors':
##
## metadata<-
## The following object is masked from 'package:ggplot2':
##
## resolution
library(HiContactsData)
## Loading required package: ExperimentHub
## Loading required package: AnnotationHub
## Loading required package: BiocFileCache
## Loading required package: dbplyr
##
## Attaching package: 'AnnotationHub'
## The following object is masked from 'package:Biobase':
##
## cache
library(multiHiCcompare)
##
## Attaching package: 'multiHiCcompare'
## The following object is masked from 'package:HiCExperiment':
##
## resolution
## The following object is masked from 'package:ggplot2':
##
## resolution
Workflow 1: Distance-dependent interactions across yeast mutants
This chapter illustrates how to:
- Compute P(s) of several samples and compare them
- Compute distance-adjusted correlation between Hi-C datasets with
HiCRep
- Perform differential interaction analysis between Hi-C datasets with
multiHiCcompare
We leverage seven yeast datasets in this notebook. They are all available from SRA:
-
SRR8769554
: WT yeast strain, G1 phase (rep1) -
SRR10687276
: WT yeast strain, G1 phase (rep12) -
SRR8769549
: WT yeast strain, G2/M phase (rep1) -
SRR10687281
: WT yeast strain, G2/M phase (rep12) -
SRR8769551
: wpl1 mutant yeast strain, G2/M phase (rep1) -
SRR10687278
: wpl1 mutant yeast strain, G2/M phase (rep2) -
SRR8769555
: wpl1/eco1 mutant yeast strain, G2/M phase
This notebook does not execute code when itβs rendered. Instead, the results and the plots have been locally computed and manually embedded in the notebook.
Recovering data from SRA
The easiest for this is to directly fetch files from SRA from their FTP server. We can do so using the base download.file
function.
# !! This code is not actually executed !!
dir.create('data')
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/004/SRR8769554/SRR8769554_1.fastq.gz", "data/WT_G1_WT_rep1_R1.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/004/SRR8769554/SRR8769554_2.fastq.gz", "data/WT_G1_WT_rep1_R2.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR106/076/SRR10687276/SRR10687276_1.fastq.gz", "data/WT_G1_WT_rep2_R1.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR106/076/SRR10687276/SRR10687276_2.fastq.gz", "data/WT_G1_WT_rep2_R2.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/009/SRR8769549/SRR8769549_1.fastq.gz", "data/WT_G2M_WT_rep1_R1.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/009/SRR8769549/SRR8769549_2.fastq.gz", "data/WT_G2M_WT_rep1_R2.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR106/081/SRR10687281/SRR10687281_1.fastq.gz", "data/WT_G2M_WT_rep2_R1.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR106/081/SRR10687281/SRR10687281_2.fastq.gz", "data/WT_G2M_WT_rep2_R2.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/001/SRR8769551/SRR8769551_1.fastq.gz", "data/wpl1_G2M_rep1_R1.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/001/SRR8769551/SRR8769551_2.fastq.gz", "data/wpl1_G2M_rep1_R2.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR106/078/SRR10687278/SRR10687278_1.fastq.gz", "data/wpl1_G2M_rep2_R1.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR106/078/SRR10687278/SRR10687278_2.fastq.gz", "data/wpl1_G2M_rep2_R2.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/005/SRR8769555/SRR8769555_1.fastq.gz", "data/wpl1eco1_G2M_R1.fastq.gz")
download.file("ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR876/005/SRR8769555/SRR8769555_2.fastq.gz", "data/wpl1eco1_G2M_R2.fastq.gz")
Processing reads with HiCool
We will map each pair of fastqs on the yeast genome reference (R64-1-1
) using HiCool
.
# !! This code is not actually executed !!
library(HiCool)
samples <- c(
'WT_G1_rep1',
'WT_G1_rep2',
'WT_G2M_rep1',
'WT_G2M_rep2',
'wpl1_G2M_rep1',
'wpl1_G2M_rep2',
'wpl1eco1_G2M'
)
purrr::map(samples, ~ HiCool(
r1 = paste0('data/', .x, '_R1.fastq.gz'),
r2 = paste0('data/', .x, '_R2.fastq.gz'),
genome = 'R64-1-1',
restriction = 'DpnII',
iterative = FALSE,
threads = 15,
output = 'data/HiCool/',
scratch = '/data/scratch/'
))
Processed samples are put in data/HiCool
directory. CoolFile
objects are pointers to individual contact matrices. We can create such objects by using the importHiCoolFolder
utility function.
cfs <- list(
WT_G1_rep1 = importHiCoolFolder('data/HiCool', 'GK8ISZ'),
WT_G1_rep2 = importHiCoolFolder('data/HiCool', 'SWZTO0'),
WT_G2M_rep1 = importHiCoolFolder('data/HiCool', '3KHHUE'),
WT_G2M_rep2 = importHiCoolFolder('data/HiCool', 'UVNG7M'),
wpl1_G2M_rep1 = importHiCoolFolder('data/HiCool', 'Q4KX6Z'),
wpl1_G2M_rep2 = importHiCoolFolder('data/HiCool', '3N0L25'),
wpl1eco1_G2M = importHiCoolFolder('data/HiCool', 'LHMXWE')
)
cfs
Now that these pointers have been defined, Hi-C contact matrices can be seamlessly imported in R with import
.
library(purrr)
library(HiCExperiment)
hics <- map(cfs, import)
hics
## $WT_G1_rep1
## `HiCExperiment` object with 5,454,145 contacts over 12,079 regions
## -------
## fileName: "../OHCA-data/HiCool/matrices/W303_G1_WT_rep1^mapped-S288c^GK8ISZ.mcool"
## focus: "whole genome"
## resolutions(5): 1000 2000 4000 8000 16000
## active resolution: 1000
## interactions: 3347524
## scores(2): count balanced
## topologicalFeatures: compartments(0) borders(0) loops(0) viewpoints(0)
## pairsFile: ../OHCA-data/HiCool/pairs/W303_G1_WT_rep1^mapped-S288c^GK8ISZ.pairs
## metadata(3): log args stats
##
## $WT_G1_rep2
## `HiCExperiment` object with 12,068,214 contacts over 12,079 regions
## -------
## fileName: "../OHCA-data/HiCool/matrices/W303_G1_WT_rep2^mapped-S288c^SWZTO0.mcool"
## focus: "whole genome"
## resolutions(5): 1000 2000 4000 8000 16000
## active resolution: 1000
## interactions: 6756099
## scores(2): count balanced
## topologicalFeatures: compartments(0) borders(0) loops(0) viewpoints(0)
## pairsFile: ../OHCA-data/HiCool/pairs/W303_G1_WT_rep2^mapped-S288c^SWZTO0.pairs
## metadata(3): log args stats
##
## ...
Plotting chromosome-wide matrices of merged replicates
We can merge replicates with the merge
function, and map
the plotMatrix
function over the resulting list of HiCExperiment
s.
library(HiContacts)
chr <- 'X'
merged_replicates <- list(
WT_G1 = merge(hics[[1]][chr], hics[[2]][chr]),
WT_G2M = merge(hics[[3]][chr], hics[[4]][chr]),
wpl1_G2M = merge(hics[[5]][chr], hics[[6]][chr]),
wpl1eco1_G2M = hics[[7]][chr]
)
library(dplyr)
library(ggplot2)
maps <- imap(merged_replicates, ~ plotMatrix(
.x, use.scores = 'balanced', limits = c(-3.5, -1.5), caption = FALSE
) + ggtitle(.y))
cowplot::plot_grid(plotlist = maps, nrow = 1)
We can already note that long-range contacts seem to increase in frequency, in G2/M vs G1, in wpl1 vs WT and in wpl1/eco1 vs wpl1.
Compute P(s) per replicate and plot it
Still using the map
function, we can compute average P(s) for each replicate.
Computation of the P(s) will take some time, as millions of pairs have to be imported in memory, but it will be accurate at the base resolution, rather than bin resolution from matrices.
Since matrices were imported after HiCool
processing with the importHiCoolFolder
, the associated .pairs
file has been automatically added to each HiCExperiment
object!
The computed P(s) is stored for each sample as a tibble
.
pairsFile(hics[[1]])
ps <- imap(hics, ~ distanceLaw(.x) |> mutate(sample = .y))
## Importing pairs file ../OHCA-data/HiCool/pairs/W303_G1_WT_rep1^mapped-S288c^GK8ISZ.pairs in memory. This may take a while...
## |===============================================================| 100% 318 MB
## Importing pairs file ../OHCA-data/HiCool/pairs/W303_G1_WT_rep2^mapped-S288c^SWZTO0.pairs in memory. This may take a while...
## |===============================================================| 100% 674 MB
## Importing pairs file ../OHCA-data/HiCool/pairs/W303_G2M_WT_rep1^mapped-S288c^3KHHUE.pairs in memory. This may take a while...
## |===============================================================| 100% 709 MB
## Importing pairs file ../OHCA-data/HiCool/pairs/W303_G2M_WT_rep2^mapped-S288c^UVNG7M.pairs in memory. This may take a while...
## |==============================================================| 100% 1683 MB
## Importing pairs file ../OHCA-data/HiCool/pairs/W303_G2M_wpl1_rep1^mapped-S288c^Q4KX6Z.pairs in memory. This may take a while...
## |==============================================================| 100% 1269 MB
## Importing pairs file ../OHCA-data/HiCool/pairs/W303_G2M_wpl1_rep2^mapped-S288c^3N0L25.pairs in memory. This may take a while...
## |==============================================================| 100% 1529 MB
## Importing pairs file ../OHCA-data/HiCool/pairs/W303_G2M_wpl1-eco1^mapped-S288c^LHMXWE.pairs in memory. This may take a while...
## |==============================================================| 100% 1036 MB
ps[[1]]
## # A tibble: 133 x 6
## binned_distance p norm_p norm_p_unity slope sample
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 1 0.000154 0.000154 249. 0 WT_G1_rep1
## 2 2 0.0000563 0.0000563 91.2 0.702 WT_G1_rep1
## 3 3 0.0000417 0.0000417 67.5 0.699 WT_G1_rep1
## 4 4 0.00000835 0.00000835 13.5 0.696 WT_G1_rep1
## 5 5 0.00000501 0.00000501 8.10 0.693 WT_G1_rep1
## 6 6 0.00000250 0.00000250 4.05 0.690 WT_G1_rep1
## # ... with 127 more rows
We can bind all tibbles
together and plot P(s) and their slope for each sample.
df <- list_rbind(ps)
plotPs(
df, aes(x = binned_distance, y = norm_p,
group = sample, color = sample)
)
plotPsSlope(
df, aes(x = binned_distance, y = slope,
group = sample, color = sample)
)
Correlation between replicates with hicrep
hicrep
is a popular package to compute stratum-adjusted correlations between Hi-C datasets. βStratumβ refers to the distance from the main diagonal: with increase distance from the main diagonal, interactions of the DNA polymer are bound to decrease. hicrep
computes a βper-stratumβ correlation score and computes a weighted average correlation for entire chromosomes.
We can check the documentation for hicrep
main function, get.scc
. This tells us that mat1
and mat2
n*n
intrachromosomal contact maps of raw counts
should be provided. Fortunately, HiCExperiment
objects can easily be coerced into actual dense matrices using as.matrix()
function.
Make sure to use the count
scores, which are required by hicrep
.
We can calculate the overall stratum-corrected correlation score over the chromosome IV
between the two G2M
WT replicates.
library(hicrep)
scc <- get.scc(
hics[['WT_G2M_rep1']]["IV"] |> as.matrix(sparse = TRUE, use.scores = 'count'),
hics[['WT_G2M_rep2']]["IV"] |> as.matrix(sparse = TRUE, use.scores = 'count'),
resol = 1000, h = 2, lbr = 5000, ubr = 50000
)
names(scc)
## [1] "corr" "wei" "scc" "std"
scc$scc
## [,1]
## [1,] 0.9785691
This can be generalized to all pairwise combinations of Hi-C datasets.
library(purrr)
library(dplyr)
library(ggplot2)
mats <- map(hics, ~ .x["IV"] |> as.matrix(use.scores = 'count', sparse = TRUE))
df <- map(1:7, function(i) {
map(1:7, function(j) {
data.frame(
i = names(hics)[i],
j = names(hics)[j],
scc = hicrep::get.scc(mats[[i]], mats[[j]], resol = 1000, h = 2, lbr = 5000, ubr = 200000)$scc
) |>
mutate(i = factor(i, names(cfs))) |>
mutate(j = factor(j, names(cfs)))
}) |> list_rbind()
}) |> list_rbind()
ggplot(df, aes(x = i, y = j, fill = scc)) +
geom_tile() +
scale_x_discrete(guide = guide_axis(angle = 90)) +
theme_bw() +
coord_fixed(ratio = 1) +
scale_fill_gradientn(colours = bgrColors())
We can even iterate over an extra level, to compute stratum-corrected correlation for all chromosomes. Here, we will only compute correlation scores between any sample and WT_G2M_rep1
sample.
BiocParallel::bplapply()
replaces purrr::map()
here, as it allows parallelization of independent correlation computation runs over multiple CPUs.
# Some chromosomes will be ignored as they are too small for this analysis
chrs <- c('II', 'IV', 'V', 'VII', 'VIII', 'IX', 'X', 'XI', 'XIII', 'XIV', 'XVI')
bpparam <- BiocParallel::MulticoreParam(workers = 6, progressbar = TRUE)
df <- BiocParallel::bplapply(chrs, function(CHR) {
mats <- map(hics, ~ .x[CHR] |> interactions() |> gi2cm('count') |> cm2matrix())
map(c(1, 2, 4, 5, 6, 7), function(j) {
data.frame(
chr = CHR,
i = "WT_G2M_rep1",
j = names(mats)[j],
dist = seq(5000, 200000, 1000),
scc = hicrep::get.scc(mats[["WT_G2M_rep1"]], mats[[j]], resol = 1000, h = 2, lbr = 5000, ubr = 200000)
) |> mutate(j = factor(j, names(mats)))
}) |> list_rbind()
}, BPPARAM = bpparam) |> list_rbind()
A tiny bit of data wrangling will allow us to plot the mean +/- confidence interval (90%) of stratum-adjusted correlations across the different chromosomes.
results <- group_by(df, j, dist) |>
summarize(
mean = Rmisc::CI(scc.corr, ci = 0.90)[2],
CI_up = Rmisc::CI(scc.corr, ci = 0.90)[1],
CI_down = Rmisc::CI(scc.corr, ci = 0.90)[3]
)
ggplot(results, aes(x = dist, y = mean, ymax = CI_up, ymin = CI_down)) +
geom_line(aes(col = j)) +
geom_ribbon(aes(fill = j), alpha = 0.2, col = NA) +
theme_bw() +
labs(x = "Stratum (genomic distance)", y = 'Stratum-corrected correlation')
Differential interaction (DI) analysis with multiHiCcompare
We will now focus on the chromosome XI
and identify differentially interacting (DI) loci between WT and wpl1 mutant in G2/M.
To do this, we can use the multiHiCcompare
package. The required input for the main make_hicexp()
function is a list
of raw counts for different samples/replicates, stored in data frames with four columns (chr
, start1
, start2
, count
).
Although this data structure does not correspond to a standard HiC format, it is easy to manipulate a HiCExperiment
object to coerce it into such structure.
library(multiHiCcompare)
hics_list <- map(hics, ~ .x['XI'] |>
zoom(2000) |>
as.data.frame() |>
select(start1, start2, count) |>
mutate(chr = 1) |>
relocate(chr)
)
mhicc <- make_hicexp(
data_list = hics_list[c(3, 4, 5, 6)],
groups = factor(c(1, 1, 2, 2)
), A.min = 1)
The mhicc
object contains data over the chromosome XI
binned at 2kb for two pairs of replicates (WT or wpl1
G2/M HiC, each in duplicates):
- Group1 contains WT data
- Group2 contains
wpl1
data
To identify differential interactions, the actual statistical comparison is performed with the hic_exactTest()
function.
results <- cyclic_loess(mhicc, span = 0.2) |> hic_exactTest()
## |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s
## |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=05s
results
## Hi-C Experiment Object
## 2 experimental groups
## Group 1 has 2 samples
## Group 2 has 2 samples
## Data has been normalized
The results()
output is not very informative as it is. It requires a little bit of reformatting to be able to extract valuable insights from it.
df <- left_join(results@hic_table, results(results)) |>
mutate(dist = region2 - region1) |>
mutate(group = case_when(
region1 < 430000 & region2 > 450000 ~ 'inter_arms',
region1 >= 430000 & region2 <= 450000 ~ 'at_centro',
TRUE ~ 'arms'
)) |>
filter(group %in% c('arms', 'inter_arms')) |>
mutate(sign = p.value <= 0.05 & abs(logFC) >= 1)
df
## chr region1 region2 D IF1 IF2 IF3 IF4 logFC logCPM p.value p.adj dist group sign
## 1 1 1 0 6.16 2.09 7.96 5.43 0.5401 4.81329 5.38e-01 7.94e-01 0 arms FALSE
## 1 1 2001 1 16.38 10.25 12.96 12.16 -0.2257 5.82484 7.00e-01 8.81e-01 2000 arms FALSE
## 1 1 4001 2 41.41 40.72 84.41 45.14 0.5064 7.69885 5.94e-02 2.16e-01 4000 arms FALSE
## 1 1 6001 3 22.26 30.51 73.83 48.48 1.2726 8.10243 6.48e-07 5.83e-05 6000 arms TRUE
## 1 1 8001 4 26.63 31.20 33.39 25.92 0.0998 7.55207 8.02e-01 9.34e-01 8000 arms FALSE
## ...
ggplot(df, aes(x = logFC, y = -log10(p.value), col = sign)) +
geom_point(size = 0.2) +
theme_bw() +
facet_wrap(~group) +
ylim(c(0, 6)) +
theme(legend.position = 'none') +
scale_color_manual(values = c('grey', 'black'))
In this volcano plot, we can visually appreciate the fold-change of interaction frequency in WT or wpl1
, for interactions constrained within the chromosome XI
arms (left) or spanning the chr. XI
centromere (right). This clearly highlights that interactions within arms are increased in wpl1
mutant while those spanning the centromere strongly decreased.
One of the strengths of HiContacts
is that it can be leveraged to visualize any quantification related to genomic interactions as a HiC heatmap, since plotMatrix
can take a GInteractions
object with any score saved in mcols
as input.
gis <- rename(df, seqnames1 = chr, start1 = region1, start2 = region2) |>
mutate(
seqnames2 = seqnames1,
end1 = start1 + 1999,
end2 = start2 + 1999
) |>
filter(abs(logFC) >= 1) |>
df2gi()
cowplot::plot_grid(
plotMatrix(merged_replicates[['WT_G2M']], use.scores = 'balanced', limits = c(-3.5, -1), caption = FALSE),
plotMatrix(merged_replicates[['wpl1_G2M']], use.scores = 'balanced', limits = c(-3.5, -1), caption = FALSE),
plotMatrix(gis, use.scores = 'logFC', scale = 'linear', limits = c(-2, 2), cmap = bgrColors()),
align = "hv", axis = 'tblr', nrow = 1
)
Session info
sessioninfo::session_info(include_base = TRUE)
## β Session info ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## setting value
## version R version 4.4.1 (2024-06-14)
## os Ubuntu 24.04.1 LTS
## system x86_64, linux-gnu
## ui X11
## language (EN)
## collate C
## ctype en_US.UTF-8
## tz America/New_York
## date 2024-10-30
## pandoc 2.7.3 @ /usr/bin/ (via rmarkdown)
##
## β Packages ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## package * version date (UTC) lib source
## abind 1.4-8 2024-09-12 [2] CRAN (R 4.4.1)
## aggregation 1.0.1 2018-01-25 [2] CRAN (R 4.4.1)
## AnnotationDbi 1.68.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## AnnotationHub * 3.14.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## base * 4.4.1 2024-09-25 [3] local
## Biobase * 2.66.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## BiocFileCache * 2.14.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## BiocGenerics * 0.52.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## BiocIO 1.16.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## BiocManager 1.30.25 2024-08-28 [2] CRAN (R 4.4.1)
## BiocParallel 1.40.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## BiocVersion 3.20.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## Biostrings 2.74.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## bit 4.5.0 2024-09-20 [2] CRAN (R 4.4.1)
## bit64 4.5.2 2024-09-22 [2] CRAN (R 4.4.1)
## blob 1.2.4 2023-03-17 [2] CRAN (R 4.4.1)
## cachem 1.1.0 2024-05-16 [2] CRAN (R 4.4.1)
## calibrate 1.7.7 2020-06-19 [2] CRAN (R 4.4.1)
## cli 3.6.3 2024-06-21 [2] CRAN (R 4.4.1)
## codetools 0.2-20 2024-03-31 [3] CRAN (R 4.4.1)
## colorspace 2.1-1 2024-07-26 [2] CRAN (R 4.4.1)
## compiler 4.4.1 2024-09-25 [3] local
## crayon 1.5.3 2024-06-20 [2] CRAN (R 4.4.1)
## curl 5.2.3 2024-09-20 [2] CRAN (R 4.4.1)
## data.table 1.16.2 2024-10-10 [2] CRAN (R 4.4.1)
## datasets * 4.4.1 2024-09-25 [3] local
## DBI 1.2.3 2024-06-02 [2] CRAN (R 4.4.1)
## dbplyr * 2.5.0 2024-03-19 [2] CRAN (R 4.4.1)
## DelayedArray 0.32.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## digest 0.6.37 2024-08-19 [2] CRAN (R 4.4.1)
## dplyr 1.1.4 2023-11-17 [2] CRAN (R 4.4.1)
## edgeR 4.4.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## evaluate 1.0.1 2024-10-10 [2] CRAN (R 4.4.1)
## ExperimentHub * 2.14.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## fansi 1.0.6 2023-12-08 [2] CRAN (R 4.4.1)
## fastmap 1.2.0 2024-05-15 [2] CRAN (R 4.4.1)
## filelock 1.0.3 2023-12-11 [2] CRAN (R 4.4.1)
## generics 0.1.3 2022-07-05 [2] CRAN (R 4.4.1)
## GenomeInfoDb * 1.42.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## GenomeInfoDbData 1.2.13 2024-10-01 [2] Bioconductor
## GenomicRanges * 1.58.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## ggplot2 * 3.5.1 2024-04-23 [2] CRAN (R 4.4.1)
## glue 1.8.0 2024-09-30 [2] CRAN (R 4.4.1)
## graphics * 4.4.1 2024-09-25 [3] local
## grDevices * 4.4.1 2024-09-25 [3] local
## grid 4.4.1 2024-09-25 [3] local
## gridExtra 2.3 2017-09-09 [2] CRAN (R 4.4.1)
## gtable 0.3.6 2024-10-25 [2] CRAN (R 4.4.1)
## gtools 3.9.5 2023-11-20 [2] CRAN (R 4.4.1)
## HiCcompare 1.28.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## HiCExperiment * 1.6.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## HiContactsData * 1.7.0 2024-10-26 [2] Bioconductor 3.20 (R 4.4.1)
## htmltools 0.5.8.1 2024-04-04 [2] CRAN (R 4.4.1)
## htmlwidgets 1.6.4 2023-12-06 [2] CRAN (R 4.4.1)
## httr 1.4.7 2023-08-15 [2] CRAN (R 4.4.1)
## InteractionSet * 1.34.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## IRanges * 2.40.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## jsonlite 1.8.9 2024-09-20 [2] CRAN (R 4.4.1)
## KEGGREST 1.46.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## KernSmooth 2.23-24 2024-05-17 [3] CRAN (R 4.4.1)
## knitr 1.48 2024-07-07 [2] CRAN (R 4.4.1)
## lattice 0.22-6 2024-03-20 [3] CRAN (R 4.4.1)
## lifecycle 1.0.4 2023-11-07 [2] CRAN (R 4.4.1)
## limma 3.62.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## locfit 1.5-9.10 2024-06-24 [2] CRAN (R 4.4.1)
## magrittr 2.0.3 2022-03-30 [2] CRAN (R 4.4.1)
## MASS 7.3-61 2024-06-13 [3] CRAN (R 4.4.1)
## Matrix 1.7-1 2024-10-18 [3] CRAN (R 4.4.1)
## MatrixGenerics * 1.18.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## matrixStats * 1.4.1 2024-09-08 [2] CRAN (R 4.4.1)
## memoise 2.0.1 2021-11-26 [2] CRAN (R 4.4.1)
## methods * 4.4.1 2024-09-25 [3] local
## mgcv 1.9-1 2023-12-21 [3] CRAN (R 4.4.1)
## multiHiCcompare * 1.24.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## munsell 0.5.1 2024-04-01 [2] CRAN (R 4.4.1)
## nlme 3.1-166 2024-08-14 [3] CRAN (R 4.4.1)
## parallel 4.4.1 2024-09-25 [3] local
## pbapply 1.7-2 2023-06-27 [2] CRAN (R 4.4.1)
## pheatmap 1.0.12 2019-01-04 [2] CRAN (R 4.4.1)
## pillar 1.9.0 2023-03-22 [2] CRAN (R 4.4.1)
## pkgconfig 2.0.3 2019-09-22 [2] CRAN (R 4.4.1)
## png 0.1-8 2022-11-29 [2] CRAN (R 4.4.1)
## purrr * 1.0.2 2023-08-10 [2] CRAN (R 4.4.1)
## qqman 0.1.9 2023-08-23 [2] CRAN (R 4.4.1)
## R6 2.5.1 2021-08-19 [2] CRAN (R 4.4.1)
## rappdirs 0.3.3 2021-01-31 [2] CRAN (R 4.4.1)
## RColorBrewer 1.1-3 2022-04-03 [2] CRAN (R 4.4.1)
## Rcpp 1.0.13 2024-07-17 [2] CRAN (R 4.4.1)
## rhdf5 2.50.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## rhdf5filters 1.18.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## Rhdf5lib 1.28.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## rlang 1.1.4 2024-06-04 [2] CRAN (R 4.4.1)
## rmarkdown 2.28 2024-08-17 [2] CRAN (R 4.4.1)
## RSQLite 2.3.7 2024-05-27 [2] CRAN (R 4.4.1)
## S4Arrays 1.6.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## S4Vectors * 0.44.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## scales 1.3.0 2023-11-28 [2] CRAN (R 4.4.1)
## sessioninfo 1.2.2 2021-12-06 [2] CRAN (R 4.4.1)
## SparseArray 1.6.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## splines 4.4.1 2024-09-25 [3] local
## statmod 1.5.0 2023-01-06 [2] CRAN (R 4.4.1)
## stats * 4.4.1 2024-09-25 [3] local
## stats4 * 4.4.1 2024-09-25 [3] local
## strawr 0.0.92 2024-07-16 [2] CRAN (R 4.4.1)
## SummarizedExperiment * 1.36.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## tibble 3.2.1 2023-03-20 [2] CRAN (R 4.4.1)
## tidyselect 1.2.1 2024-03-11 [2] CRAN (R 4.4.1)
## tools 4.4.1 2024-09-25 [3] local
## tzdb 0.4.0 2023-05-12 [2] CRAN (R 4.4.1)
## UCSC.utils 1.2.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## utf8 1.2.4 2023-10-22 [2] CRAN (R 4.4.1)
## utils * 4.4.1 2024-09-25 [3] local
## vctrs 0.6.5 2023-12-01 [2] CRAN (R 4.4.1)
## vroom 1.6.5 2023-12-05 [2] CRAN (R 4.4.1)
## withr 3.0.2 2024-10-28 [2] CRAN (R 4.4.1)
## xfun 0.48 2024-10-03 [2] CRAN (R 4.4.1)
## XVector 0.46.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
## yaml 2.3.10 2024-07-26 [2] CRAN (R 4.4.1)
## zlibbioc 1.52.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.1)
##
## [1] /home/biocbuild/bbs-3.20-books/tmpdir/RtmphzOvfD/Rinst2020235c565b68
## [2] /home/biocbuild/bbs-3.20-bioc/R/site-library
## [3] /home/biocbuild/bbs-3.20-bioc/R/library
##
## βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ