From 3e2d3ad0cd0270468f92412965a5fc1495ff4dcf Mon Sep 17 00:00:00 2001 From: "Brian M. Schilder" <34280215+bschilder@users.noreply.github.com> Date: Wed, 20 Mar 2024 18:51:28 +0000 Subject: [PATCH] update csl report --- reports/CSL.Rmd | 151 +++++++++-- reports/CSL.html | 640 ++++++++++++++++++++++++++++++----------------- 2 files changed, 534 insertions(+), 257 deletions(-) diff --git a/reports/CSL.Rmd b/reports/CSL.Rmd index d195c24..d86e5eb 100644 --- a/reports/CSL.Rmd +++ b/reports/CSL.Rmd @@ -3,7 +3,12 @@ title: "Rare Disease Celltyping" subtitle: "CSL Areas of Interest" author: "Brian M. Schilder" date: "

Updated: `r format( Sys.Date(), '%b-%d-%Y')`

" -output: html_document +output: + html_document: + code_folding: hide +editor_options: + markdown: + wrap: 72 --- ```{r setup, include=TRUE} @@ -20,16 +25,40 @@ knitr::opts_chunk$set(warning = FALSE, ``` +Here, we wanted to map [CSL](https://www.csl.com/) areas of interest +onto the Human Phenotype Ontology (HPO) and/or other disease ontologies +(OMIM/ORPH). This allowed us to connect our phenotype-cell type +association results to the CSL areas of interest. For a description of +our methodology, see here: + +> Identification of cell type-specific gene targets underlying thousands +> of rare diseases and subtraits Kitty B. Murphy, Robert Gordon-Smith, +> Jai Chapman, Momoko Otani, Brian M. Schilder, Nathan G. Skene +> ## Import data ### Import CSL areas of interest -CSL areas of interest mapped onto Human Phenotype Ontology (HPO) and/or other disease ontologies (OMIM/ORPH). +First, we: + +- Gathered all diseases/phenotypes that CSL lists on their website + and/or the Research Accelerator Initiative materials. + +- For each disease/phenotype, we assigned a Group based on whether CSL + has expressed interest in Early Stage Partnering with external labs + (e.g. via the RAI) or whether they are already actively pursuing + research in these fields. + +- We then grouped each disease/phenotype into a broader Area + ("Immunology") and a particular disease Subarea ("Dermatomyositis"). + +- Next, we mapped each disease/phenotype onto a standardised HPO ID or + OMIM/Orphanet ID. ```{r} csl <- data.table::fread(here::here("data/CSL_areas_of_interest.tsv")) -csl <- csl[Group=="Early Stage Partnering"] +# csl <- csl[Group=="Early Stage Partnering"] # extract IDs from the Entry column of csl data.table with the pattern "HP:", "OMIM:", "ORPHA:" and put into a new col csl[, ID := stringr::str_extract(Entry, "HP:\\d+|OMIM:\\d+|ORPHA:\\d+")] # extract names from Entry column WITHOUT the ID @@ -38,8 +67,9 @@ csl[, Name := trimws(stringr::str_remove(Entry, "HP:\\d+|OMIM:\\d+|ORPHA:\\d+")) MSTExplorer::create_dt(csl) ``` -Extract IDs of phenotypes and diseases. -Get any descendants of manually mapped HPO IDs as well. +Next, I took all the HPO IDs and expanded this list to any HPO terms +that are descendants of the original HPO IDs. This allows us to capture +any phenotypes that are more specific than the original CSL HPO IDs. ```{r} hpo_ids <- csl[grepl("HP:",ID)]$ID |> unique() @@ -54,6 +84,10 @@ hpo_ids_extended <- unlist(hpo_ids_list) |> unique() ### Import phenotype-cell type association results +Next, I imported the results of our phenotype-cell type association +analysis. This analysis was performed using the `MSTExplorer` package +and the results are stored in a data.table. + ```{r} results <- MSTExplorer::load_example_results() results <- HPOExplorer::add_hpo_name(results, hpo = hpo) @@ -66,9 +100,17 @@ results[,effect:=estimate] p2g <- HPOExplorer::load_phenotype_to_genes() ``` - ## Prioritise targets - + +We developed a pipeline to help filter down our results to identif the +promise promising gene targets for the most severe phenotypes. It +includes a number of different steps, including filtering on cell type +specific gene expression and the evidence supporting the causal +relationships between each gene and a phenotype. + +Ultimately, it allows us to trace multi-scale disease mechanisms from +genes --\> cell types --\> phenotypes --\> diseases + ```{r} prioritise_targets_out <- MSTExplorer::prioritise_targets( results = results, @@ -96,8 +138,25 @@ targets <- all_targets[ MSTExplorer::create_dt(head(targets,100)) ``` -Summarise results: +### Summary + +Here we summarise the percentage of CSL phenotypes of interest (with HPO +IDs) included in our prioritised cell type-specific targets. We also +compute the proportion of CSL diseases (with OMIM/Orphanet IDs) that +have at least one of those phenotypes as a symptom. + ```{r, message=TRUE} + +message(paste0( + length(intersect(results$hpo_id,hpo_ids_extended)),"/", + length(unique(hpo_ids_extended)), + " (",round(length(intersect(hpo_ids_extended,results$hpo_id))/ + length(unique(hpo_ids_extended))*100,2),"%)", + " CSL phenotypes", + " covered in our phenotype-cell type association results." +)) + + message(paste0( length(intersect(all_targets$hpo_id,hpo_ids_extended)),"/", length(unique(hpo_ids_extended)), @@ -108,18 +167,17 @@ message(paste0( )) ``` - ### Get the top candidates per area of interest - -#### Per HPO ancestor -```{r} -top_targets_ancestor <- targets[!duplicated(ancestor_name),] -``` +From our list of prioritised cell type-specific gene targets, we can now +select the top targets for each CSL area of interest. -#### Per CSL area of interest +We have arbitrarily set a cutoff of 3 targets per area, but this can +easily be adjusted as needed. ```{r} +top_n <- 3 +# top_targets_ancestor <- targets[!duplicated(ancestor_name),] csl_areas <- unique(csl[,c("ID","Area","Subarea")]) targets2 <- targets |> merge(csl_areas, @@ -132,7 +190,7 @@ targets2[,Area:=data.table::fcoalesce(Area.x,Area.y)] targets2[,Subarea:=data.table::fcoalesce(Subarea.x,Subarea.y)] #### Select top N targets per CSL Area #### num_cols <- sapply(targets2,is.numeric) -top_targets <- targets2[!is.na(Area), head(.SD,3), +top_targets <- targets2[!is.na(Area), head(.SD,top_n), by=c("Area")] # drop list columns # save_path <- here::here("reports/top_targets_CSL.tsv") @@ -143,6 +201,9 @@ top_targets <- targets2[!is.na(Area), head(.SD,3), MSTExplorer::create_dt(top_targets) ``` +We can also count the number of targets, genes, phenotypes and diseases +per area of interest. + ```{r} target_counts <- targets2[,list(n_targets=.N, n_genes=data.table::uniqueN(gene_symbol), @@ -154,19 +215,29 @@ target_counts <- targets2[,list(n_targets=.N, MSTExplorer::create_dt(target_counts) ``` - - ## Explore top targets +Now that we have the top candidate targets for CSL disease areas, we can +explore them in more detail. For example, we can use additional +resources (ClinVar, Variant Effect Predictor, gnomad) to find out which +variants are deleterious within (or around) the gene targets. We can +also gathered population-level data on the frequency of these variants, +giving us a better idea of the number of patients that may benefit from +treating this particular mechanism. + ### Stroke -Check for other results with the same cell type and gene target. +Let's first explore phenotypes related to "Stroke". + +As an example, we're going to look specifically at the role of *COL4A1* +in stroke. + ```{r} stroke_targets <- targets2[grepl("stroke",hpo_name, ignore.case = TRUE)] stroke_targets <- stroke_targets[gene_symbol=="COL4A1"] ``` -### ClinVar +#### ClinVar ```{r include=FALSE, eval=FALSE} cv <- KGExplorer::get_clinvar(annotate = TRUE) @@ -190,14 +261,29 @@ KGExplorer::plot_clinvar(cv_gene ) ``` -### gnomad +#### gnomad + +We gathered additional data from the gnomad website on the *COL4A1* gene +(i.e. +[ENSG00000187498](https://gnomad.broadinstitute.org/gene/ENSG00000187498?dataset=gnomad_r4)). -https://gnomad.broadinstitute.org/gene/ENSG00000187498?dataset=gnomad_r4 +Our goal here was to: -COL4A1 exonn positions: -https://www.ensembl.org/Homo_sapiens/Transcript/Exons?db=core;g=ENSG00000187498;r=13:110213499-110214499;t=ENST00000375820;v=rs34004222;vdb=variation;vf=813354076 +- Identify confirmed pathogenic variants in *COL4A1*. -Exon 3: chr13:110213926-110214015 +- Check the frequency of these variants in the general population. + +- Identify a particular exon that has the highest frequency of + pathogenic variants. The idea being that this exon could be a good + target for therapeutic intervention via ASO-induced exon-skipping. + +Additional info: + +- [Genomic coordinates of each *COL4A1* exon can be found + here.](https://www.ensembl.org/Homo_sapiens/Transcript/Exons?db=core;g=ENSG00000187498;r=13:110213499-110214499;t=ENST00000375820;v=rs34004222;vdb=variation;vf=813354076) + +- Exon 3 spans the following genomic coordinates: + chr13:110213926-110214015 ```{r} #### Import #### @@ -240,6 +326,19 @@ gn_top[,head(.SD,1),by="exon_id", MSTExplorer::create_dt() ``` +We found two exons with the highest cumulative frequency of pathogenic +variants in the *COL4A1* gene. Of these, exon 3 has the highest +cumulative frequency of pathogenic variants. + +Follow up research into the existing literature was carried out (not +shown here), to confirm whether: + +- any similar therapies currently existing for this gene + +- exon 3 could be safely skipped + +- there are any animal models available for the homologous exons in + this gene ```{r include=FALSE, eval=FALSE} sort(table(gn$VEP.Annotation), decreasing = TRUE) @@ -329,7 +428,9 @@ rhdf5::h5read(public_S3_url, ## Session info
+ ```{r} sessionInfo() ``` +
diff --git a/reports/CSL.html b/reports/CSL.html index 8bb1587..a26a028 100644 --- a/reports/CSL.html +++ b/reports/CSL.html @@ -207,6 +207,83 @@ }); }; + + + @@ -76729,13 +76809,21 @@ @@ -76751,24 +76839,48 @@


