LRBaseDbi, LRBase.XXX.eg.db, and scTensor packagescTensor 2.2.0
Due to the rapid development of single-cell RNA-Seq (scRNA-Seq) technologies, wide variety of cell types such as multiple organs of a healthy person, stem cell niche and cancer stem cell have been found. Such complex systems are composed of communication between cells (cell-cell interaction or CCI).
Many CCI studies are based on the ligand-receptor (L-R)-pair list of FANTOM5 project1 Jordan A. Ramilowski, A draft network of ligand-receptor-mediated multicellular signaling in human, Nature Communications, 2015 as the evidence of CCI (http://fantom.gsc.riken.jp/5/suppl/Ramilowski_et_al_2015/data/PairsLigRec.txt). The project proposed the L-R-candidate genes by following two reasons.
The project also merged the data with previous L-R database such as IUPHAR/DLRP/HPMR and filter out the list without PMIDs.
Besides, the recent L-R databases such as CellPhoneDB and SingleCellSignalR manually curated L-R pairs, which are not listed in IUPHAR/DLRP/HPMR.
In Bader Laboratory, many putative L-R databases are predicted by their standards.
In our framework, we expanded such L-R databases for 134 organisms based on the ortholog relationships. We implemented such a framework as multiple R/Bioconductor annotation packages for sustainable maintenance (LRBaseDbi and LRBase.XXX.eg.db-type packages (Figure 1). XXX is the abbreviation of the scientific name of organisms such as LRBase.Hsa.eg.db for L-R database of Homo sapiens. Besides, we also developed scTensor, which is a method to detect CCI and the CCI-related L-R pairs simultaneously. This document provides the way to use LRBaseDbi, LRBase.XXX.eg.db-type packages, and scTensor package.
Figure 1 : Workflow of L-R-related packages
To create the L-R-list of 134 organisms, we introduced 36 approarches including known/putative L-R pairing. Please see the evidence code of lrbase-workflow, which is the Snakemake workflow to create LRBase.XXX.eg.db. https://github.com/rikenbit/lrbase-workflow
Some data access functions are available for LRBase.XXX.eg.db-type packages.
Any data table are retrieved by 4 functions defined by
AnnotationDbi; columns, keytypes, keys, and select
and commonly implemented by LRBaseDbi package. columns
returns the rows which we can retrieve in LRBase.XXX.eg.db-type packages.
keytypes returns the rows which can be used as the optional parameter in
keys and select functions against LRBase.XXX.eg.db-type packages. keys
function returns the value of keytype. select function returns the rows in
particular columns, which are having user-specified keys. This function returns
the result as a dataframe. See the vignette of AnnotationDbi
for more details.
## Loading required package: LRBase.Hsa.eg.db## Loading required package: LRBaseDbicolumns(LRBase.Hsa.eg.db)## [1] "GENEID_L" "GENEID_R" "SOURCEDB" "SOURCEID"keytypes(LRBase.Hsa.eg.db)## [1] "GENEID_L" "GENEID_R" "SOURCEDB" "SOURCEID"key_HSA <- keys(LRBase.Hsa.eg.db, keytype="GENEID_L")
head(select(LRBase.Hsa.eg.db, keys=key_HSA[1:2],
            columns=c("GENEID_L", "GENEID_R"), keytype="GENEID_L"))##   GENEID_L GENEID_R
## 1      335       19
## 2      338       19
## 3      335      102
## 4      338      102
## 5      338      154
## 6      338      160Other additional functions like species, nomenclature, and listDatabases
are available. In each LRBase.XXX.eg.db-type package, species function
returns the common name and nomenclature returns the scientific name.
listDatabases function returns the source of data. dbInfo returns the
information of the package. dbfile returns the directory where sqlite
file is stored. dbschema returns the schema of the database. dbconn returns
the connection to the sqlite database.
lrPackageName(LRBase.Hsa.eg.db)## [1] "LRBase.Hsa.eg.db"lrNomenclature(LRBase.Hsa.eg.db)## [1] "Homo sapiens"species(LRBase.Hsa.eg.db)## [1] "Human"lrListDatabases(LRBase.Hsa.eg.db)##             SOURCEDB
## 1   SWISSPROT_STRING
## 2      TREMBL_STRING
## 3     SWISSPROT_HPRD
## 4        TREMBL_HPRD
## 5             IUPHAR
## 6               DLRP
## 7               HPMR
## 8            FANTOM5
## 9        CELLPHONEDB
## 10          BADERLAB
## 11 SINGLECELLSIGNALRlrVersion(LRBase.Hsa.eg.db)##        NAME VALUE
## 1 LRVERSION  2018dbInfo(LRBase.Hsa.eg.db)##               NAME                                              VALUE
## 1       SOURCEDATE                                         2020-09-07
## 2      SOURCENAME1                                               DLRP
## 3      SOURCENAME2                                             IUPHAR
## 4      SOURCENAME3                                               HPMR
## 5      SOURCENAME4                                        CELLPHONEDB
## 6      SOURCENAME5                                  SINGLECELLSIGNALR
## 7      SOURCENAME6                                            FANTOM5
## 8      SOURCENAME7                                           BADERLAB
## 9      SOURCENAME8                                          SWISSPROT
## 10     SOURCENAME9                                               HPRD
## 11    SOURCENAME10                                             TREMBL
## 12    SOURCENAME11                                             STRING
## 13      SOURCEURL1          https://dip.doe-mbi.ucla.edu/dip/DLRP.cgi
## 14      SOURCEURL2   https://www.guidetopharmacology.org/download.jsp
## 15      SOURCEURL3                                         SOURCEURL3
## 16      SOURCEURL4                                         SOURCEURL4
## 17      SOURCEURL5                                         SOURCEURL5
## 18      SOURCEURL6                                         SOURCEURL6
## 19      SOURCEURL7                                         SOURCEURL7
## 20      SOURCEURL8 http://www.uniprot.org/uniprot/?query=reviewed:yes
## 21      SOURCEURL9                           http://hprd.org/download
## 22     SOURCEURL10  http://www.uniprot.org/uniprot/?query=reviewed:no
## 23     SOURCEURL11              https://string-db.org/cgi/download.pl
## 24        DBSCHEMA                                   LRBase.Hsa.eg.db
## 25 DBSCHEMAVERSION                                                1.0
## 26        ORGANISM                                       Homo sapiens
## 27         SPECIES                                              Human
## 28         package                                      AnnotationDbi
## 29         Db type                                           LRBaseDb
## 30       LRVERSION                                               2018
## 31           TAXID                                               9606dbfile(LRBase.Hsa.eg.db)## [1] "/home/biocbuild/bbs-3.13-bioc/R/library/LRBase.Hsa.eg.db/extdata/LRBase.Hsa.eg.db.sqlite"dbschema(LRBase.Hsa.eg.db)## [1] "CREATE TABLE `METADATA` (\n  `NAME` TEXT,\n  `VALUE` TEXT\n)"                                                 
## [2] "CREATE TABLE `DATA` (\n  `GENEID_L` INTEGER,\n  `GENEID_R` INTEGER,\n  `SOURCEID` TEXT,\n  `SOURCEDB` TEXT\n)"dbconn(LRBase.Hsa.eg.db)## <SQLiteConnection>
##   Path: /home/biocbuild/bbs-3.13-bioc/R/library/LRBase.Hsa.eg.db/extdata/LRBase.Hsa.eg.db.sqlite
##   Extensions: TRUECombined with dbGetQuery function of RSQLite package,
more complicated queries also can be submitted.
suppressPackageStartupMessages(library("RSQLite"))
dbGetQuery(dbconn(LRBase.Hsa.eg.db),
  "SELECT * FROM DATA WHERE GENEID_L = '9068' AND GENEID_R = '14' LIMIT 10")## [1] GENEID_L GENEID_R SOURCEID SOURCEDB
## <0 rows> (or 0-length row.names)LRBaseDbi regulates the class definition of LRBaseDb object
instantiated from LRBaseDb-class. Besides, LRBaseDbi
the package generates user’s original LRBase.XXX.eg.db-type packages by
makeLRBasePackage function. This function is inspired by our previous package
MeSHDbi, which constructs user’s original MeSH.XXX.eg.db-type
packages. Here we call this function “meta”-packaging. The 12
LRBase.XXX.eg.db-type packages described above are also generated by this
“meta”-packaging. In this case, the only user have to specify are 1. an L-R-list
containing the columns “GENEID_L” (ligand NCBI Gene IDs) and “GENEID_R”
(receptor NCBI Gene IDs) and 2. a meta information table describing the L-R-list.
makeLRBasePackage function generates LRBase.XXX.eg.db like below. The gene
identifier is limited as NCBI Gene ID for now.
example("makeLRBasePackage")## 
## mkLRBP> if(interactive()){
## mkLRBP+     ## makeLRBasePackage enable users to construct
## mkLRBP+     ## user's own custom LRBase package
## mkLRBP+     data(FANTOM5)
## mkLRBP+     head(FANTOM5)
## mkLRBP+ 
## mkLRBP+     # We are also needed to prepare meta data as follows.
## mkLRBP+     data(metaFANTOM5)
## mkLRBP+     metaFANTOM5
## mkLRBP+ 
## mkLRBP+     ## sets up a temporary directory for this example
## mkLRBP+     ## (users won't need to do this step)
## mkLRBP+     tmp <- tempfile()
## mkLRBP+     dir.create(tmp)
## mkLRBP+ 
## mkLRBP+     ## makes an Organism package for human called Homo.sapiens
## mkLRBP+     makeLRBasePackage(pkgname = "FANTOM5.Hsa.eg.db",
## mkLRBP+         data = FANTOM5,
## mkLRBP+         metadata = metaFANTOM5,
## mkLRBP+         organism = "Homo sapiens",
## mkLRBP+         pkgtitle="An annotation package for the LRBaseDb object",
## mkLRBP+         pkgdescription=paste("Contains the LRBaseDb object",
## mkLRBP+                 "to access data from several related annotation packages."),
## mkLRBP+         version = "0.99.0",
## mkLRBP+         maintainer = "Koki Tsuyuzaki <k.t.the-answer@hotmail.co.jp>",
## mkLRBP+         author = "Koki Tsuyuzaki",
## mkLRBP+         destDir = tmp,
## mkLRBP+         license="Artistic-2.0")
## mkLRBP+ }Although any package name is acceptable, note that if the organism that user summarized L-R-list is also described above (Table ??), same XXX-character is recommended. This is because of the HTML report function described later identifies the XXX-character and if the XXX is corresponding to the 12 organisms, the gene annotation of the generated HTML report will become rich.
Combined with LRBase.XXX.eg.db-type package and user’s gene expression matrix of scRNA-Seq, scTensor detects CCIs and generates HTML reports for exploratory data inspection. The algorithm of scTensor is as follows.
Firstly, scTensor calculates the celltype-level mean vectors, searches the corresponding pair of genes in the row names of the matrix, and extracted as tow vectors.
Next, the cell type-level mean vectors of ligand expression and that of receptor expression are multiplied as outer product and converted to cell type \(\times\) cell type matrix. Here, the multiple matrices can be represented as a three-order “tensor” (Ligand-Cell * Receptor-Cell * L-R-Pair). scTensor decomposes the tensor into a small tensor (core tensor) and two factor matrices. Tensor decomposition is very similar to the matrix decomposition like PCA (principal component analysis). The core tensor is similar to the eigenvalue of PCA; this means that how much the pattern is outstanding. Likewise, three matrices are similar to the PC scores/loadings of PCA; These represent which ligand-cell/receptor-cell/L-R-pair are informative. When the matrices have negative values, interpreting which direction (+/-) is important and which is not, is a difficult and laboring task. That’s why, scTensor performs non-negative Tucker2 decomposition (NTD2), which is non-negative version of tensor decomposition (cf. nnTensor).
Finally, the result of NTD2 is summarized as an HTML report. Because most of the plots are visualized by plotly package, the precise information of the plot can be interactively confirmed by user’s on-site web browser. The two factor matrices can be interactively viewed and which cell types and which L-R-pairs are likely to be interacted each other. The mode-3 (LR-pair direction) sum of the core tensor is calculated and visualized as Ligand-Receptor Patterns. Detail of (Ligand-Cell, Receptor-Cell, L-R-pair) Patterns are also visualized.
SingleCellExperiment objectHere, we use the scRNA-Seq dataset of male germline cells and somatic cells\(^{3}\) GSE86146 as demo data. For saving the package size, the number of genes is strictly reduced by the standard of highly variable genes with a threshold of the p-value are 1E-150 (cf. Identifying highly variable genes). That’s why we won’t argue about the scientific discussion of the data here.
We assume that user has a scRNA-Seq data matrix containing expression count data summarised at the level of the gene. First, we create a SingleCellExperiment object containing the data. The rows of the object correspond to features, and the columns correspond to cells. The gene identifier is limited as NCBI Gene ID for now.
To improve the interpretability of the following HTML report, we highly recommend
that user specifies the two-dimensional data of input data
(e.g. PCA, t-SNE, or UMAP). Such information is easily specified by
reducedDims function of SingleCellExperiment package and is
saved to reducedDims slot of SingleCellExperiment object
(Figure 1).
data(GermMale)
data(labelGermMale)
data(tsneGermMale)
sce <- SingleCellExperiment(assays=list(counts = GermMale))
reducedDims(sce) <- SimpleList(TSNE=tsneGermMale$Y)
plot(reducedDims(sce)[[1]], col=labelGermMale, pch=16, cex=2,
  xlab="Dim1", ylab="Dim2", main="Germline, Male, GSE86146")
legend("topleft", legend=c(paste0("FGC_", 1:3), paste0("Soma_", 1:4)),
  col=c("#9E0142", "#D53E4F", "#F46D43", "#ABDDA4", "#66C2A5", "#3288BD", "#5E4FA2"),
  pch=16)
Figure 1: Germline, Male, GSE86146
Note that if you want to use scTensor framework against other species such as mouse or rat, load corresponding LRBase.XXX.eg.db and MeSH.XXX.eg.db packages.
For example, if your scRNA-Seq dataset is sampled from Mouse, load LRBase.Mmu.eg.db and MeSH.Mmu.eg.db instead of LRBase.Hsa.eg.db and MeSH.Hsa.eg.db.
## Loading required package: LRBase.Mmu.eg.dbTo perform the tensor decomposition and HTML report, user is supposed to specify
to SingleCellExperiment object. The corresponding information
is registered to the metadata slot of SingleCellExperiment object by
cellCellSetting function.
cellCellSetting(sce, LRBase.Hsa.eg.db, names(labelGermMale))After cellCellSetting, we can perform tensor decomposition by
cellCellDecomp. Here the parameter ranks is specified as dimension of
core tensor. For example, c(2, 3) means The data tensor is decomposed to
2 ligand-patterns and 3 receptor-patterns.
set.seed(1234)
cellCellDecomp(sce, ranks=c(2,3))## Input data matrix may contains 7 gene symbols because the name contains some alphabets.
## scTensor uses only NCBI Gene IDs for now.
## Here, the gene symbols are removed and remaining 235 NCBI Gene IDs are used for scTensor next step.## 7 * 7 * 145 Tensor is createdAlthough user has to specify the rank to perform cellCellDecomp,
we implemented a simple rank estimation function based on the eigenvalues
distribution of PCA in the matricised tensor in each mode in cellCellRank.
rks$selected is also specified as rank parameter of cellCellDecomp.
(rks <- cellCellRanks(sce))## Each rank, multiple NMF runs are performed
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |====================                                                  |  29%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |==================================================                    |  71%
  |                                                                            
  |============================================================          |  86%
  |                                                                            
  |======================================================================| 100%
## Each rank estimation method
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |====================                                                  |  29%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |==================================================                    |  71%
  |                                                                            
  |============================================================          |  86%
  |                                                                            
  |======================================================================| 100%
## Each rank, multiple NMF runs are performed
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |====================                                                  |  29%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |==================================================                    |  71%
  |                                                                            
  |============================================================          |  86%
  |                                                                            
  |======================================================================| 100%
## Each rank estimation method
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |====================                                                  |  29%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |==================================================                    |  71%
  |                                                                            
  |============================================================          |  86%
  |                                                                            
  |======================================================================| 100%## $RSS
## $RSS$rss1
## [1] 23.87077887 12.95131513  5.37082705  2.10972005  0.63765570  0.15175453
## [7]  0.09173941
## 
## $RSS$rss2
## [1] 27.0564927 13.3103174  4.1395268  2.3054929  0.8844862  0.8184241  0.2953443
## 
## 
## $selected
## [1] 4 3rks$selected## [1] 4 3If cellCellDecomp is properly finished, we can perform cellCellReport
function to output the HTML report like below. Please type
example(cellCellReport) and the report will be generated in the temporary
directory (it costs 5 to 10 minutes).
After cellCellReport, multiple R markdown files, compiled HTML files,
figures, and R binary file containing the result of analysis are saved to
out.dir (Figure 2). For more details, open the index.html by your web
browser. Combined with cloud storage service such as Amazon Simple Storage
Service (S3), it can be a simple web application and multiple people like
collaborators can confirm the same report simultaneously.
Figure2 : cellCellReport function of scTensor
## R version 4.1.0 (2021-05-18)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.13-bioc/R/lib/libRblas.so
## LAPACK: /home/biocbuild/bbs-3.13-bioc/R/lib/libRlapack.so
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] parallel  stats4    stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] LRBase.Mmu.eg.db_2.0.0      SingleCellExperiment_1.14.0
##  [3] SummarizedExperiment_1.22.0 Biobase_2.52.0             
##  [5] GenomicRanges_1.44.0        GenomeInfoDb_1.28.0        
##  [7] IRanges_2.26.0              S4Vectors_0.30.0           
##  [9] BiocGenerics_0.38.0         MatrixGenerics_1.4.0       
## [11] matrixStats_0.58.0          scTensor_2.2.0             
## [13] RSQLite_2.2.7               LRBase.Hsa.eg.db_2.0.0     
## [15] LRBaseDbi_2.2.0             BiocStyle_2.20.0           
## 
## loaded via a namespace (and not attached):
##   [1] Hmisc_4.5-0                   ica_1.0-2                    
##   [3] Rsamtools_2.8.0               foreach_1.5.1                
##   [5] lmtest_0.9-38                 crayon_1.4.1                 
##   [7] spatstat.core_2.1-2           MASS_7.3-54                  
##   [9] nlme_3.1-152                  backports_1.2.1              
##  [11] GOSemSim_2.18.0               MeSHDbi_1.28.0               
##  [13] rlang_0.4.11                  XVector_0.32.0               
##  [15] ROCR_1.0-11                   irlba_2.3.3                  
##  [17] nnTensor_1.0.7                filelock_1.0.2               
##  [19] GOstats_2.58.0                BiocParallel_1.26.0          
##  [21] rjson_0.2.20                  tagcloud_0.6                 
##  [23] bit64_4.0.5                   glue_1.4.2                   
##  [25] sctransform_0.3.2             spatstat.sparse_2.0-0        
##  [27] AnnotationDbi_1.54.0          dotCall64_1.0-1              
##  [29] spatstat.geom_2.1-0           tcltk_4.1.0                  
##  [31] DOSE_3.18.0                   tidyselect_1.1.1             
##  [33] SeuratObject_4.0.1            fitdistrplus_1.1-3           
##  [35] XML_3.99-0.6                  tidyr_1.1.3                  
##  [37] zoo_1.8-9                     GenomicAlignments_1.28.0     
##  [39] xtable_1.8-4                  magrittr_2.0.1               
##  [41] evaluate_0.14                 ggplot2_3.3.3                
##  [43] zlibbioc_1.38.0               rstudioapi_0.13              
##  [45] miniUI_0.1.1.1                bslib_0.2.5.1                
##  [47] rpart_4.1-15                  fastmatch_1.1-0              
##  [49] ensembldb_2.16.0              treeio_1.16.0                
##  [51] maps_3.3.0                    fields_12.3                  
##  [53] shiny_1.6.0                   xfun_0.23                    
##  [55] cluster_2.1.2                 tidygraph_1.2.0              
##  [57] TSP_1.1-10                    KEGGREST_1.32.0              
##  [59] tibble_3.1.2                  interactiveDisplayBase_1.30.0
##  [61] ggrepel_0.9.1                 biovizBase_1.40.0            
##  [63] ape_5.5                       listenv_0.8.0                
##  [65] dendextend_1.15.1             Biostrings_2.60.0            
##  [67] png_0.1-7                     future_1.21.0                
##  [69] bitops_1.0-7                  ggforce_0.3.3                
##  [71] RBGL_1.68.0                   plyr_1.8.6                   
##  [73] GSEABase_1.54.0               AnnotationFilter_1.16.0      
##  [75] pillar_1.6.1                  cachem_1.0.5                 
##  [77] GenomicFeatures_1.44.0        graphite_1.38.0              
##  [79] vctrs_0.3.8                   ellipsis_0.3.2               
##  [81] generics_0.1.0                plot3D_1.3                   
##  [83] MeSH.Aca.eg.db_1.15.0         outliers_0.14                
##  [85] tools_4.1.0                   foreign_0.8-81               
##  [87] entropy_1.3.0                 munsell_0.5.0                
##  [89] tweenr_1.0.2                  fgsea_1.18.0                 
##  [91] DelayedArray_0.18.0           fastmap_1.1.0                
##  [93] compiler_4.1.0                abind_1.4-5                  
##  [95] httpuv_1.6.1                  rtracklayer_1.52.0           
##  [97] Gviz_1.36.0                   plotly_4.9.3                 
##  [99] GenomeInfoDbData_1.2.6        gridExtra_2.3                
## [101] lattice_0.20-44               deldir_0.2-10                
## [103] visNetwork_2.0.9              AnnotationForge_1.34.0       
## [105] utf8_1.2.1                    later_1.2.0                  
## [107] dplyr_1.0.6                   BiocFileCache_2.0.0          
## [109] jsonlite_1.7.2                concaveman_1.1.0             
## [111] scales_1.1.1                  graph_1.70.0                 
## [113] tidytree_0.3.3                pbapply_1.4-3                
## [115] genefilter_1.74.0             lazyeval_0.2.2               
## [117] promises_1.2.0.1              MeSH.db_1.15.0               
## [119] latticeExtra_0.6-29           goftest_1.2-2                
## [121] spatstat.utils_2.1-0          reticulate_1.20              
## [123] checkmate_2.0.0               rmarkdown_2.8                
## [125] cowplot_1.1.1                 schex_1.6.0                  
## [127] MeSH.Syn.eg.db_1.15.0         webshot_0.5.2                
## [129] Rtsne_0.15                    dichromat_2.0-0              
## [131] BSgenome_1.60.0               uwot_0.1.10                  
## [133] igraph_1.2.6                  survival_3.2-11              
## [135] yaml_2.2.1                    plotrix_3.8-1                
## [137] htmltools_0.5.1.1             memoise_2.0.0                
## [139] VariantAnnotation_1.38.0      rTensor_1.4.8                
## [141] BiocIO_1.2.0                  Seurat_4.0.1                 
## [143] seriation_1.2-9               graphlayouts_0.7.1           
## [145] viridisLite_0.4.0             digest_0.6.27                
## [147] assertthat_0.2.1              ReactomePA_1.36.0            
## [149] mime_0.10                     rappdirs_0.3.3               
## [151] registry_0.5-1                spam_2.6-0                   
## [153] future.apply_1.7.0            misc3d_0.9-0                 
## [155] data.table_1.14.0             blob_1.2.1                   
## [157] cummeRbund_2.34.0             splines_4.1.0                
## [159] Formula_1.2-4                 AnnotationHub_3.0.0          
## [161] ProtGenerics_1.24.0           RCurl_1.98-1.3               
## [163] hms_1.1.0                     colorspace_2.0-1             
## [165] base64enc_0.1-3               BiocManager_1.30.15          
## [167] aplot_0.0.6                   nnet_7.3-16                  
## [169] sass_0.4.0                    Rcpp_1.0.6                   
## [171] bookdown_0.22                 RANN_2.6.1                   
## [173] MeSH.PCR.db_1.15.0            enrichplot_1.12.0            
## [175] fansi_0.4.2                   parallelly_1.25.0            
## [177] R6_2.5.0                      grid_4.1.0                   
## [179] ggridges_0.5.3                lifecycle_1.0.0              
## [181] curl_4.3.1                    MeSH.Bsu.168.eg.db_1.15.0    
## [183] leiden_0.3.7                  MeSH.AOR.db_1.15.0           
## [185] meshr_1.28.0                  jquerylib_0.1.4              
## [187] DO.db_2.9                     Matrix_1.3-3                 
## [189] qvalue_2.24.0                 RcppAnnoy_0.0.18             
## [191] org.Hs.eg.db_3.13.0           RColorBrewer_1.1-2           
## [193] iterators_1.0.13              stringr_1.4.0                
## [195] htmlwidgets_1.5.3             polyclip_1.10-0              
## [197] biomaRt_2.48.0                purrr_0.3.4                  
## [199] shadowtext_0.0.8              reactome.db_1.76.0           
## [201] mgcv_1.8-35                   globals_0.14.0               
## [203] htmlTable_2.2.1               patchwork_1.1.1              
## [205] codetools_0.2-18              GO.db_3.13.0                 
## [207] prettyunits_1.1.1             dbplyr_2.1.1                 
## [209] gtable_0.3.0                  DBI_1.1.1                    
## [211] highr_0.9                     tensor_1.5                   
## [213] httr_1.4.2                    KernSmooth_2.23-20           
## [215] stringi_1.6.2                 progress_1.2.2               
## [217] reshape2_1.4.4                farver_2.1.0                 
## [219] heatmaply_1.2.1               annotate_1.70.0              
## [221] viridis_0.6.1                 hexbin_1.28.2                
## [223] fdrtool_1.2.16                Rgraphviz_2.36.0             
## [225] magick_2.7.2                  ggtree_3.0.0                 
## [227] rvcheck_0.1.8                 restfulr_0.0.13              
## [229] Category_2.58.0               scattermore_0.7              
## [231] BiocVersion_3.13.1            bit_4.0.4                    
## [233] spatstat.data_2.1-0           scatterpie_0.1.6             
## [235] jpeg_0.1-8.1                  ggraph_2.0.5                 
## [237] pkgconfig_2.0.3               MeSH.Hsa.eg.db_1.15.0        
## [239] knitr_1.33