Rare Disease Celltyping

Prioritised Targets Network

¶ Authors: ¶

¶ Brian M. Schilder, Momoko Otani, Nathan G. Skene

¶ Updated: Feb-10-2023

Install packages

if(!require("htmltools")) install.packages("htmltools") 
if(!require("remotes")) install.packages("remotes") 
if(!require("MultiEWCE")) remotes::install_github("neurogenomics/MutltiEWCE", dependencies = TRUE)

Prioritise targets

Filter & sort

res <- MultiEWCE::prioritise_targets()
## Prioritising gene targets.
## Adding HPO IDs.
## Importing existing file: ... phenotype_to_genes.txt
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
## Adding term definitions.
## Adding level-3 ancestor to each HPO ID.
## Prioritised targets: step='start' 
##  - rows: 475,321 
##  - phenotypes: 6,173 
##  - celltypes: 77
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Filtering @ fold-change >= 1
## Prioritised targets: step='fold_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Getting absolute ontology level for 2,831 HPO IDs.
## Prioritised targets: step='keep_ont_levels' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Annotating phenos with Onset.
## Importing existing file: ... phenotype.hpoa
## Translating all phenotypes to names.
## + Returning a vector of phenotypes (same order as input).
## Importing existing file: ... phenotype.hpoa
## Prioritised targets: step='keep_onsets' 
##  - rows: 8,209 
##  - phenotypes: 2,770 
##  - celltypes: 77
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers' 
##  - rows: 805 
##  - phenotypes: 171 
##  - celltypes: 60
## Annotating phenos with Modifiers
## Prioritised targets: step='severity_threshold' 
##  - rows: 762 
##  - phenotypes: 167 
##  - diseases: 19 
##  - celltypes: 60
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold' 
##  - rows: 652 
##  - phenotypes: 132 
##  - diseases: 18 
##  - celltypes: 58
## 31 / 58 of cell types kept.
## Prioritised targets: step='keep_celltypes' 
##  - rows: 395 
##  - phenotypes: 108 
##  - diseases: 18 
##  - celltypes: 31
## Filtering by gene size.
## Converting phenos to GRanges.
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
## Loading required namespace: ensembldb
## Gathering gene metadata
## Loading required namespace: EnsDb.Hsapiens.v75
## Prioritised targets: step='keep_seqnames' 
##  - rows: 62,127 
##  - phenotypes: 108 
##  - genes: 3,711
## 235 / 3,711 genes kept.
## Prioritised targets: step='gene_size' 
##  - rows: 3,337 
##  - phenotypes: 104 
##  - genes: 235
## Prioritised targets: step='keep_biotypes' 
##  - rows: 3,337 
##  - phenotypes: 104 
##  - genes: 235
## Filtering by specificity_quantile.
## Filtering by mean_exp_quantile.
## Annotating gene frequencies.
## Importing existing file: ... genes_to_phenotype.txt
## Prioritised targets: step='gene_frequency_threshold' 
##  - rows: 11,880 
##  - phenotypes: 104 
##  - diseases: 17 
##  - celltypes: 31 
##  - genes: 234
## Prioritised targets: step='keep_specificity_quantiles' 
##  - rows: 349 
##  - phenotypes: 78 
##  - diseases: 15 
##  - celltypes: 26 
##  - genes: 69
## Prioritised targets: step='keep_mean_exp_quantiles' 
##  - rows: 349 
##  - phenotypes: 78 
##  - diseases: 15 
##  - celltypes: 26 
##  - genes: 69
## Sorting rows.
## Finding top 20 gene targets per: HPO_ID, CellType
## Prioritised targets: step='top_n' 
##  - rows: 349 
##  - phenotypes: 78 
##  - diseases: 15 
##  - celltypes: 26 
##  - genes: 69
## Prioritised targets: step='end' 
##  - rows: 349 
##  - phenotypes: 78 
##  - diseases: 15 
##  - celltypes: 26 
##  - genes: 69