knitr::opts_chunk$set(warning = FALSE, cache = TRUE, message = FALSE) +

Here, we wanted to map CSL areas +of interest onto the Human Phenotype Ontology (HPO) and/or other disease +ontologies (OMIM/ORPH). This allowed us to connect our phenotype-cell +type association results to the CSL areas of interest. For a description +of our methodology, see here:

+
+

Identification of cell type-specific gene targets underlying +thousands of rare diseases and subtraits Kitty B. Murphy, Robert +Gordon-Smith, Jai Chapman, Momoko Otani, Brian M. Schilder, Nathan G. +Skene https://www.medrxiv.org/content/10.1101/2023.02.13.23285820v1

+

Import data

Import CSL areas of interest

-

CSL areas of interest mapped onto Human Phenotype Ontology (HPO) -and/or other disease ontologies (OMIM/ORPH).

+

First, we:

+
    +
  • Gathered all diseases/phenotypes that CSL lists on their website +and/or the Research Accelerator Initiative materials.

  • +
  • For each disease/phenotype, we assigned a Group based on whether +CSL has expressed interest in Early Stage Partnering with external labs +(e.g. via the RAI) or whether they are already actively pursuing +research in these fields.

  • +
  • We then grouped each disease/phenotype into a broader Area +(“Immunology”) and a particular disease Subarea +(“Dermatomyositis”).

  • +
  • Next, we mapped each disease/phenotype onto a standardised HPO ID +or OMIM/Orphanet ID.

  • +
