Trying to have another look through our results for anything neurodegeneration-related, either at the level of phenotype or disease.
res <- MultiEWCE::load_example_results()
## Registered S3 method overwritten by 'ggtree':
## method from
## fortify.igraph ggnetwork
res <- HPOExplorer::add_disease(res)
## Annotating phenos with Disease
res <- HPOExplorer::add_ancestor(res)
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
annot <- HPOExplorer::load_phenotype_to_genes(3)
genes <- HPOExplorer::load_phenotype_to_genes(1)
First, we do some initial filtering of the results to only get significant associations.
res <- res[q<0.05 & symptom.pval<0.05,]
AD is not enriched for any phenotype, likely due to the small number of genes included. GWAS results are more comprehensive than this. https://hpo.jax.org/app/browse/term/HP:0002511
ad <- res[grepl("alzheimer",hpo_name,ignore.case = TRUE)]
nrow(ad)
## [1] 0
“Parkinson’s disease” is not in the HPO, but the branch “Parkinsonism” is. https://hpo.jax.org/app/browse/term/HP:0001300
We actually do have 1 sig phenotype here: “Parkinsonism”
pd_phenos <- HPOExplorer::make_phenos_dataframe(ancestor="Parkinsonism")
## ℹ All local files already up-to-date!
## Extracting data for 2 descendents.
## Computing gene counts.
## Getting absolute ontology level for 2 HPO IDs.
## Computing ontology level / gene count ratio.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
pd1 <- res[hpo_id %in% pd_phenos$hpo_id ]
MultiEWCE::create_dt(pd1)
## Loading required namespace: DT
We can also search for phenotypes via “Parkinson’s” as a disease.
This gives us lots of phenotypes, but many of them are not specific to PD: e.g. Autosomal recessive inheritance, Open mouth, Macrocephaly, Urinary urgency
d <- annot[grepl("parkinson",disease_name, ignore.case = TRUE)]
pd <- res[hpo_id %in% d$hpo_id]
nrow(pd)
## [1] 9768
Let’s try to narrow it down to very PD-specific phenotypes.
These PD-associated phenotypes only appear once in the HPO annotations. Thus, they must be PD-specific.
That leaves us with just 2 phenotypes.
n_pd_terms <- length(unique(pd_phenos$hpo_id))
pd_pheno_freqs <- sort(table(annot[hpo_id %in% d$hpo_id]$hpo_id))
hist(pd_pheno_freqs, 50)
pd_specific <- pd[hpo_id %in% names(pd_pheno_freqs)[pd_pheno_freqs<=1+n_pd_terms]]
MultiEWCE::create_dt(pd_specific)
We can lift this filter a bit and look for PD-associated phenotypes
that only appear in 3 or less non-PD diseases. We see phenotype that can
indeed be associated with PD, but are not necessarily exclusive to it:
e.g.
Abnormal aggressive, impulsive or violent behavior,
Pill-rolling tremor, “Abnormal CSF protein level
pd_specific2 <- pd[hpo_id %in% names(pd_pheno_freqs)[pd_pheno_freqs<=3+n_pd_terms] ]
MultiEWCE::create_dt(pd_specific2)
pd_specific3 <- pd[hpo_id %in% names(pd_pheno_freqs)[pd_pheno_freqs<=20+n_pd_terms] ]
pd_targets <- data.table::merge.data.table(pd_specific3,
genes[,-c("hpo_name")],
by= c("hpo_id","disease_id"))
pd_vn <- MultiEWCE::prioritise_targets_network(top_targets = pd_targets,
mediator_var = list(c(1,2),c(2,3),c(3,4),c(2,4),c(1,4)))
## Loading required namespace: pals
## Loading required namespace: igraph
## Loading required namespace: tidygraph
## Creating network.
## Loading required namespace: visNetwork
## Creating plot.
## Saving plot ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpQLe7DT/file88467e1d7b58_prioritise_targets_network.html
Get all the phenos from the Mental deterioration branch. This includes many forms of dementia https://hpo.jax.org/app/browse/term/HP:0001268
As we’ve seen before, only the higher-level term “Mental deterioration” remains significant. Perhaps due to the greater number of genes in this higher level.
phenos <- HPOExplorer::make_phenos_dataframe(ancestor="Mental deterioration")
## ℹ All local files already up-to-date!
## Extracting data for 14 descendents.
## Computing gene counts.
## Getting absolute ontology level for 14 HPO IDs.
## Computing ontology level / gene count ratio.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
md <- res[hpo_id %in% phenos$hpo_id]
MultiEWCE::create_dt(md)
HPO has the term: Atrophy/Degeneration affecting the central nervous system https://hpo.jax.org/app/browse/term/HP:0007367
In our results, we found a number of significantly enriched phenotypes that fall under that branch:
phenos <- HPOExplorer::make_phenos_dataframe(ancestor="Atrophy/Degeneration affecting the central nervous system")
## ℹ All local files already up-to-date!
## Extracting data for 41 descendents.
## Computing gene counts.
## Getting absolute ontology level for 41 HPO IDs.
## Computing ontology level / gene count ratio.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
at <- res[hpo_id %in% phenos$hpo_id]
MultiEWCE::create_dt(at)
Next, let’s find examples of celltype-specific enrichment results that relate to diseases/phenotypes in the categories of dementia/neurodegeneration vs. diabetes/obesity.
queries <- paste("alzheimer","parkinson","diabetes","obesity",sep = "|")
phenos <- rbind(
HPOExplorer::make_phenos_dataframe(ancestor="Atrophy/Degeneration affecting the central nervous system"),
HPOExplorer::make_phenos_dataframe(ancestor="Mental deterioration"),
HPOExplorer::make_phenos_dataframe(ancestor="Diabetes mellitus"),
HPOExplorer::make_phenos_dataframe(ancestor="Obesity")
)
## ℹ All local files already up-to-date!
## Extracting data for 41 descendents.
## Computing gene counts.
## Getting absolute ontology level for 41 HPO IDs.
## Computing ontology level / gene count ratio.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
## ℹ All local files already up-to-date!
## Extracting data for 14 descendents.
## Computing gene counts.
## Getting absolute ontology level for 14 HPO IDs.
## Computing ontology level / gene count ratio.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
## ℹ All local files already up-to-date!
## Extracting data for 11 descendents.
## Computing gene counts.
## Getting absolute ontology level for 11 HPO IDs.
## Computing ontology level / gene count ratio.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
## ℹ All local files already up-to-date!
## Extracting data for 5 descendents.
## Computing gene counts.
## Getting absolute ontology level for 5 HPO IDs.
## Computing ontology level / gene count ratio.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
res_inter <- res[grepl(queries,hpo_name,ignore.case = TRUE) |
grepl(queries,disease_name,ignore.case = TRUE) |
hpo_id %in% phenos$hpo_id]
message(formatC(nrow(res_inter),big.mark = ",")," results remain.")
## 511 results remain.
We still have a lot of results left (500+ rows), which is a bit much to visualize. So let’s do some additional filtering.
res_filt <- MultiEWCE::prioritise_targets(results = res_inter,
keep_tiers = NULL,
severity_threshold = NULL,
keep_onsets = NULL,
keep_deaths = NULL,
pheno_ndiseases_threshold = NULL,
symptom_p_threshold = NULL,
symptom_intersection_size_threshold = 2)
## Prioritising gene targets.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding disease metadata: Definitions, Preferred.Label
## Importing Orphanet metadata.
## Importing OMIM metadata.
## 42 / 95 (44.21%) disease_name missing.
## 15 / 71 (21.13%) Definitions missing.
## Annotating phenos with MONDO metadata.
## ℹ All local files already up-to-date!
## 0 / 71 (0%) MONDO_ID missing.
## 67 / 71 (94.37%) MONDO_name missing.
## 68 / 71 (95.77%) MONDO_definition missing.
## 15 / 71 (21.13%) Definitions missing.
## Prioritised targets: step='start'
## - Rows: 511
## - Phenotypes: 96
## - Diseases: 71
## - Cell types: 32
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold'
## - Rows: 511
## - Phenotypes: 96
## - Diseases: 71
## - Cell types: 32
## Filtering @ fold-change >= 1
## Prioritised targets: step='fold_threshold'
## - Rows: 511
## - Phenotypes: 96
## - Diseases: 71
## - Cell types: 32
## Prioritised targets: step='symptom_p_threshold'
## - Rows: 511
## - Phenotypes: 96
## - Diseases: 71
## - Cell types: 32
## Prioritised targets: step='symptom_intersection_size_threshold'
## - Rows: 502
## - Phenotypes: 88
## - Diseases: 65
## - Cell types: 30
## Annotating phenos with AgeOfDeath.
## Prioritised targets: step='keep_deaths'
## - Rows: 502
## - Phenotypes: 88
## - Diseases: 65
## - Cell types: 30
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
## Removing remove descendants of: 'Clinical course'
## Translating all phenotypes to HPO IDs.
## + Returning a dictionary of phenotypes (different order as input).
## Prioritised targets: step='remove_descendants'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## Getting absolute ontology level for 87 HPO IDs.
## ℹ All local files already up-to-date!
## Prioritised targets: step='keep_ont_levels'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## Annotating phenos with onset.
## Prioritised targets: step='keep_onsets'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## Annotating phenos with modifiers
## Prioritised targets: step='severity_threshold'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## Prioritised targets: step='severity_threshold_max'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## Annotating phenos with n_diseases
## Prioritised targets: step='pheno_ndiseases_threshold'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold'
## - Rows: 501
## - Phenotypes: 87
## - Diseases: 65
## - Cell types: 30
## 21 / 30 of cell types kept.
## Prioritised targets: step='keep_celltypes'
## - Rows: 372
## - Phenotypes: 81
## - Diseases: 56
## - Cell types: 21
## Converting phenos to GRanges.
## Loading required namespace: ensembldb
## Gathering metadata for 260 unique genes.
## Loading required namespace: EnsDb.Hsapiens.v75
## Prioritised targets: step='symptom_gene_overlap'
## - Rows: 2,666
## - Phenotypes: 81
## - Diseases: 56
## - Cell types: 21
## - Genes: 260
## Filtering by keep_seqnames.
## Prioritised targets: step='keep_seqnames'
## - Rows: 2,666
## - Phenotypes: 81
## - Diseases: 56
## - Cell types: 21
## - Genes: 260
## Filtering by gene-disease association evidence.
## Annotating gene-disease associations with Evidence score
## Gathering data from GenCC.
## Importing cached file.
## Prioritised targets: step='keep_evidence'
## - Rows: 2,159
## - Phenotypes: 80
## - Diseases: 36
## - Cell types: 20
## - Genes: 182
## Filtering by gene size.
## 182 / 182 genes kept.
## Prioritised targets: step='gene_size'
## - Rows: 2,159
## - Phenotypes: 80
## - Diseases: 36
## - Cell types: 20
## - Genes: 182
## Prioritised targets: step='keep_biotypes'
## - Rows: 2,159
## - Phenotypes: 80
## - Diseases: 36
## - Cell types: 20
## - Genes: 182
## Prioritised targets: step='keep_specificity_quantiles'
## - Rows: 2,159
## - Phenotypes: 80
## - Diseases: 36
## - Cell types: 20
## - Genes: 182
## Prioritised targets: step='keep_mean_exp_quantiles'
## - Rows: 2,159
## - Phenotypes: 80
## - Diseases: 36
## - Cell types: 20
## - Genes: 182
## Annotating gene frequencies.
## Prioritised targets: step='gene_frequency_threshold'
## - Rows: 2,557
## - Phenotypes: 80
## - Diseases: 36
## - Cell types: 20
## - Genes: 182
## Sorting rows.
## Prioritised targets: step='end'
## - Rows: 2,557
## - Phenotypes: 80
## - Diseases: 36
## - Cell types: 20
## - Genes: 182
vn <- MultiEWCE::prioritise_targets_network(
top_targets = res_filt$top_targets,
submain = "dementia/neurodegeneration & diabetes/obesity",
save_path = here::here("networks/dementia_diabetes_network.html"),
show_plot = FALSE)
## Creating network.
## Creating plot.
## Saving plot ==> /Users/bms20/Desktop/Rare Disease Celltyping/RareDiseasePrioritisation/networks/dementia_diabetes_network.html
vn$plot
Let’s prioritise therapeutics targets for phenotypes that fall within the broader “abnormality of the nervous system” HPO branch.
res_nerv <- MultiEWCE::prioritise_targets(results = res[ancestor_name=="Abnormality of the nervous system"],
fold_threshold=2,
keep_ont_levels=seq(5),
keep_tiers = NULL,
severity_threshold = NULL,
keep_onsets = NULL,
keep_deaths = NULL,
pheno_ndiseases_threshold = NULL,
symptom_p_threshold = NULL,
symptom_intersection_size_threshold = 2,
group_vars = c("hpo_id"),
top_n=1)
## Prioritising gene targets.
## Adding term definitions.
## ℹ All local files already up-to-date!
## Adding disease metadata: Definitions, Preferred.Label
## Importing Orphanet metadata.
## Importing OMIM metadata.
## 894 / 1434 (62.34%) disease_name missing.
## 467 / 931 (50.16%) Definitions missing.
## Annotating phenos with MONDO metadata.
## ℹ All local files already up-to-date!
## 2 / 931 (0.21%) MONDO_ID missing.
## 839 / 931 (90.12%) MONDO_name missing.
## 916 / 931 (98.39%) MONDO_definition missing.
## 458 / 931 (49.19%) Definitions missing.
## Prioritised targets: step='start'
## - Rows: 20,576
## - Phenotypes: 360
## - Diseases: 931
## - Cell types: 54
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold'
## - Rows: 20,576
## - Phenotypes: 360
## - Diseases: 931
## - Cell types: 54
## Filtering @ fold-change >= 2
## Prioritised targets: step='fold_threshold'
## - Rows: 2,224
## - Phenotypes: 231
## - Diseases: 185
## - Cell types: 48
## Prioritised targets: step='symptom_p_threshold'
## - Rows: 2,224
## - Phenotypes: 231
## - Diseases: 185
## - Cell types: 48
## Prioritised targets: step='symptom_intersection_size_threshold'
## - Rows: 2,224
## - Phenotypes: 231
## - Diseases: 185
## - Cell types: 48
## Annotating phenos with AgeOfDeath.
## Prioritised targets: step='keep_deaths'
## - Rows: 2,224
## - Phenotypes: 231
## - Diseases: 185
## - Cell types: 48
## Adding level-3 ancestor to each HPO ID.
## ℹ All local files already up-to-date!
## Removing remove descendants of: 'Clinical course'
## Translating all phenotypes to HPO IDs.
## + Returning a dictionary of phenotypes (different order as input).
## Prioritised targets: step='remove_descendants'
## - Rows: 2,224
## - Phenotypes: 231
## - Diseases: 185
## - Cell types: 48
## Getting absolute ontology level for 231 HPO IDs.
## ℹ All local files already up-to-date!
## Prioritised targets: step='keep_ont_levels'
## - Rows: 1,746
## - Phenotypes: 152
## - Diseases: 169
## - Cell types: 47
## Annotating phenos with onset.
## Prioritised targets: step='keep_onsets'
## - Rows: 1,746
## - Phenotypes: 152
## - Diseases: 169
## - Cell types: 47
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers'
## - Rows: 1,746
## - Phenotypes: 152
## - Diseases: 169
## - Cell types: 47
## Annotating phenos with modifiers
## Prioritised targets: step='severity_threshold'
## - Rows: 1,746
## - Phenotypes: 152
## - Diseases: 169
## - Cell types: 47
## Prioritised targets: step='severity_threshold_max'
## - Rows: 1,746
## - Phenotypes: 152
## - Diseases: 169
## - Cell types: 47
## Annotating phenos with n_diseases
## Prioritised targets: step='pheno_ndiseases_threshold'
## - Rows: 1,746
## - Phenotypes: 152
## - Diseases: 169
## - Cell types: 47
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold'
## - Rows: 1,746
## - Phenotypes: 152
## - Diseases: 169
## - Cell types: 47
## 25 / 47 of cell types kept.
## Prioritised targets: step='keep_celltypes'
## - Rows: 1,057
## - Phenotypes: 110
## - Diseases: 113
## - Cell types: 25
## Converting phenos to GRanges.
## Gathering metadata for 385 unique genes.
## Prioritised targets: step='symptom_gene_overlap'
## - Rows: 5,248
## - Phenotypes: 110
## - Diseases: 113
## - Cell types: 25
## - Genes: 385
## Filtering by keep_seqnames.
## Prioritised targets: step='keep_seqnames'
## - Rows: 5,248
## - Phenotypes: 110
## - Diseases: 113
## - Cell types: 25
## - Genes: 385
## Filtering by gene-disease association evidence.
## Annotating gene-disease associations with Evidence score
## Gathering data from GenCC.
## Importing cached file.
## Prioritised targets: step='keep_evidence'
## - Rows: 4,236
## - Phenotypes: 107
## - Diseases: 81
## - Cell types: 24
## - Genes: 270
## Filtering by gene size.
## 270 / 270 genes kept.
## Prioritised targets: step='gene_size'
## - Rows: 4,236
## - Phenotypes: 107
## - Diseases: 81
## - Cell types: 24
## - Genes: 270
## Prioritised targets: step='keep_biotypes'
## - Rows: 4,236
## - Phenotypes: 107
## - Diseases: 81
## - Cell types: 24
## - Genes: 270
## Prioritised targets: step='keep_specificity_quantiles'
## - Rows: 4,236
## - Phenotypes: 107
## - Diseases: 81
## - Cell types: 24
## - Genes: 270
## Prioritised targets: step='keep_mean_exp_quantiles'
## - Rows: 4,236
## - Phenotypes: 107
## - Diseases: 81
## - Cell types: 24
## - Genes: 270
## Annotating gene frequencies.
## Prioritised targets: step='gene_frequency_threshold'
## - Rows: 5,353
## - Phenotypes: 107
## - Diseases: 81
## - Cell types: 24
## - Genes: 270
## Sorting rows.
## Finding top 1 gene targets per: hpo_id
## Prioritised targets: step='top_n'
## - Rows: 107
## - Phenotypes: 107
## - Diseases: 31
## - Cell types: 21
## - Genes: 35
## Prioritised targets: step='end'
## - Rows: 107
## - Phenotypes: 107
## - Diseases: 31
## - Cell types: 21
## - Genes: 35
annot <- HPOExplorer::gpt_annot_codify()
## ℹ All local files already up-to-date!
## Reading in GPT annotations for 5,844 phenotypes.
targets <- merge(res_nerv$top_targets,
annot$annot_weighted[,-c("hpo_name")],
by="hpo_id") |>
data.table::setorderv(c("severity_score_gpt","fold_change"),
c(-1,-1))
MultiEWCE::create_dt(targets)
sessionInfo()
## R version 4.3.1 (2023-06-16)
## Platform: aarch64-apple-darwin20 (64-bit)
## Running under: macOS Sonoma 14.1
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.11.0
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## time zone: Europe/London
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] GenomicRanges_1.53.3 IRanges_2.35.3 S4Vectors_0.39.3
##
## loaded via a namespace (and not attached):
## [1] later_1.3.1 BiocIO_1.11.0
## [3] bitops_1.0-7 ggplotify_0.1.2
## [5] GeneOverlap_1.37.0 filelock_1.0.2
## [7] R.oo_1.25.0 tibble_3.2.1
## [9] ontologyPlot_1.6 ggnetwork_0.5.12
## [11] graph_1.79.4 XML_3.99-0.14
## [13] lifecycle_1.0.3 httr2_0.2.3
## [15] rstatix_0.7.2 HPOExplorer_0.99.11
## [17] rprojroot_2.0.3 ensembldb_2.25.1
## [19] pals_1.8 lattice_0.22-4
## [21] crosstalk_1.2.0 backports_1.4.1
## [23] magrittr_2.0.3 limma_3.57.11
## [25] plotly_4.10.3 sass_0.4.7
## [27] rmarkdown_2.25 jquerylib_0.1.4
## [29] yaml_2.3.7 httpuv_1.6.12
## [31] HGNChelper_0.8.1 mapproj_1.2.11
## [33] DBI_1.1.3 RColorBrewer_1.1-3
## [35] lubridate_1.9.3 maps_3.4.1
## [37] abind_1.4-5 zlibbioc_1.47.0
## [39] R.utils_2.12.2 purrr_1.0.2
## [41] AnnotationFilter_1.25.0 BiocGenerics_0.47.1
## [43] RCurl_1.98-1.12 yulab.utils_0.1.0
## [45] rappdirs_0.3.3 MultiEWCE_0.1.6
## [47] GenomeInfoDbData_1.2.11 gitcreds_0.1.2
## [49] tidytree_0.4.5 piggyback_0.1.5
## [51] codetools_0.2-19 DelayedArray_0.27.10
## [53] xml2_1.3.5 DT_0.30
## [55] tidyselect_1.2.0 aplot_0.2.2
## [57] matrixStats_1.0.0 stats4_4.3.1
## [59] BiocFileCache_2.9.1 GenomicAlignments_1.37.0
## [61] jsonlite_1.8.7 tidygraph_1.2.3
## [63] ellipsis_0.3.2 paintmap_1.0
## [65] progress_1.2.2 tools_4.3.1
## [67] treeio_1.25.4 Rcpp_1.0.11
## [69] glue_1.6.2 SparseArray_1.1.12
## [71] here_1.0.1 xfun_0.40
## [73] MatrixGenerics_1.13.2 GenomeInfoDb_1.37.7
## [75] RNOmni_1.0.1.2 dplyr_1.1.3
## [77] BiocManager_1.30.22 fastmap_1.1.1
## [79] fansi_1.0.5 caTools_1.18.2
## [81] digest_0.6.33 timechange_0.2.0
## [83] R6_2.5.1 mime_0.12
## [85] gridGraphics_0.5-1 colorspace_2.1-0
## [87] gtools_3.9.4 biomaRt_2.57.1
## [89] dichromat_2.0-0.1 RSQLite_2.3.1
## [91] R.methodsS3_1.8.2 utf8_1.2.4
## [93] tidyr_1.3.0 generics_0.1.3
## [95] data.table_1.14.8 rtracklayer_1.61.2
## [97] prettyunits_1.2.0 httr_1.4.7
## [99] htmlwidgets_1.6.2 S4Arrays_1.1.6
## [101] ontologyIndex_2.11 pkgconfig_2.0.3
## [103] gtable_0.3.4 blob_1.2.4
## [105] SingleCellExperiment_1.23.0 XVector_0.41.2
## [107] htmltools_0.5.6.1 carData_3.0-5
## [109] ProtGenerics_1.33.1 scales_1.2.1
## [111] Biobase_2.61.0 png_0.1-8
## [113] EnsDb.Hsapiens.v75_2.99.0 ggfun_0.1.3
## [115] knitr_1.44 rstudioapi_0.15.0
## [117] rjson_0.2.21 reshape2_1.4.4
## [119] visNetwork_2.1.2 coda_0.19-4
## [121] statnet.common_4.9.0 nlme_3.1-163
## [123] curl_5.1.0 cachem_1.0.8
## [125] stringr_1.5.0 BiocVersion_3.18.0
## [127] KernSmooth_2.23-22 parallel_4.3.1
## [129] AnnotationDbi_1.63.2 restfulr_0.0.15
## [131] pillar_1.9.0 grid_4.3.1
## [133] vctrs_0.6.4 gplots_3.1.3
## [135] promises_1.2.1 ggpubr_0.6.0
## [137] car_3.1-2 dbplyr_2.3.4
## [139] xtable_1.8-4 Rgraphviz_2.45.0
## [141] evaluate_0.22 GenomicFeatures_1.53.3
## [143] orthogene_1.7.2 Rsamtools_2.17.0
## [145] cli_3.6.1 compiler_4.3.1
## [147] rlang_1.1.1 crayon_1.5.2
## [149] grr_0.9.5 ggsignif_0.6.4
## [151] gprofiler2_0.2.2 EWCE_1.9.3
## [153] plyr_1.8.9 fs_1.6.3
## [155] stringi_1.7.12 BiocParallel_1.35.4
## [157] viridisLite_0.4.2 ewceData_1.9.0
## [159] network_1.18.1 babelgene_22.9
## [161] munsell_0.5.0 Biostrings_2.69.2
## [163] lazyeval_0.2.2 gh_1.4.0
## [165] homologene_1.4.68.19.3.27 Matrix_1.6-1.1
## [167] ExperimentHub_2.9.1 hms_1.1.3
## [169] patchwork_1.1.3 bit64_4.0.5
## [171] ggplot2_3.4.4 KEGGREST_1.41.4
## [173] statmod_1.5.0 shiny_1.7.5.1
## [175] SummarizedExperiment_1.31.1 interactiveDisplayBase_1.39.0
## [177] AnnotationHub_3.9.2 igraph_1.5.1
## [179] broom_1.0.5 memoise_2.0.1.9000
## [181] bslib_0.5.1 ggtree_3.9.1
## [183] bit_4.0.5 ape_5.7-1