Top targets

Here are the top gene targets based on the default filtering/sorting criterion of prioritise_targets.

MultiEWCE::create_dt(res$top_targets)
## Loading required namespace: DT

Filtering report

Here is a report that shows how many phenotypes/celltypes/genes remained after each step within the prioritise_targets pipeline.

MultiEWCE::create_dt(res$report)

Plot network

Generate a network from the top phenotype-celltype-gene associations.

vn_top <- MultiEWCE::prioritise_targets_network(
    top_targets = res$top_targets,
    mediator_var = list(),
    save_path = here::here("reports","top_targets_network.html"), 
    show_plot = FALSE)
## Loading required namespace: igraph
## Creating network.
## Loading required namespace: visNetwork
## Creating plot.
## Saving plot ==> /Users/schilder/Desktop/ewce/RareDiseasePrioritisation/reports/top_targets_network.html
# visNetwork::visExport(vn_top$plot, type = "pdf", loadDependencies = T)
# visNetwork::renderVisNetwork(vn_top$plot)
# pagedown::chrome_print(input = here::here("reports","top_targets_network.html"),
#                        output = here::here("reports","top_targets_network.pdf"),
#                        format = "pdf")
# webshot::webshot(here::here("reports","top_targets_network.html"), 
#                  zoom = 1, 
#                  vwidth = 2000,
#                  vheight = 1000,
#                  file = path.expand("~/Downloads/ex.pdf"))
htmltools::includeHTML("https://github.com/neurogenomics/RareDiseasePrioritisation/raw/master/reports/top_targets_network.html")
visNetwork

Aggregate results

df_agg <- MultiEWCE::agg_results(
    phenos = res$top_targets,
    count_var = "CellType", 
    group_var = c("Phenotype","ontLvl",
                  "tier","tier_auto",
                  "ancestor","ancestor_name",
                  "disease_characteristic","DiseaseNames",
                  "Onset","Onset_earliest","Onset_score_mean","Onset_score_min",
                  "pheno_freq_mean","pheno_freq_min",
                  "Severity_score_mean","Severity_score_min")
    )
## Aggregating results by group_var='Phenotype'Aggregating results by group_var='ontLvl'Aggregating results by group_var='tier'Aggregating results by group_var='tier_auto'Aggregating results by group_var='ancestor'Aggregating results by group_var='ancestor_name'Aggregating results by group_var='disease_characteristic'Aggregating results by group_var='DiseaseNames'Aggregating results by group_var='Onset'Aggregating results by group_var='Onset_earliest'Aggregating results by group_var='Onset_score_mean'Aggregating results by group_var='Onset_score_min'Aggregating results by group_var='pheno_freq_mean'Aggregating results by group_var='pheno_freq_min'Aggregating results by group_var='Severity_score_mean'Aggregating results by group_var='Severity_score_min'
## Adding HPO IDs.
## Importing existing file: ... phenotype_to_genes.txt
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
MultiEWCE::create_dt(df_agg)

Aggregate results

Subset phenotypes to those included in intellectual disability, and are related to cognition.

df_intel <- HPOExplorer::add_ancestor(
    phenos = res$top_targets[ancestor_name=="Abnormality of the nervous system",][,-c("ancestor","ancestor_name")],
                                      lvl = 5)
## Adding level-5 ancestor to each HPO ID.
df_intel <- df_intel[
    ancestor_name %in% c("Neurodevelopmental abnormality"),]
sort(unique(df_intel$Phenotype))
## [1] "Developmental regression"          "Global developmental delay"       
## [3] "Mild global developmental delay"   "Neurodevelopmental abnormality"   
## [5] "Neurodevelopmental delay"          "Severe global developmental delay"

Top genes

top_genes <- sort(table(df_intel$Gene),
                  decreasing = TRUE)