csl <- data.table::fread(here::here("data/CSL_areas_of_interest.tsv"))
-csl <- csl[Group=="Early Stage Partnering"]
+# csl <- csl[Group=="Early Stage Partnering"]
 # extract IDs from the Entry column of csl data.table with the pattern "HP:", "OMIM:", "ORPHA:" and put into a new col
 csl[, ID := stringr::str_extract(Entry, "HP:\\d+|OMIM:\\d+|ORPHA:\\d+")]
 # extract names from Entry column WITHOUT the ID
 csl[, Name := trimws(stringr::str_remove(Entry, "HP:\\d+|OMIM:\\d+|ORPHA:\\d+"))]
 
 MSTExplorer::create_dt(csl)
-
- -

Extract IDs of phenotypes and diseases. Get any descendants of -manually mapped HPO IDs as well.

+
+ +

Next, I took all the HPO IDs and expanded this list to any HPO terms +that are descendants of the original HPO IDs. This allows us to capture +any phenotypes that are more specific than the original CSL HPO IDs.

hpo_ids <- csl[grepl("HP:",ID)]$ID |> unique()
 disease_ids <- csl[!grepl("HP:",ID)]$ID |> unique()
 hpo <- KGExplorer::get_ontology("hp")
@@ -76780,6 +76892,9 @@ 

Import CSL areas of interest

Import phenotype-cell type association results

+

Next, I imported the results of our phenotype-cell type association +analysis. This analysis was performed using the MSTExplorer +package and the results are stored in a data.table.

