IntegrateChIP.Rmd
Gene expression is controlled by transcription factors (TFs), which binding to DNA recognition sites located near their target genes. Chromatin Immunoprecipitation Sequencing (ChIP-Seq) can be used to profile genome-wide protein–DNA interactions, such as identifying sites of TFs binding. Therefore, ChIP-Seq can be used to reveal mechanisms involved in differential gene regulation.
DEbPeak
implements functions to integrate RNA-seq and ChIP-seq, which can be used to investigate the direct and indirect targets of a TF, thus revealing the regulation network of gene expression.
The data used here contains RNA-seq and ChIP-seq datasets from RUNX represses Pmp22 to drive neurofibromagenesis:
# library
suppressWarnings(suppressMessages(library(DESeq2)))
suppressWarnings(suppressMessages(library(DEbPeak)))
# prepare count matrix and metadata
debchip.count.file <- system.file("extdata", "debchip_count.txt", package = "DEbPeak")
debchip.meta.file <- system.file("extdata", "debchip_meta.txt", package = "DEbPeak")
debchip.count.matrix <- read.table(file = debchip.count.file, header = T, sep = "\t")
debchip.meta.info <- read.table(file = debchip.meta.file, header = T)
# create DESeqDataSet object
debchip.dds <- DESeq2::DESeqDataSetFromMatrix(countData = debchip.count.matrix,
colData = debchip.meta.info,
design = ~condition)
## Warning in DESeqDataSet(se, design = design, ignoreRank): some variables in
## design formula are characters, converting to factors
# set control level
debchip.dds$condition <- relevel(debchip.dds$condition, ref = "NF")
# conduct differential expressed genes analysis
debchip.dds <- DESeq(debchip.dds)
## estimating size factors
## estimating dispersions
## gene-wise dispersion estimates
## mean-dispersion relationship
## final dispersion estimates
## fitting model and testing
# extract results
debchip.dds.results <- results(debchip.dds,contrast=c("condition",'RX','NF'))
debchip.dds.results.ordered <- debchip.dds.results[order(debchip.dds.results$log2FoldChange,decreasing = TRUE),]
head(debchip.dds.results.ordered)
## log2 fold change (MLE): condition RX vs NF
## Wald test p-value: condition RX vs NF
## DataFrame with 6 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## Sycp1 12.07541 7.15056 3.91075 1.82844 6.74840e-02 1.81006e-01
## Gm16532 10.07020 6.89407 1.74281 3.95573 7.63014e-05 7.17146e-04
## Hs3st4 18.88787 6.82852 1.42952 4.77679 1.78117e-06 2.83848e-05
## Nell1 34.13399 6.80718 1.34257 5.07027 3.97260e-07 7.79916e-06
## Sptssb 9.39376 6.78558 1.52948 4.43651 9.14275e-06 1.16684e-04
## Myo3a 7.19992 6.41077 1.74865 3.66612 2.46259e-04 1.94151e-03
Due to the high noise of ChIP-seq experiments, control samples can be used to remove possible nonspecific interactions. Besides control samples, replicates are another way to separate actual biological events from variability resulting from random chance. The peaks which have high consistency between replicates are likely to be genuine signals, and we call these peaks consensus peaks. In this step, we will get consensus peaks with MSPC when multiple peak files are available, but when there is only one peak file, we will use it directly (make sure this peak file contains five columns: “chr”, “start”, “stop”, “name”, “score”).
# get consensus peak
peak.file = system.file("extdata", "debchip_peaks.bed", package = "DEbPeak")
peak.df = GetConsensusPeak(peak.file = peak.file)
head(peak.df)
## chr start stop name score
## 1 chr13 51519018 51519164 chr13-5 27.6
## 2 chr13 21326999 21327145 chr13-6 25.2
## 3 chr5 151112840 151112986 chr5-2 22.3
## 4 chr11 104361891 104362037 chr11-98 21.8
## 5 chr11 70198551 70198697 chr11-88 21.3
## 6 chr6 29326952 29327098 chr6-4 20.8
Check the profle of consensus peaks:
# peak profile plot
peak.profile = PeakProfile(peak.df ,species="Mouse", by = "gene", region.type = "body", nbin = 800)
## >> preparing promoter regions... 2023-07-02 18时13分47秒
## >> preparing tag matrix... 2023-07-02 18时13分47秒
## >> preparing start_site regions by ... 2023-07-02 18时13分47秒
## >> preparing tag matrix... 2023-07-02 18时13分47秒
## >> generating figure... 2023-07-02 18时14分00秒
## >> done... 2023-07-02 18时14分00秒
## >> binning method is used...2023-07-02 18时14分00秒
## >> preparing start_site regions by gene... 2023-07-02 18时14分00秒
## >> preparing tag matrix by binning... 2023-07-02 18时14分00秒
## >> Running bootstrapping for tag matrix... 2023-07-02 18时14分05秒
## >> binning method is used...2023-07-02 18时14分05秒
## >> preparing body regions by gene... 2023-07-02 18时14分05秒
## >> preparing tag matrix by binning... 2023-07-02 18时14分05秒
## >> preparing matrix with extension from (TSS-20%)~(TTS+20%)... 2023-07-02 18时14分05秒
## >> 1 peaks(0.1536098%), having lengths smaller than 800bp, are filtered... 2023-07-02 18时14分08秒
## >> Running bootstrapping for tag matrix... 2023-07-02 18时14分45秒
peak.profile$profile.plot
Check the reads profile with deepTools:
ReadProfile(bw.folder = '/home/songyabing/R/learn/tmp/DEbPeak/deeptools/ChIP-seq', species = "Mouse",
deeptools.path = "~/anaconda3/bin",
out.folder = "/home/songyabing/R/learn/tmp/DEbPeak/deeptools/ChIP-seq")
In this step, we will perform peak annotation with ChIPseeker. This will include annotating peaks with its nearby genes, assigning genomic region of the peaks, et al.
# peak annotation
peak.anno = AnnoPeak(peak.df = peak.df,species = "Mouse",seq.style = "UCSC",up.dist = 20000,down.dist = 20000)
##
## >> preparing features information... 2023-07-02 18时14分47秒
## >> identifying nearest features... 2023-07-02 18时14分48秒
## >> calculating distance from peak to TSS... 2023-07-02 18时14分48秒
## >> assigning genomic annotation... 2023-07-02 18时14分48秒
## >> adding gene annotation... 2023-07-02 18时15分00秒
## 'select()' returned 1:many mapping between keys and columns
## >> assigning chromosome lengths 2023-07-02 18时15分00秒
## >> done... 2023-07-02 18时15分00秒
## Warning: Removed 6 rows containing non-finite values (`stat_count()`).
peak.anno.df = peak.anno$df
head(peak.anno.df)
## seqnames start end width strand name score
## 1 chr13 51519019 51519164 146 * chr13-5 27.6
## 2 chr13 21327000 21327145 146 * chr13-6 25.2
## 3 chr5 151112841 151112986 146 * chr5-2 22.3
## 4 chr11 104361892 104362037 146 * chr11-98 21.8
## 5 chr11 70198552 70198697 146 * chr11-88 21.3
## 6 chr6 29326953 29327098 146 * chr6-4 20.8
## annotation geneChr geneStart
## 1 Intron (ENSMUST00000021898.5/20418, intron 1 of 11) 1 51431041
## 2 Promoter (9-10kb) 1 21317258
## 3 Promoter (4-5kb) 2 151095421
## 4 Intron (ENSMUST00000106977.7/76719, intron 4 of 13) 3 104334921
## 5 Promoter (14-15kb) 3 70212752
## 6 Promoter (7-8kb) 4 29319199
## geneEnd geneLength geneStrand geneId transcriptId distanceToTSS
## 1 51567084 136044 2 20418 ENSMUST00000021898.5 47920
## 2 21319624 2367 1 75512 ENSMUST00000136668.1 9742
## 3 151108735 13315 2 243362 ENSMUST00000202866.1 -4106
## 4 104341299 6379 2 76719 ENSMUST00000069188.6 -20593
## 5 70216413 3662 1 216867 ENSMUST00000126388.7 -14055
## 6 29335854 16656 1 330277 ENSMUST00000166462.1 7754
## ENSEMBL SYMBOL
## 1 ENSMUSG00000021448 Shc3
## 2 ENSMUSG00000004341 Gpx6
## 3 ENSMUSG00000016128 Stard13
## 4 ENSMUSG00000018412 Kansl1
## 5 ENSMUSG00000040938 Slc16a11
## 6 ENSMUSG00000039742 Fam71f1
## GENENAME
## 1 src homology 2 domain-containing transforming protein C3
## 2 glutathione peroxidase 6
## 3 StAR-related lipid transfer (START) domain containing 13
## 4 KAT8 regulatory NSL complex subunit 1
## 5 solute carrier family 16 (monocarboxylic acid transporters), member 11
## 6 family with sequence similarity 71, member F1
## anno
## 1 Intron
## 2 Promoter
## 3 Promoter
## 4 Intron
## 5 Promoter
## 6 Promoter
peak.anno$plots
The above pie plot is not based on ggplot2
, here we provide function to create pie plot based on ggplot2
:
PeakAnnoPie(peak.anno$anno.obj)
Here, we will perform de novo motif discovery to illustrate the binding motif:
# this step is time consuming!
MotifDiscovery(peak.df = peak.df, genome = '/path/to/genome.fa',
streme.path = "~/data/software/meme-5.5.2/bin/streme",
samtools.path = "/home/songyabing/data/software/samtools-1.17/samtools",
out.folder = "/path/to/output", show.html = FALSE)
# after running, there will be a browser pop-up window to show the results.
In this step, we will integrate ChIP-seq and RNA-seq to get plausible direct targets of TF (in this example, Runx). ### Integrate
debchip.res = DEbPeak(de.res = debchip.dds.results.ordered, peak.res = peak.anno.df, peak.anno.key = "Promoter", merge.key="SYMBOL", species = "Mouse")
## Differential expression analysis with DESeq2!
head(debchip.res)
## SYMBOL geneId Peak annotation anno
## 1 0610012G03Rik <NA> <NA> <NA> <NA>
## 2 1110002J07Rik 68488 chr10:66905070-66905215 Promoter (12-13kb) Promoter
## 3 1110008P14Rik <NA> <NA> <NA> <NA>
## 4 1110032F04Rik <NA> <NA> <NA> <NA>
## 5 1500009C09Rik <NA> <NA> <NA> <NA>
## 6 1500011B03Rik <NA> <NA> <NA> <NA>
## ENSEMBL GENENAME log2FoldChange abundance signif
## 1 <NA> <NA> 1.837668 59.179193 3.073773
## 2 <NA> RIKEN cDNA 1110002J07 gene NA NA NA
## 3 <NA> <NA> 1.013546 125.765543 2.277566
## 4 <NA> <NA> 2.935223 89.091244 4.714179
## 5 <NA> <NA> 3.183848 9.432253 1.492741
## 6 <NA> <NA> 1.058984 227.077738 2.656922
## regulation Type
## 1 Up_regulated UP
## 2 <NA> Peak
## 3 Up_regulated UP
## 4 Up_regulated UP
## 5 Up_regulated UP
## 6 Up_regulated UP
# DE and ChIP venn plot
# debchip.plot = PlotDEbPeak(debchip.res, peak.type = "ChIP", show_percentage=FALSE)
# debchip.plot
debchip.plot = InteVenn(inte.res = debchip.res, inte.type = "DEbPeak", peak.type = "ChIP",
peak.mode = "consensus", gene.col = "SYMBOL",show_percentage = FALSE)
debchip.plot
There are five categories for users to choose to perform functional enrichment: UP
, Peak
, DOWN
, DOWNbPeak
, UPbPeak
. Here, we will use DOWNbPeak
and UPbPeak
as examples.
# functional enrichment on direct targets
# debchip.up.fe.results = DEbPeakFE(de.peak = debchip.res, peak.fe.key = "UPbPeak",
# gene.type = "ENTREZID", species="Mouse",save = F)
debchip.up.fe.results = InteFE(inte.res = debchip.res, fe.key = "UPbPeak", inte.type = "DEbPeak",
gene.type = "ENTREZID", species="Mouse",save = F)
## conduct ALL GO enrichment analysis on: UPbPeak
## wrong orderBy parameter; set to default `orderBy = "x"`
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
## wrong orderBy parameter; set to default `orderBy = "x"`
##
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
## wrong orderBy parameter; set to default `orderBy = "x"`
##
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
The results:
# the result table
head(debchip.up.fe.results[["GO"]][["table"]])
## ONTOLOGY ID Description
## GO:0032288 BP GO:0032288 myelin assembly
## GO:0019233 BP GO:0019233 sensory perception of pain
## GO:0043951 BP GO:0043951 negative regulation of cAMP-mediated signaling
## GO:0022011 BP GO:0022011 myelination in peripheral nervous system
## GO:0032292 BP GO:0032292 peripheral nervous system axon ensheathment
## GO:0014044 BP GO:0014044 Schwann cell development
## GeneRatio BgRatio pvalue p.adjust qvalue
## GO:0032288 2/21 23/23328 0.0001930551 0.02159856 0.01416299
## GO:0019233 3/21 146/23328 0.0002940462 0.02159856 0.01416299
## GO:0043951 2/21 30/23328 0.0003306741 0.02159856 0.01416299
## GO:0022011 2/21 31/23328 0.0003532875 0.02159856 0.01416299
## GO:0032292 2/21 31/23328 0.0003532875 0.02159856 0.01416299
## GO:0014044 2/21 34/23328 0.0004255310 0.02159856 0.01416299
## geneID Count
## GO:0032288 Pmp22/Prx 2
## GO:0019233 Kcnip3/Npy2r/Prx 3
## GO:0043951 Npy2r/Rnf157 2
## GO:0022011 Pmp22/Prx 2
## GO:0032292 Pmp22/Prx 2
## GO:0014044 Pmp22/Prx 2
# the result plot
debchip.up.fe.results[["GO"]][["plot"]]
# functional enrichment on direct targets
# debchip.down.fe.results = DEbPeakFE(de.peak = debchip.res, peak.fe.key = "DOWNbPeak",
# gene.type = "ENTREZID", species="Mouse",save = F)
debchip.down.fe.results = InteFE(inte.res = debchip.res, fe.key = "DOWNbPeak", inte.type = "DEbPeak",
gene.type = "ENTREZID", species="Mouse",save = F)
## conduct ALL GO enrichment analysis on: DOWNbPeak
## wrong orderBy parameter; set to default `orderBy = "x"`
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
## wrong orderBy parameter; set to default `orderBy = "x"`
##
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
The results:
# the result table
head(debchip.down.fe.results[["GO"]][["table"]])
## ONTOLOGY ID Description
## GO:0010810 BP GO:0010810 regulation of cell-substrate adhesion
## GO:0045785 BP GO:0045785 positive regulation of cell adhesion
## GO:0007162 BP GO:0007162 negative regulation of cell adhesion
## GO:0030198 BP GO:0030198 extracellular matrix organization
## GO:0043062 BP GO:0043062 extracellular structure organization
## GO:0051250 BP GO:0051250 negative regulation of lymphocyte activation
## GeneRatio BgRatio pvalue p.adjust qvalue
## GO:0010810 5/33 214/23328 1.193628e-05 0.01428434 0.008185655
## GO:0045785 6/33 435/23328 2.935433e-05 0.01428434 0.008185655
## GO:0007162 5/33 290/23328 5.117751e-05 0.01428434 0.008185655
## GO:0030198 5/33 302/23328 6.201521e-05 0.01428434 0.008185655
## GO:0043062 5/33 303/23328 6.299252e-05 0.01428434 0.008185655
## GO:0051250 4/33 158/23328 7.112535e-05 0.01428434 0.008185655
## geneID Count
## GO:0010810 Col8a1/Fbln2/Mmp14/Postn/Sdc4 5
## GO:0045785 Col8a1/Fbln2/Il4ra/Ptpn22/Sdc4/Tnfsf13b 6
## GO:0007162 Il4ra/Mmp14/Postn/Ptpn22/Sdc4 5
## GO:0030198 Bcl3/Col8a1/Fbln2/Mmp14/Postn 5
## GO:0043062 Bcl3/Col8a1/Fbln2/Mmp14/Postn 5
## GO:0051250 Il4ra/Lyn/Ptpn22/Sdc4 4
# the result plot
debchip.down.fe.results[["GO"]][["plot"]]
Save results for downstream analysis:
save.image(file = "/home/songyabing/R/learn/tmp/DEbPeak/RNAandChIP.RData")
## R version 4.0.3 (2020-10-10)
## Platform: x86_64-conda-linux-gnu (64-bit)
## Running under: CentOS Linux 7 (Core)
##
## Matrix products: default
## BLAS/LAPACK: /home/softwares/anaconda3/envs/r4.0/lib/libopenblasp-r0.3.12.so
##
## locale:
## [1] LC_CTYPE=zh_CN.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=zh_CN.UTF-8 LC_COLLATE=zh_CN.UTF-8
## [5] LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES=zh_CN.UTF-8
## [7] LC_PAPER=zh_CN.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] org.Mm.eg.db_3.12.0
## [2] TxDb.Mmusculus.UCSC.mm10.knownGene_3.10.0
## [3] GenomicFeatures_1.42.2
## [4] AnnotationDbi_1.52.0
## [5] DEbPeak_1.4.0
## [6] DESeq2_1.30.1
## [7] SummarizedExperiment_1.20.0
## [8] Biobase_2.50.0
## [9] MatrixGenerics_1.2.1
## [10] matrixStats_0.58.0
## [11] GenomicRanges_1.42.0
## [12] GenomeInfoDb_1.26.7
## [13] IRanges_2.24.1
## [14] S4Vectors_0.28.1
## [15] BiocGenerics_0.42.0
##
## loaded via a namespace (and not attached):
## [1] rsvd_1.0.3
## [2] ggvenn_0.1.9
## [3] apeglm_1.12.0
## [4] Rsamtools_2.6.0
## [5] rsvg_2.1
## [6] foreach_1.5.1
## [7] rprojroot_2.0.2
## [8] crayon_1.4.1
## [9] V8_3.4.2
## [10] MASS_7.3-58
## [11] nlme_3.1-152
## [12] backports_1.2.1
## [13] sva_3.38.0
## [14] GOSemSim_2.25.0
## [15] rlang_1.1.0
## [16] XVector_0.30.0
## [17] readxl_1.4.2
## [18] irlba_2.3.5
## [19] limma_3.46.0
## [20] GOstats_2.56.0
## [21] BiocParallel_1.24.1
## [22] rjson_0.2.20
## [23] bit64_4.0.5
## [24] glue_1.6.2
## [25] DiffBind_3.0.15
## [26] mixsqp_0.3-43
## [27] pheatmap_1.0.12
## [28] parallel_4.0.3
## [29] DEFormats_1.18.0
## [30] base64url_1.4
## [31] tcltk_4.0.3
## [32] DOSE_3.23.2
## [33] haven_2.5.2
## [34] tidyselect_1.2.0
## [35] rio_0.5.27
## [36] XML_3.99-0.6
## [37] tidyr_1.3.0
## [38] ggpubr_0.4.0
## [39] GenomicAlignments_1.26.0
## [40] xtable_1.8-4
## [41] ggnetwork_0.5.12
## [42] magrittr_2.0.3
## [43] evaluate_0.14
## [44] ggplot2_3.4.2
## [45] cli_3.6.1
## [46] zlibbioc_1.36.0
## [47] hwriter_1.3.2
## [48] rstudioapi_0.14
## [49] bslib_0.3.1
## [50] GreyListChIP_1.22.0
## [51] fastmatch_1.1-3
## [52] BiocSingular_1.6.0
## [53] xfun_0.30
## [54] askpass_1.1
## [55] clue_0.3-59
## [56] gson_0.0.9
## [57] cluster_2.1.1
## [58] caTools_1.18.2
## [59] tidygraph_1.2.0
## [60] tibble_3.2.1
## [61] ggrepel_0.9.1
## [62] Biostrings_2.58.0
## [63] png_0.1-7
## [64] withr_2.5.0
## [65] bitops_1.0-6
## [66] ggforce_0.3.3
## [67] RBGL_1.66.0
## [68] plyr_1.8.6
## [69] cellranger_1.1.0
## [70] GSEABase_1.52.1
## [71] pcaPP_2.0-1
## [72] dqrng_0.2.1
## [73] coda_0.19-4
## [74] pillar_1.9.0
## [75] gplots_3.1.1
## [76] GlobalOptions_0.1.2
## [77] cachem_1.0.4
## [78] fs_1.5.0
## [79] GetoptLong_1.0.5
## [80] clusterProfiler_4.7.1
## [81] DelayedMatrixStats_1.12.3
## [82] vctrs_0.6.2
## [83] generics_0.1.0
## [84] plot3D_1.4
## [85] tools_4.0.3
## [86] foreign_0.8-81
## [87] NOISeq_2.34.0
## [88] munsell_0.5.0
## [89] tweenr_1.0.2
## [90] fgsea_1.16.0
## [91] DelayedArray_0.16.3
## [92] fastmap_1.1.0
## [93] compiler_4.0.3
## [94] abind_1.4-5
## [95] rtracklayer_1.50.0
## [96] TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2
## [97] GenomeInfoDbData_1.2.4
## [98] gridExtra_2.3
## [99] edgeR_3.32.1
## [100] lattice_0.20-45
## [101] ggnewscale_0.4.7
## [102] AnnotationForge_1.32.0
## [103] utf8_1.2.1
## [104] dplyr_1.1.2
## [105] BiocFileCache_1.14.0
## [106] jsonlite_1.8.4
## [107] scales_1.2.1
## [108] graph_1.68.0
## [109] carData_3.0-4
## [110] sparseMatrixStats_1.2.1
## [111] TFEA.ChIP_1.10.0
## [112] genefilter_1.72.1
## [113] car_3.0-11
## [114] doParallel_1.0.16
## [115] latticeExtra_0.6-29
## [116] R.utils_2.12.0
## [117] brew_1.0-6
## [118] checkmate_2.0.0
## [119] rmarkdown_2.14
## [120] openxlsx_4.2.3
## [121] pkgdown_1.6.1
## [122] cowplot_1.1.1
## [123] textshaping_0.3.6
## [124] forcats_1.0.0
## [125] downloader_0.4
## [126] BSgenome_1.58.0
## [127] igraph_1.4.99.9024
## [128] survival_3.2-10
## [129] numDeriv_2016.8-1.1
## [130] yaml_2.2.1
## [131] plotrix_3.8-2
## [132] systemfonts_1.0.4
## [133] ashr_2.2-47
## [134] SQUAREM_2021.1
## [135] htmltools_0.5.2
## [136] memoise_2.0.0
## [137] VariantAnnotation_1.36.0
## [138] locfit_1.5-9.4
## [139] graphlayouts_0.7.1
## [140] batchtools_0.9.15
## [141] PCAtools_2.2.0
## [142] viridisLite_0.4.0
## [143] rrcov_1.7-0
## [144] digest_0.6.27
## [145] assertthat_0.2.1
## [146] rappdirs_0.3.3
## [147] emdbook_1.3.12
## [148] RSQLite_2.2.5
## [149] amap_0.8-18
## [150] yulab.utils_0.0.4
## [151] debugme_1.1.0
## [152] misc3d_0.9-1
## [153] data.table_1.14.2
## [154] blob_1.2.1
## [155] R.oo_1.24.0
## [156] ragg_0.4.0
## [157] labeling_0.4.2
## [158] splines_4.0.3
## [159] ggupset_0.3.0
## [160] RCurl_1.98-1.3
## [161] broom_1.0.4
## [162] hms_1.1.3
## [163] colorspace_2.0-0
## [164] BiocManager_1.30.16
## [165] shape_1.4.6
## [166] sass_0.4.1
## [167] GEOquery_2.58.0
## [168] Rcpp_1.0.9
## [169] mvtnorm_1.1-2
## [170] circlize_0.4.15
## [171] enrichplot_1.10.2
## [172] fansi_0.4.2
## [173] tzdb_0.3.0
## [174] truncnorm_1.0-8
## [175] ChIPseeker_1.33.0.900
## [176] R6_2.5.0
## [177] grid_4.0.3
## [178] lifecycle_1.0.3
## [179] ShortRead_1.48.0
## [180] zip_2.1.1
## [181] curl_4.3
## [182] ggsignif_0.6.3
## [183] jquerylib_0.1.3
## [184] robustbase_0.95-0
## [185] DO.db_2.9
## [186] Matrix_1.5-4
## [187] qvalue_2.22.0
## [188] desc_1.3.0
## [189] org.Hs.eg.db_3.12.0
## [190] RColorBrewer_1.1-2
## [191] iterators_1.0.13
## [192] stringr_1.5.0
## [193] DOT_0.1
## [194] ggpie_0.2.5
## [195] beachmat_2.6.4
## [196] polyclip_1.10-0
## [197] biomaRt_2.46.3
## [198] purrr_1.0.1
## [199] shadowtext_0.0.9
## [200] gridGraphics_0.5-1
## [201] mgcv_1.8-34
## [202] ComplexHeatmap_2.13.1
## [203] openssl_1.4.3
## [204] patchwork_1.0.0
## [205] bdsmatrix_1.3-4
## [206] codetools_0.2-18
## [207] invgamma_1.1
## [208] GO.db_3.12.1
## [209] gtools_3.8.2
## [210] prettyunits_1.1.1
## [211] dbplyr_2.3.2
## [212] R.methodsS3_1.8.1
## [213] gtable_0.3.0
## [214] DBI_1.1.1
## [215] highr_0.8
## [216] ggfun_0.0.6
## [217] httr_1.4.5
## [218] KernSmooth_2.23-18
## [219] stringi_1.5.3
## [220] progress_1.2.2
## [221] reshape2_1.4.4
## [222] farver_2.1.0
## [223] annotate_1.68.0
## [224] viridis_0.6.1
## [225] Rgraphviz_2.34.0
## [226] xml2_1.3.4
## [227] bbmle_1.0.24
## [228] systemPipeR_1.24.3
## [229] boot_1.3-28
## [230] readr_2.1.4
## [231] geneplotter_1.68.0
## [232] ggplotify_0.1.0
## [233] Category_2.56.0
## [234] DEoptimR_1.0-11
## [235] bit_4.0.4
## [236] scatterpie_0.1.7
## [237] jpeg_0.1-8.1
## [238] ggraph_2.0.5
## [239] pkgconfig_2.0.3
## [240] rstatix_0.7.0
## [241] knitr_1.37