print(top_genes)
## 
##       SOX3       SOX2       GSX2     POU3F4     TUBB2A      FOXG1      HOXA2 
##         11          8          6          6          6          4          4 
##       RTL1       SIX6      GPR88       PIGY      PROP1    SLC18A3 SNORD116-1 
##          4          4          3          3          3          3          3 
##   SNORD118      ASCL1      FOXH1       HES7    MAB21L2       HPDL       JAG1 
##          3          2          2          2          2          1          1 
##      KLRC4      PRRT2      RNU12        TRH 
##          1          1          1          1

Top cell types

top_celltypes <- sort(table(unique(df_intel[,c("Phenotype","HPO_ID","CellType")])$CellType),
         decreasing = TRUE)
print(top_celltypes)
## 
## Excitatory neurons     Ganglion cells         Astrocytes           ENS glia 
##                  4                  4                  3                  3 
##    Granule neurons   Horizontal cells Inhibitory neurons   Oligodendrocytes 
##                  3                  3                  3                  3 
##   Purkinje neurons     Amacrine cells      Schwann cells   Visceral neurons 
##                  3                  2                  2                  2 
##        ENS neurons 
##                  1

Prioritise targets: extended

Now let’s lift some of the filters on phenotypes and cell types to recover a more extensive network.

Filter & sort

res_all <- MultiEWCE::prioritise_targets(keep_onsets = NULL,
                                         keep_tiers = NULL,
                                         severity_threshold = NULL,
                                         pheno_frequency_threshold = c(10,NA),
                                         gene_frequency_threshold = c(10,NA),
                                         keep_specificity_quantiles = seq(30,40),
                                         keep_mean_exp_quantiles = seq(30,40))
## Prioritising gene targets.
## Adding HPO IDs.
## Importing existing file: ... phenotype_to_genes.txt
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
## Adding term definitions.
## Adding level-3 ancestor to each HPO ID.
## Prioritised targets: step='start' 
##  - rows: 475,321 
##  - phenotypes: 6,173 
##  - celltypes: 77
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Filtering @ fold-change >= 1
## Prioritised targets: step='fold_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Getting absolute ontology level for 2,831 HPO IDs.
## Prioritised targets: step='keep_ont_levels' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Annotating phenos with Onset.
## Importing existing file: ... phenotype.hpoa
## Translating all phenotypes to names.
## + Returning a vector of phenotypes (same order as input).
## Prioritised targets: step='keep_onsets' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Annotating phenos with Modifiers
## Prioritised targets: step='severity_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - diseases: 290 
##  - celltypes: 77
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold' 
##  - rows: 8,260 
##  - phenotypes: 2,785 
##  - diseases: 290 
##  - celltypes: 76
## 37 / 76 of cell types kept.
## Prioritised targets: step='keep_celltypes' 
##  - rows: 4,201 
##  - phenotypes: 1,879 
##  - diseases: 226 
##  - celltypes: 37
## Filtering by gene size.
## Converting phenos to GRanges.
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
## Gathering gene metadata
## Prioritised targets: step='keep_seqnames' 
##  - rows: 706,375 
##  - phenotypes: 1,879 
##  - genes: 4,329
## 289 / 4,329 genes kept.
## Prioritised targets: step='gene_size' 
##  - rows: 40,891 
##  - phenotypes: 1,611 
##  - genes: 289
## Prioritised targets: step='keep_biotypes' 
##  - rows: 40,891 
##  - phenotypes: 1,611 
##  - genes: 289
## Filtering by specificity_quantile.
## Filtering by mean_exp_quantile.
## Annotating gene frequencies.
## Importing existing file: ... genes_to_phenotype.txt
## Prioritised targets: step='gene_frequency_threshold' 
##  - rows: 120,541 
##  - phenotypes: 1,579 
##  - diseases: 216 
##  - celltypes: 37 
##  - genes: 289
## Prioritised targets: step='keep_specificity_quantiles' 
##  - rows: 17,329 
##  - phenotypes: 1,307 
##  - diseases: 192 
##  - celltypes: 37 
##  - genes: 246
## Prioritised targets: step='keep_mean_exp_quantiles' 
##  - rows: 17,329 
##  - phenotypes: 1,307 
##  - diseases: 192 
##  - celltypes: 37 
##  - genes: 246
## Sorting rows.
## Finding top 20 gene targets per: HPO_ID, CellType
## Prioritised targets: step='top_n' 
##  - rows: 16,268 
##  - phenotypes: 1,307 
##  - diseases: 192 
##  - celltypes: 37 
##  - genes: 246
## Prioritised targets: step='end' 
##  - rows: 16,268 
##  - phenotypes: 1,307 
##  - diseases: 192 
##  - celltypes: 37 
##  - genes: 246