results <- MSTExplorer::load_example_results()
 results <- HPOExplorer::add_hpo_name(results, hpo = hpo)
 results <- HPOExplorer::add_ont_lvl(results)
@@ -76793,6 +76908,13 @@ 

Import phenotype-cell type association results

Prioritise targets

+

We developed a pipeline to help filter down our results to identif +the promise promising gene targets for the most severe phenotypes. It +includes a number of different steps, including filtering on cell type +specific gene expression and the evidence supporting the causal +relationships between each gene and a phenotype.

+

Ultimately, it allows us to trace multi-scale disease mechanisms from +genes –> cell types –> phenotypes –> diseases

prioritise_targets_out <- MSTExplorer::prioritise_targets(
   results = results, 
   hpo = hpo,
@@ -76819,7 +76941,21 @@ 

Prioritise targets

MSTExplorer::create_dt(head(targets,100))
-

Summarise results:

+
+

Summary

+

Here we summarise the percentage of CSL phenotypes of interest (with +HPO IDs) included in our prioritised cell type-specific targets. We also +compute the proportion of CSL diseases (with OMIM/Orphanet IDs) that +have at least one of those phenotypes as a symptom.

+
message(paste0(
+  length(intersect(results$hpo_id,hpo_ids_extended)),"/",
+        length(unique(hpo_ids_extended)),
+        " (",round(length(intersect(hpo_ids_extended,results$hpo_id))/
+                  length(unique(hpo_ids_extended))*100,2),"%)",
+        " CSL phenotypes",
+  " covered in our phenotype-cell type association results."
+))
+
## 1166/1860 (62.69%) CSL phenotypes covered in our phenotype-cell type association results.
message(paste0(
   length(intersect(all_targets$hpo_id,hpo_ids_extended)),"/",
         length(unique(hpo_ids_extended)),
@@ -76829,15 +76965,16 @@ 

Prioritise targets

" covered in our prioritised targets." ))
## 594/1860 (31.94%) CSL phenotypes (across 4850 diseases) covered in our prioritised targets.
+

Get the top candidates per area of interest

-
-

Per HPO ancestor

-
top_targets_ancestor <- targets[!duplicated(ancestor_name),] 
-
-
-

Per CSL area of interest

-
csl_areas <- unique(csl[,c("ID","Area","Subarea")])
+

From our list of prioritised cell type-specific gene targets, we can +now select the top targets for each CSL area of interest.

+

We have arbitrarily set a cutoff of 3 targets per area, but this can +easily be adjusted as needed.

+
top_n <- 3
+# top_targets_ancestor <- targets[!duplicated(ancestor_name),] 
+csl_areas <- unique(csl[,c("ID","Area","Subarea")])
 targets2 <- targets |>
   merge(csl_areas,
         all.x=TRUE,
@@ -76849,7 +76986,7 @@ 

Per CSL area of interest

targets2[,Subarea:=data.table::fcoalesce(Subarea.x,Subarea.y)] #### Select top N targets per CSL Area #### num_cols <- sapply(targets2,is.numeric) -top_targets <- targets2[!is.na(Area), head(.SD,3), +top_targets <- targets2[!is.na(Area), head(.SD,top_n), by=c("Area")] # drop list columns # save_path <- here::here("reports/top_targets_CSL.tsv") @@ -76858,8 +76995,10 @@

Per CSL area of interest

# top_targets <- data.table::fread(here::here("top_targets_CSL.tsv")) MSTExplorer::create_dt(top_targets)
-
- +
+ +

We can also count the number of targets, genes, phenotypes and +diseases per area of interest.

target_counts <- targets2[,list(n_targets=.N, 
                                 n_genes=data.table::uniqueN(gene_symbol),
                                 n_phenotypes=data.table::uniqueN(hpo_id),
@@ -76868,27 +77007,51 @@ 

Per CSL area of interest

data.table::setorderv("n_targets",-1) MSTExplorer::create_dt(target_counts)
-
- -
+
+

Explore top targets

+

Now that we have the top candidate targets for CSL disease areas, we +can explore them in more detail. For example, we can use additional +resources (ClinVar, Variant Effect Predictor, gnomad) to find out which +variants are deleterious within (or around) the gene targets. We can +also gathered population-level data on the frequency of these variants, +giving us a better idea of the number of patients that may benefit from +treating this particular mechanism.

Stroke

-

Check for other results with the same cell type and gene target.

+

Let’s first explore phenotypes related to “Stroke”.

+

As an example, we’re going to look specifically at the role of +COL4A1 in stroke.

stroke_targets <- targets2[grepl("stroke",hpo_name, ignore.case = TRUE)]
 stroke_targets <- stroke_targets[gene_symbol=="COL4A1"]
+
+

ClinVar

-
-

ClinVar

-
-
-

gnomad

-

https://gnomad.broadinstitute.org/gene/ENSG00000187498?dataset=gnomad_r4

-

COL4A1 exonn positions: https://www.ensembl.org/Homo_sapiens/Transcript/Exons?db=core;g=ENSG00000187498;r=13:110213499-110214499;t=ENST00000375820;v=rs34004222;vdb=variation;vf=813354076

-

Exon 3: chr13:110213926-110214015

+
+

gnomad

+

We gathered additional data from the gnomad website on the +COL4A1 gene (i.e. ENSG00000187498).

+

Our goal here was to:

+
    +
  • Identify confirmed pathogenic variants in +COL4A1.

  • +
  • Check the frequency of these variants in the general +population.

  • +
  • Identify a particular exon that has the highest frequency of +pathogenic variants. The idea being that this exon could be a good +target for therapeutic intervention via ASO-induced +exon-skipping.

  • +
+

Additional info:

+
#### Import ####
 gnomad <- data.table::fread(here::here("data/gnomAD_v4.0.0_ENSG00000187498_2024_02_08_11_13_20.csv"),
                              check.names = TRUE)
@@ -76927,8 +77090,20 @@ 

gnomad

"exon_pathovariants_perbp", "exon_pathovariants_cumfreq")] |> MSTExplorer::create_dt()
-
- +
+ +

We found two exons with the highest cumulative frequency of +pathogenic variants in the COL4A1 gene. Of these, exon 3 has +the highest cumulative frequency of pathogenic variants.

+

Follow up research into the existing literature was carried out (not +shown here), to confirm whether:

+
    +
  • any similar therapies currently existing for this gene

  • +
  • exon 3 could be safely skipped

  • +
  • there are any animal models available for the homologous exons in +this gene

  • +
+
@@ -76953,205 +77128,201 @@

Session info

## [1] stats graphics grDevices utils datasets methods base ## ## loaded via a namespace (and not attached): -## [1] ProtGenerics_1.34.0 -## [2] fs_1.6.3 -## [3] matrixStats_1.2.0 -## [4] bitops_1.0-7 -## [5] EnsDb.Hsapiens.v75_2.99.0 -## [6] httr_1.4.7 -## [7] RColorBrewer_1.1-3 -## [8] doParallel_1.0.17 -## [9] tools_4.3.1 -## [10] backports_1.4.1 -## [11] utf8_1.2.4 -## [12] R6_2.5.1 -## [13] DT_0.32 -## [14] lazyeval_0.2.2 -## [15] GetoptLong_1.0.5 -## [16] prettyunits_1.2.0 -## [17] cli_3.6.2 -## [18] Biobase_2.62.0 -## [19] sass_0.4.8 -## [20] readr_2.1.5 -## [21] ewceData_1.10.0 -## [22] Rsamtools_2.18.0 -## [23] yulab.utils_0.1.4 -## [24] R.utils_2.12.3 -## [25] dichromat_2.0-0.1 -## [26] orthogene_1.9.1 -## [27] maps_3.4.2 -## [28] limma_3.58.1 -## [29] rstudioapi_0.15.0 -## [30] RSQLite_2.3.5 -## [31] pals_1.9 -## [32] generics_0.1.3 -## [33] gridGraphics_0.5-1 -## [34] shape_1.4.6.1 -## [35] BiocIO_1.12.0 -## [36] crosstalk_1.2.1 -## [37] gtools_3.9.5 -## [38] car_3.1-2 -## [39] dplyr_1.1.4 -## [40] zip_2.3.1 -## [41] homologene_1.4.68.19.3.27 -## [42] Matrix_1.6-5 -## [43] fansi_1.0.6 -## [44] S4Vectors_0.40.2 -## [45] abind_1.4-5 -## [46] R.methodsS3_1.8.2 -## [47] lifecycle_1.0.4 -## [48] scatterplot3d_0.3-44 -## [49] yaml_2.3.8 -## [50] carData_3.0-5 -## [51] SummarizedExperiment_1.32.0 -## [52] gplots_3.1.3.1 -## [53] SparseArray_1.2.4 -## [54] BiocFileCache_2.10.1 -## [55] grid_4.3.1 -## [56] blob_1.2.4 -## [57] promises_1.2.1 -## [58] ExperimentHub_2.10.0 -## [59] crayon_1.5.2 -## [60] lattice_0.22-5 -## [61] GenomicFeatures_1.54.4 -## [62] chromote_0.2.0 -## [63] KEGGREST_1.42.0 -## [64] mapproj_1.2.11 -## [65] pillar_1.9.0 -## [66] knitr_1.45 -## [67] ComplexHeatmap_2.18.0 -## [68] KGExplorer_0.99.0 -## [69] GenomicRanges_1.54.1 -## [70] rjson_0.2.21 -## [71] codetools_0.2-19 -## [72] glue_1.7.0 -## [73] ggfun_0.1.4 -## [74] data.table_1.15.2 -## [75] vctrs_0.6.5 -## [76] png_0.1-8 -## [77] treeio_1.26.0 -## [78] gtable_0.3.4 -## [79] HPOExplorer_1.0.0 -## [80] cachem_1.0.8 -## [81] xfun_0.42 -## [82] openxlsx_4.2.5.2 -## [83] S4Arrays_1.2.1 -## [84] mime_0.12 -## [85] tidygraph_1.3.1 -## [86] SingleCellExperiment_1.24.0 -## [87] RNOmni_1.0.1.2 -## [88] iterators_1.0.14 -## [89] simona_1.0.10 -## [90] statmod_1.5.0 -## [91] interactiveDisplayBase_1.40.0 -## [92] ellipsis_0.3.2 -## [93] nlme_3.1-164 -## [94] ggtree_3.10.1 -## [95] EWCE_1.11.3 -## [96] bit64_4.0.5 -## [97] progress_1.2.3 -## [98] filelock_1.0.3 -## [99] rprojroot_2.0.4 -## [100] GenomeInfoDb_1.38.7 -## [101] bslib_0.6.1 -## [102] KernSmooth_2.23-22 -## [103] colorspace_2.1-0 -## [104] BiocGenerics_0.48.1 -## [105] DBI_1.2.2 -## [106] tidyselect_1.2.1 -## [107] processx_3.8.3 -## [108] bit_4.0.5 -## [109] compiler_4.3.1 -## [110] curl_5.2.1 -## [111] rvest_1.0.4 -## [112] httr2_1.0.0 -## [113] xml2_1.3.6 -## [114] DelayedArray_0.28.0 -## [115] plotly_4.10.4 -## [116] rtracklayer_1.62.0 -## [117] scales_1.3.0 -## [118] caTools_1.18.2 -## [119] rappdirs_0.3.3 -## [120] stringr_1.5.1 -## [121] digest_0.6.35 -## [122] piggyback_0.1.5 -## [123] rmarkdown_2.26 -## [124] XVector_0.42.0 -## [125] htmltools_0.5.7 -## [126] pkgconfig_2.0.3 -## [127] GeneOverlap_1.38.0 -## [128] MatrixGenerics_1.14.0 -## [129] echodata_0.99.17 -## [130] dbplyr_2.4.0 -## [131] fastmap_1.1.1 -## [132] ensembldb_2.26.0 -## [133] rlang_1.1.3 -## [134] GlobalOptions_0.1.2 -## [135] htmlwidgets_1.6.4 -## [136] shiny_1.8.0 -## [137] jquerylib_0.1.4 -## [138] jsonlite_1.8.8 -## [139] BiocParallel_1.36.0 -## [140] R.oo_1.26.0 -## [141] RCurl_1.98-1.14 -## [142] magrittr_2.0.3 -## [143] GenomeInfoDbData_1.2.11 -## [144] ggplotify_0.1.2 -## [145] patchwork_1.2.0 -## [146] munsell_0.5.0 -## [147] Rcpp_1.0.12 -## [148] ape_5.7-1 -## [149] babelgene_22.9 -## [150] stringi_1.8.3 -## [151] zlibbioc_1.48.0 -## [152] AnnotationHub_3.10.0 -## [153] plyr_1.8.9 -## [154] parallel_4.3.1 -## [155] Biostrings_2.70.2 -## [156] hms_1.1.3 -## [157] circlize_0.4.16 -## [158] ps_1.7.6 -## [159] igraph_2.0.3 -## [160] ggpubr_0.6.0 -## [161] ggsignif_0.6.4 -## [162] reshape2_1.4.4 -## [163] biomaRt_2.58.2 -## [164] stats4_4.3.1 -## [165] gprofiler2_0.2.3 -## [166] BiocVersion_3.18.1 -## [167] XML_3.99-0.16.1 -## [168] evaluate_0.23 -## [169] BiocManager_1.30.22 -## [170] tzdb_0.4.0 -## [171] foreach_1.5.2 -## [172] httpuv_1.6.14 -## [173] rols_2.30.2 -## [174] grr_0.9.5 -## [175] tidyr_1.3.1 -## [176] purrr_1.0.2 -## [177] clue_0.3-65 -## [178] ggplot2_3.5.0 -## [179] broom_1.0.5 -## [180] xtable_1.8-4 -## [181] restfulr_0.0.15 -## [182] AnnotationFilter_1.26.0 -## [183] tidytree_0.4.6 -## [184] rstatix_0.7.2 -## [185] later_1.3.2 -## [186] viridisLite_0.4.2 -## [187] MSTExplorer_1.0.0 -## [188] TxDb.Hsapiens.UCSC.hg38.knownGene_3.18.0 -## [189] Polychrome_1.5.1 -## [190] tibble_3.2.1 -## [191] websocket_1.4.1 -## [192] aplot_0.2.2 -## [193] memoise_2.0.1.9000 -## [194] AnnotationDbi_1.64.1 -## [195] GenomicAlignments_1.38.2 -## [196] IRanges_2.36.0 -## [197] cluster_2.1.6 -## [198] HGNChelper_0.8.1 -## [199] here_1.0.1
+## [1] fs_1.6.3 +## [2] matrixStats_1.2.0 +## [3] bitops_1.0-7 +## [4] httr_1.4.7 +## [5] RColorBrewer_1.1-3 +## [6] doParallel_1.0.17 +## [7] tools_4.3.1 +## [8] backports_1.4.1 +## [9] utf8_1.2.4 +## [10] R6_2.5.1 +## [11] DT_0.32 +## [12] lazyeval_0.2.2 +## [13] GetoptLong_1.0.5 +## [14] prettyunits_1.2.0 +## [15] cli_3.6.2 +## [16] Biobase_2.62.0 +## [17] sass_0.4.8 +## [18] readr_2.1.5 +## [19] ewceData_1.10.0 +## [20] Rsamtools_2.18.0 +## [21] yulab.utils_0.1.4 +## [22] R.utils_2.12.3 +## [23] dichromat_2.0-0.1 +## [24] orthogene_1.9.1 +## [25] maps_3.4.2 +## [26] limma_3.58.1 +## [27] rstudioapi_0.15.0 +## [28] RSQLite_2.3.5 +## [29] pals_1.9 +## [30] generics_0.1.3 +## [31] gridGraphics_0.5-1 +## [32] shape_1.4.6.1 +## [33] BiocIO_1.12.0 +## [34] gtools_3.9.5 +## [35] crosstalk_1.2.1 +## [36] car_3.1-2 +## [37] dplyr_1.1.4 +## [38] zip_2.3.1 +## [39] homologene_1.4.68.19.3.27 +## [40] Matrix_1.6-5 +## [41] fansi_1.0.6 +## [42] S4Vectors_0.40.2 +## [43] abind_1.4-5 +## [44] R.methodsS3_1.8.2 +## [45] lifecycle_1.0.4 +## [46] scatterplot3d_0.3-44 +## [47] yaml_2.3.8 +## [48] carData_3.0-5 +## [49] SummarizedExperiment_1.32.0 +## [50] gplots_3.1.3.1 +## [51] SparseArray_1.2.4 +## [52] BiocFileCache_2.10.1 +## [53] grid_4.3.1 +## [54] blob_1.2.4 +## [55] promises_1.2.1 +## [56] ExperimentHub_2.10.0 +## [57] crayon_1.5.2 +## [58] lattice_0.22-5 +## [59] GenomicFeatures_1.54.4 +## [60] chromote_0.2.0 +## [61] KEGGREST_1.42.0 +## [62] mapproj_1.2.11 +## [63] pillar_1.9.0 +## [64] knitr_1.45 +## [65] ComplexHeatmap_2.18.0 +## [66] KGExplorer_0.99.0 +## [67] GenomicRanges_1.54.1 +## [68] rjson_0.2.21 +## [69] codetools_0.2-19 +## [70] glue_1.7.0 +## [71] ggfun_0.1.4 +## [72] data.table_1.15.2 +## [73] vctrs_0.6.5 +## [74] png_0.1-8 +## [75] treeio_1.26.0 +## [76] gtable_0.3.4 +## [77] HPOExplorer_1.0.0 +## [78] cachem_1.0.8 +## [79] xfun_0.42 +## [80] openxlsx_4.2.5.2 +## [81] S4Arrays_1.2.1 +## [82] mime_0.12 +## [83] tidygraph_1.3.1 +## [84] SingleCellExperiment_1.24.0 +## [85] RNOmni_1.0.1.2 +## [86] iterators_1.0.14 +## [87] simona_1.0.10 +## [88] statmod_1.5.0 +## [89] interactiveDisplayBase_1.40.0 +## [90] ellipsis_0.3.2 +## [91] nlme_3.1-164 +## [92] ggtree_3.10.1 +## [93] EWCE_1.11.3 +## [94] bit64_4.0.5 +## [95] progress_1.2.3 +## [96] filelock_1.0.3 +## [97] GenomeInfoDb_1.38.7 +## [98] rprojroot_2.0.4 +## [99] bslib_0.6.1 +## [100] KernSmooth_2.23-22 +## [101] colorspace_2.1-0 +## [102] BiocGenerics_0.48.1 +## [103] DBI_1.2.2 +## [104] tidyselect_1.2.1 +## [105] processx_3.8.3 +## [106] bit_4.0.5 +## [107] compiler_4.3.1 +## [108] curl_5.2.1 +## [109] rvest_1.0.4 +## [110] httr2_1.0.0 +## [111] xml2_1.3.6 +## [112] DelayedArray_0.28.0 +## [113] plotly_4.10.4 +## [114] rtracklayer_1.62.0 +## [115] scales_1.3.0 +## [116] caTools_1.18.2 +## [117] rappdirs_0.3.3 +## [118] stringr_1.5.1 +## [119] digest_0.6.35 +## [120] piggyback_0.1.5 +## [121] rmarkdown_2.26 +## [122] XVector_0.42.0 +## [123] htmltools_0.5.7 +## [124] pkgconfig_2.0.3 +## [125] GeneOverlap_1.38.0 +## [126] MatrixGenerics_1.14.0 +## [127] echodata_0.99.17 +## [128] dbplyr_2.4.0 +## [129] fastmap_1.1.1 +## [130] rlang_1.1.3 +## [131] GlobalOptions_0.1.2 +## [132] htmlwidgets_1.6.4 +## [133] shiny_1.8.0 +## [134] jquerylib_0.1.4 +## [135] jsonlite_1.8.8 +## [136] BiocParallel_1.36.0 +## [137] R.oo_1.26.0 +## [138] RCurl_1.98-1.14 +## [139] magrittr_2.0.3 +## [140] GenomeInfoDbData_1.2.11 +## [141] ggplotify_0.1.2 +## [142] patchwork_1.2.0 +## [143] munsell_0.5.0 +## [144] Rcpp_1.0.12 +## [145] ape_5.7-1 +## [146] babelgene_22.9 +## [147] stringi_1.8.3 +## [148] zlibbioc_1.48.0 +## [149] AnnotationHub_3.10.0 +## [150] plyr_1.8.9 +## [151] parallel_4.3.1 +## [152] Biostrings_2.70.2 +## [153] hms_1.1.3 +## [154] circlize_0.4.16 +## [155] ps_1.7.6 +## [156] igraph_2.0.3 +## [157] ggpubr_0.6.0 +## [158] ggsignif_0.6.4 +## [159] reshape2_1.4.4 +## [160] biomaRt_2.58.2 +## [161] stats4_4.3.1 +## [162] gprofiler2_0.2.3 +## [163] BiocVersion_3.18.1 +## [164] XML_3.99-0.16.1 +## [165] evaluate_0.23 +## [166] BiocManager_1.30.22 +## [167] tzdb_0.4.0 +## [168] foreach_1.5.2 +## [169] httpuv_1.6.14 +## [170] rols_2.30.2 +## [171] grr_0.9.5 +## [172] tidyr_1.3.1 +## [173] purrr_1.0.2 +## [174] clue_0.3-65 +## [175] ggplot2_3.5.0 +## [176] broom_1.0.5 +## [177] xtable_1.8-4 +## [178] restfulr_0.0.15 +## [179] tidytree_0.4.6 +## [180] rstatix_0.7.2 +## [181] later_1.3.2 +## [182] viridisLite_0.4.2 +## [183] MSTExplorer_1.0.0 +## [184] Polychrome_1.5.1 +## [185] TxDb.Hsapiens.UCSC.hg38.knownGene_3.18.0 +## [186] tibble_3.2.1 +## [187] websocket_1.4.1 +## [188] aplot_0.2.2 +## [189] GenomicAlignments_1.38.2 +## [190] memoise_2.0.1.9000 +## [191] AnnotationDbi_1.64.1 +## [192] IRanges_2.36.0 +## [193] cluster_2.1.6 +## [194] HGNChelper_0.8.1 +## [195] here_1.0.1
@@ -77188,6 +77359,11 @@

Session info

+