Plot network

vn_all <- MultiEWCE::prioritise_targets_network(top_targets = res_all$top_targets, 
                                                save_path = here::here("reports",
                                                            "all_targets_network.html"), 
                                                mediator_var = list(),
                                                show_plot = FALSE)
## Creating network.
## Creating plot.
## Saving plot ==> /Users/schilder/Desktop/ewce/RareDiseasePrioritisation/reports/all_targets_network.html
htmltools::includeHTML("https://github.com/neurogenomics/RareDiseasePrioritisation/raw/master/reports/all_targets_network.html")
visNetwork

Aggregate results

all_agg <- MultiEWCE::agg_results(phenos = res_all$top_targets,
                                  count_var = "CellType", 
                                  group_var = "Phenotype")
## Aggregating results by group_var='Phenotype'
## Adding HPO IDs.
## Importing existing file: ... phenotype_to_genes.txt
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
MultiEWCE::create_dt(all_agg) 

Top phenotypes

Get the phenotypes that were enriched in the greatest number of cell types.

#### All ontology level ####
head(sort(table(unique(res_all$top_targets[,c("Phenotype","CellType")])$Phenotype), 
          decreasing = TRUE))
## 
##        Abnormality of eye movement            Intellectual disability 
##                                 16                                 16 
##         Abnormal muscle physiology               Abnormal muscle tone 
##                                 15                                 15 
## Abnormal nervous system physiology     Abnormality of the musculature 
##                                 15                                 15
#### Only lower ontology levels #####
all_targets <- HPOExplorer::add_ont_lvl(res_all$top_targets)
head(sort(table(unique(res_all$top_targets[ontLvl<=4,c("Phenotype","CellType")])$Phenotype), 
          decreasing = TRUE))
## 
##            Intellectual disability                          Hypotonia 
##                                 16                                 15 
##     Neurodevelopmental abnormality Abnormal involuntary eye movements 
##                                 15                                 14 
##     Neurological speech impairment                          Nystagmus 
##                                 14                                 14

Top cell types

Get the cell types that were enriched in the greatest number of unique phenotypes.

head(sort(table(unique(res_all$top_targets[,c("Phenotype","CellType")])$CellType), 
          decreasing = TRUE))
## 
##       Excitatory neurons Antigen presenting cells           Cardiomyocytes 
##                      236                      214                      183 
##    Limbic system neurons                 ENS glia           Ganglion cells 
##                      173                      167                      163

Top genes

Get the genes that were enriched in the greatest number of unique phenotypes.

head(sort(table(unique(res_all$top_targets[,c("Phenotype","Gene")])$Gene), 
          decreasing = TRUE))
## 
##     RMRP RNU4ATAC    FOXG1  TMEM107   KCNJ11    FOXH1 
##      201      190      156      156      154      153

Top ancestors

Get the most common ancestors in the results.

ancestor_freq <- sort(table(res_all$top_targets$ancestor), decreasing = TRUE) |>
    data.table::data.table() |> 
    `colnames<-`(c("HPO_ID","freq"))
ancestor_freq$Phenotype <- HPOExplorer::harmonise_phenotypes(phenotypes = ancestor_freq$HPO_ID)
## Translating all phenotypes to names.
## + Returning a vector of phenotypes (same order as input).
MultiEWCE::create_dt(ancestor_freq) 

Manual queries

Get all results.

res_all <- MultiEWCE::prioritise_targets(keep_onsets = NULL,
                                         keep_tiers = NULL,
                                         severity_threshold = NULL,
                                         pheno_frequency_threshold = NULL,
                                         gene_frequency_threshold = NULL,
                                         keep_specificity_quantiles = NULL,
                                         keep_mean_exp_quantiles = NULL)
## Prioritising gene targets.
## Adding HPO IDs.
## Importing existing file: ... phenotype_to_genes.txt
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
## Adding term definitions.
## Adding level-3 ancestor to each HPO ID.
## Prioritised targets: step='start' 
##  - rows: 475,321 
##  - phenotypes: 6,173 
##  - celltypes: 77
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Filtering @ fold-change >= 1
## Prioritised targets: step='fold_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Getting absolute ontology level for 2,831 HPO IDs.
## Prioritised targets: step='keep_ont_levels' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Annotating phenos with Onset.
## Importing existing file: ... phenotype.hpoa
## Translating all phenotypes to names.
## + Returning a vector of phenotypes (same order as input).
## Prioritised targets: step='keep_onsets' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - celltypes: 77
## Annotating phenos with Modifiers
## Prioritised targets: step='severity_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - diseases: 290 
##  - celltypes: 77
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold' 
##  - rows: 8,379 
##  - phenotypes: 2,832 
##  - diseases: 290 
##  - celltypes: 77
## 37 / 77 of cell types kept.
## Prioritised targets: step='keep_celltypes' 
##  - rows: 4,255 
##  - phenotypes: 1,909 
##  - diseases: 226 
##  - celltypes: 37
## Filtering by gene size.
## Converting phenos to GRanges.
## Translating all phenotypes to HPO IDs.
## + Returning a vector of phenotypes (same order as input).
## Gathering gene metadata
## Prioritised targets: step='keep_seqnames' 
##  - rows: 725,711 
##  - phenotypes: 1,909 
##  - genes: 4,329
## 289 / 4,329 genes kept.
## Prioritised targets: step='gene_size' 
##  - rows: 42,039 
##  - phenotypes: 1,635 
##  - genes: 289
## Prioritised targets: step='keep_biotypes' 
##  - rows: 42,039 
##  - phenotypes: 1,635 
##  - genes: 289
## Annotating gene frequencies.
## Importing existing file: ... genes_to_phenotype.txt
## Prioritised targets: step='gene_frequency_threshold' 
##  - rows: 127,223 
##  - phenotypes: 1,635 
##  - diseases: 217 
##  - celltypes: 37 
##  - genes: 289
## Prioritised targets: step='keep_specificity_quantiles' 
##  - rows: 127,223 
##  - phenotypes: 1,635 
##  - diseases: 217 
##  - celltypes: 37 
##  - genes: 289
## Prioritised targets: step='keep_mean_exp_quantiles' 
##  - rows: 127,223 
##  - phenotypes: 1,635 
##  - diseases: 217 
##  - celltypes: 37 
##  - genes: 289
## Sorting rows.
## Finding top 20 gene targets per: HPO_ID, CellType
## Prioritised targets: step='top_n' 
##  - rows: 50,430 
##  - phenotypes: 1,635 
##  - diseases: 217 
##  - celltypes: 37 
##  - genes: 285
## Prioritised targets: step='end' 
##  - rows: 50,430 
##  - phenotypes: 1,635 
##  - diseases: 217 
##  - celltypes: 37 
##  - genes: 285

Mental deterioration

Definition of “Mental deterioration” from the HPO: > Loss of previously present mental abilities, generally in adults. > Synonyms: Cognitive decline, Cognitive decline, progressive, Intellectual deterioration, Mental deterioration, Progressive cognitive decline

Not included in prioritise_targets outputs by default because: - “specificity_quantile” (median=6) and “mean_exp_quantile” (median=6) are quite low for most genes associated with “Mental deterioration”

md_targets <- res_all$top_targets[Phenotype=="Mental deterioration" & q<=0.05] 

sort(table(md_targets[CellType %in% c("Amacrine cells","Ganglion cells")]$Gene), 
     decreasing = TRUE)
## 
## SNORD118     APOE  CHCHD10     CSTB      FTL    GLUD2 HSD17B10    HTRA2 
##        4        2        2        2        2        2        2        2 
##   KCNJ11  NDUFAF3   NHLRC1     SCO2   SDHAF1   TIMM8A    TINF2    TREX1 
##        2        2        2        2        2        2        2        2 
##   TYROBP   UBQLN2 
##        2        2

Recurrent Neisserial infections

results <- MultiEWCE::load_example_results()
rci_targets <-results[Phenotype=="Recurrent Neisserial infections" & q<=0.05] 
p2g <- HPOExplorer::load_phenotype_to_genes()
## Importing existing file: ... phenotype_to_genes.txt
data.table::setnames(p2g,"ID","HPO_ID")

rci_targets <- data.table::merge.data.table(rci_targets,
                                            p2g[,c("HPO_ID","Gene")],
                                            by="HPO_ID")
MultiEWCE::create_dt(rci_targets)
rci_agg <- MultiEWCE::agg_results(rci_targets)
## Aggregating results by group_var='CellType'
MultiEWCE::create_dt(rci_agg)

Session info

utils::sessionInfo()
## R version 4.2.1 (2022-06-23)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur ... 10.16
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] MultiEWCE_0.1.3 remotes_2.4.2   htmltools_0.5.4
## 
## loaded via a namespace (and not attached):
##   [1] utf8_1.2.3                    R.utils_2.12.2               
##   [3] tidyselect_1.2.0              RSQLite_2.2.20               
##   [5] AnnotationDbi_1.60.0          htmlwidgets_1.6.1            
##   [7] grid_4.2.1                    BiocParallel_1.32.5          
##   [9] munsell_0.5.0                 codetools_0.2-19             
##  [11] DT_0.27                       colorspace_2.1-0             
##  [13] Biobase_2.58.0                filelock_1.0.2               
##  [15] knitr_1.42                    rstudioapi_0.14              
##  [17] orthogene_1.4.1               stats4_4.2.1                 
##  [19] SingleCellExperiment_1.20.0   ggsignif_0.6.4               
##  [21] MatrixGenerics_1.10.0         GenomeInfoDbData_1.2.9       
##  [23] bit64_4.0.5                   rprojroot_2.0.3              
##  [25] coda_0.19-4                   vctrs_0.5.2                  
##  [27] treeio_1.22.0                 generics_0.1.3               
##  [29] xfun_0.37                     BiocFileCache_2.6.0          
##  [31] R6_2.5.1                      GenomeInfoDb_1.34.9          
##  [33] pals_1.7                      AnnotationFilter_1.22.0      
##  [35] bitops_1.0-7                  cachem_1.0.6                 
##  [37] gridGraphics_0.5-1            DelayedArray_0.24.0          
##  [39] assertthat_0.2.1              promises_1.2.0.1             
##  [41] BiocIO_1.8.0                  scales_1.2.1                 
##  [43] gtable_0.3.1                  ontologyPlot_1.6             
##  [45] ensembldb_2.22.0              rlang_1.0.6                  
##  [47] rtracklayer_1.58.0            rstatix_0.7.2                
##  [49] lazyeval_0.2.2                dichromat_2.0-0.1            
##  [51] broom_1.0.3                   BiocManager_1.30.19          
##  [53] yaml_2.3.7                    reshape2_1.4.4               
##  [55] HPOExplorer_0.99.4            abind_1.4-5                  
##  [57] GenomicFeatures_1.50.4        ggnetwork_0.5.10             
##  [59] crosstalk_1.2.0               backports_1.4.1              
##  [61] httpuv_1.6.8                  tools_4.2.1                  
##  [63] ggplotify_0.1.0               statnet.common_4.8.0         
##  [65] ggplot2_3.4.0                 ellipsis_0.3.2               
##  [67] jquerylib_0.1.4               paintmap_1.0                 
##  [69] BiocGenerics_0.44.0           Rcpp_1.0.10                  
##  [71] plyr_1.8.8                    visNetwork_2.1.2             
##  [73] progress_1.2.2                zlibbioc_1.44.0              
##  [75] purrr_1.0.1                   RCurl_1.98-1.10              
##  [77] prettyunits_1.1.1             ggpubr_0.5.0                 
##  [79] S4Vectors_0.36.1              SummarizedExperiment_1.28.0  
##  [81] grr_0.9.5                     here_1.0.1                   
##  [83] magrittr_2.0.3                data.table_1.14.6            
##  [85] ProtGenerics_1.30.0           matrixStats_0.63.0           
##  [87] hms_1.1.2                     patchwork_1.1.2              
##  [89] mime_0.12                     evaluate_0.20                
##  [91] xtable_1.8-4                  XML_3.99-0.13                
##  [93] EWCE_1.6.0                    IRanges_2.32.0               
##  [95] compiler_4.2.1                biomaRt_2.54.0               
##  [97] tibble_3.1.8                  maps_3.4.1                   
##  [99] crayon_1.5.2                  R.oo_1.25.0                  
## [101] ggfun_0.0.9                   later_1.3.0                  
## [103] tidyr_1.3.0                   aplot_0.1.9                  
## [105] DBI_1.1.3                     ExperimentHub_2.6.0          
## [107] gprofiler2_0.2.1              dbplyr_2.3.0                 
## [109] rappdirs_0.3.3                babelgene_22.9               
## [111] EnsDb.Hsapiens.v75_2.99.0     Matrix_1.5-3                 
## [113] car_3.1-1                     piggyback_0.1.4              
## [115] cli_3.6.0                     R.methodsS3_1.8.2            
## [117] parallel_4.2.1                igraph_1.3.5                 
## [119] GenomicRanges_1.50.2          pkgconfig_2.0.3              
## [121] prettydoc_0.4.1               GenomicAlignments_1.34.0     
## [123] plotly_4.10.1                 xml2_1.3.3                   
## [125] ggtree_3.6.2                  bslib_0.4.2                  
## [127] XVector_0.38.0                yulab.utils_0.0.6            
## [129] stringr_1.5.0                 digest_0.6.31                
## [131] graph_1.76.0                  Biostrings_2.66.0            
## [133] rmarkdown_2.20                HGNChelper_0.8.1             
## [135] tidytree_0.4.2                restfulr_0.0.15              
## [137] curl_5.0.0                    shiny_1.7.4                  
## [139] Rsamtools_2.14.0              rjson_0.2.21                 
## [141] lifecycle_1.0.3               nlme_3.1-162                 
## [143] jsonlite_1.8.4                carData_3.0-5                
## [145] network_1.18.1                mapproj_1.2.11               
## [147] viridisLite_0.4.1             limma_3.54.1                 
## [149] fansi_1.0.4                   pillar_1.8.1                 
## [151] ontologyIndex_2.10            lattice_0.20-45              
## [153] homologene_1.4.68.19.3.27     KEGGREST_1.38.0              
## [155] fastmap_1.1.0                 httr_1.4.4                   
## [157] interactiveDisplayBase_1.36.0 glue_1.6.2                   
## [159] RNOmni_1.0.1                  png_0.1-8                    
## [161] ewceData_1.6.0                BiocVersion_3.16.0           
## [163] bit_4.0.5                     Rgraphviz_2.42.0             
## [165] stringi_1.7.12                sass_0.4.5                   
## [167] blob_1.2.3                    AnnotationHub_3.6.0          
## [169] memoise_2.0.1                 dplyr_1.1.0                  
## [171] ape_5.6-2