Git Product home page Git Product logo

neurogenomics / mstexplorer Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 5.67 MB

Multi-Scale Target Explorer systematically identifies, prioritises, and visualises cell-type-specific gene therapy targets across the phenome.

Home Page: https://neurogenomics.github.io/MSTExplorer/

R 100.00%
genetics enrichment-analysis r-package biomedicine parallel-computing rare-disease human-phenotype-ontology cell-types

mstexplorer's Introduction

MSTExplorer


License: GPL-3
R build status

Authors: Brian Schilder, Robert Gordon-Smith, Nathan Skene

README updated: Feb-24-2024

MSTExplorer: Multi-Scale Target Explorer

Multi-Scale Target Explorer (MSTExplorer) systematically identifies, prioritises, and visualises cell-type-specific gene therapy targets across the phenome.

If you use MSTExplorer, please cite:

Kitty B. Murphy, Robert Gordon-Smith, Jai Chapman, Momoko Otani, Brian M. Schilder, Nathan G. Skene (2023) Identification of cell type-specific gene targets underlying thousands of rare diseases and subtraits. medRxiv, https://doi.org/10.1101/2023.02.13.23285820

Installation

if(!require("remotes")) install.packages("remotes")

remotes::install_github("neurogenomics/MSTExplorer")
library(MSTExplorer)

Documentation


mstexplorer's People

Contributors

bobgsmith avatar bschilder avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

lizzyjoan

mstexplorer's Issues

`The magick package is required to crop`

Only occurs on windows:
https://github.com/neurogenomics/MultiEWCE/actions/runs/6798449226/job/18482623120#step:2:2571

Run options(crayon.enabled = TRUE, timeout=Sys.getenv("timeout"))
── R CMD build ─────────────────────────────────────────────────────────────────
* checking for file 'D:\a\MultiEWCE\MultiEWCE/DESCRIPTION' ... OK
* preparing 'MultiEWCE':
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ... ERROR
Error: --- re-building 'MultiEWCE.Rmd' using rmarkdown
Analysing: HP:0025114 (1/3): 20 genes.
Analysing: HP:0002948 (2/3): 70 genes.
Analysing: HP:0410219 (3/3): 6 genes.
The magick package is required to crop "C:/Users/runneradmin/AppData/Local/Temp/Rtmpwf8x0G/Rbuild11c444b82d73/MultiEWCE/vignettes/MultiEWCE_files/figure-html/display-1.png" but not available.
Quitting from lines 135-136 [merge] (MultiEWCE.Rmd)
Error: Error: processing vignette 'MultiEWCE.Rmd' failed with diagnostics:

MultiEWCE v0.1.8: Fix unit tests

In MultiEWCE 0.1.8 i made a number of upgrades/fixes:

New features

  • MultiEWCE finally gets a hex sticker!
  • gen_results / gen_overlap
    • Check for existing results and import if already there.
    • Name all results "gen_results.rds" or "gen_overlap.rds" to avoid
      rerunning duplicate analyses on HPC.
  • Update rworkflows.yml

Bug fixes

  • Fix unit tests and examples to use "hpo_id" instead of "hpo_name".
  • load_hpo_graph:
    • export
    • Regenerate and update "hpo_graph.rds" file.
  • Drastically reduce time to run examples.
  • ontology_plot
    • Fix function and add test.
  • DESCRIPTION
    • Depends: R (>= 2.10) --> Depends: R (>= 4.1),
      to ensure |> function available.
    • Rewrite Description field to reflect MultiEWCE's current purpose.

Remaining bugs

Everything seems to pass fine locally, but getting a couple of test failures on GHA:
https://github.com/neurogenomics/MultiEWCE/actions/runs/6755745935/job/18364474266

May have to do with file version updates in HPOExplorer and some caching happening on my local machine.

Saving plot ==> /tmp/RtmpEDtTTF/working_dir/RtmpQIWJbO/filec13b3431c62_prioritise_targets_network.html
[ FAIL 4 | WARN 2 | SKIP 0 | PASS 24 ]

Error: R CMD check found ERRORs
Execution halted
══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-ewce_para.R:45:3'): ewce_para works ──────────────────────────
sum(list_names %in% unique(all_results1$hpo_name)) is not more than length(list_names) - 1. Difference: -1
── Failure ('test-ewce_para.R:47:3'): ewce_para works ──────────────────────────
sum(list_names %in% unique(all_results2$hpo_name)) is not more than length(list_names) - 1. Difference: -1
── Failure ('test-gen_results.R:13:3'): gen_results works ──────────────────────
sum(list_names %in% unique(all_results$hpo_id)) is not more than length(list_names) - 1. Difference: -1
── Failure ('test-gen_results.R:15:3'): gen_results works ──────────────────────
nrow(all_results[q <= 0.05, ]) is not more than 10. Difference: -2

[ FAIL 4 | WARN 2 | SKIP 0 | PASS 24 ]
Error: Test failures
Execution halted

Session info

``` R version 4.3.1 (2023-06-16) Platform: aarch64-apple-darwin20 (64-bit) Running under: macOS Sonoma 14.1

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.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] MultiEWCE_0.1.8 purrr_1.0.2 here_1.0.1 dplyr_1.1.3 hexSticker_0.4.9

loaded via a namespace (and not attached):
[1] later_1.3.1 bitops_1.0-7 ggplotify_0.1.2
[4] GeneOverlap_1.38.0 filelock_1.0.2 tibble_3.2.1
[7] ontologyPlot_1.6 ggnetwork_0.5.12 graph_1.80.0
[10] lifecycle_1.0.3 HPOExplorer_0.99.11 rstatix_0.7.2
[13] rprojroot_2.0.3 processx_3.8.2 lattice_0.22-5
[16] backports_1.4.1 magrittr_2.0.3 rmarkdown_2.25
[19] limma_3.58.1 plotly_4.10.3 remotes_2.4.2.1
[22] yaml_2.3.7 httpuv_1.6.12 sessioninfo_1.2.2
[25] pkgbuild_1.4.2 HGNChelper_0.8.1 ggimage_0.3.3
[28] DBI_1.1.3 RColorBrewer_1.1-3 lubridate_1.9.3
[31] abind_1.4-5 pkgload_1.3.3 zlibbioc_1.48.0
[34] GenomicRanges_1.54.1 BiocGenerics_0.48.1 RCurl_1.98-1.13
[37] yulab.utils_0.1.0 rappdirs_0.3.3 GenomeInfoDbData_1.2.11
[40] IRanges_2.36.0 S4Vectors_0.40.1 tidytree_0.4.5
[43] piggyback_0.1.5 codetools_0.2-19 DelayedArray_0.28.0
[46] tidyselect_1.2.0 aplot_0.2.2 matrixStats_1.0.0
[49] stats4_4.3.1 BiocFileCache_2.10.1 showtext_0.9-6
[52] jsonlite_1.8.7 ellipsis_0.3.2 paintmap_1.0
[55] tools_4.3.1 treeio_1.26.0 Rcpp_1.0.11
[58] glue_1.6.2 SparseArray_1.2.0 xfun_0.41
[61] usethis_2.2.2 MatrixGenerics_1.14.0 GenomeInfoDb_1.38.0
[64] RNOmni_1.0.1.2 withr_2.5.2 BiocManager_1.30.22
[67] fastmap_1.1.1 fansi_1.0.5 callr_3.7.3
[70] caTools_1.18.2 digest_0.6.33 timechange_0.2.0
[73] R6_2.5.1 mime_0.12 gridGraphics_0.5-1
[76] colorspace_2.1-0 gtools_3.9.4 RSQLite_2.3.2
[79] utf8_1.2.4 tidyr_1.3.0 generics_0.1.3
[82] hexbin_1.28.3 data.table_1.14.8 prettyunits_1.2.0
[85] httr_1.4.7 htmlwidgets_1.6.2 S4Arrays_1.2.0
[88] ontologyIndex_2.11 pkgconfig_2.0.3 gtable_0.3.4
[91] rsconnect_1.1.1 blob_1.2.4 SingleCellExperiment_1.24.0
[94] XVector_0.42.0 htmltools_0.5.6.1 carData_3.0-5
[97] profvis_0.3.8 sysfonts_0.8.8 scales_1.2.1
[100] Biobase_2.62.0 png_0.1-8 ggfun_0.1.3
[103] knitr_1.45 rstudioapi_0.15.0 reshape2_1.4.4
[106] coda_0.19-4 statnet.common_4.9.0 nlme_3.1-163
[109] curl_5.1.0 showtextdb_3.0 cachem_1.0.8
[112] stringr_1.5.0 BiocVersion_3.18.0 KernSmooth_2.23-22
[115] miniUI_0.1.1.1 parallel_4.3.1 AnnotationDbi_1.64.0
[118] pillar_1.9.0 grid_4.3.1 vctrs_0.6.4
[121] gplots_3.1.3 urlchecker_1.0.1 promises_1.2.1
[124] ggpubr_0.6.0 car_3.1-2 dbplyr_2.4.0
[127] xtable_1.8-4 evaluate_0.23 Rgraphviz_2.46.0
[130] orthogene_1.8.0 magick_2.8.1 cli_3.6.1
[133] compiler_4.3.1 rlang_1.1.1 crayon_1.5.2
[136] grr_0.9.5 ggsignif_0.6.4 gprofiler2_0.2.2
[139] ps_1.7.5 plyr_1.8.9 EWCE_1.10.2
[142] fs_1.6.3 stringi_1.7.12 viridisLite_0.4.2
[145] ewceData_1.10.0 network_1.18.1 BiocParallel_1.36.0
[148] babelgene_22.9 munsell_0.5.0 Biostrings_2.70.1
[151] lazyeval_0.2.2 devtools_2.4.5 homologene_1.4.68.19.3.27
[154] Matrix_1.6-1.1 ExperimentHub_2.10.0 patchwork_1.1.3
[157] bit64_4.0.5 ggplot2_3.4.4 KEGGREST_1.42.0
[160] statmod_1.5.0 shiny_1.7.5.1 SummarizedExperiment_1.32.0
[163] interactiveDisplayBase_1.40.0 AnnotationHub_3.10.0 broom_1.0.5
[166] memoise_2.0.1.9000 ggtree_3.10.0 bit_4.0.5
[169] ape_5.7-1

</details>

Fix CTD

@NathanSkene @KittyMurphy
I just noticed that the CTD originally included within MultiEWCE is incorrect. It was not processed to the level of gene properly.

MultiEWCE::load_example_ctd()

Screenshot 2023-03-26 at 10 49 38

Instead, it appears to be at the level of transcripts, which were then randomly assigned unique gene-level IDs. You can also tell this right away when looking at the number of dimensions in the CTD.
Screenshot 2023-03-26 at 10 50 29

@bobGSmith can you please confirm which version of the CTD you used in your original EWCE analyses? If it was this version, I will need to redo all of the analyses. Otherwise, our gene counts will be underestimated by ~2/3 and thus the celltype signatures would be degraded.

Determining the appropriate background

An important question for any enrichment-based analysis is: how do we determine the appropriate set of background genes?

In the case of rare disease celltyping project, I think there's two potential backgrounds that could be used.

Options

1. All HPO genes

All genes included in the HPO gene annotations.
This is essentially saying "is this phenotype's genes enriched in a celltype relative to rare disease genes in general?"

> gene_data <- HPOExplorer::load_phenotype_to_genes()
Reading cached RDS file: phenotype_to_genes.txt
+ Version: v2023-10-09
> length(unique(gene_data$gene_symbol))
[1] 5005

2. All human genes

All genes in the human genome, or at least those that appear in the CTD. When the CTD is from mouse, this background would be further reduced to those that have human 1:1 orthologs.

This is essentially saying "is this phenotype's genes enriched in a celltype relative to all genes that are expressed and informative in some cell type?"

genelistSpecies = "human"
sctSpecies = "human"
> bg = orthogene::create_background(
+     species1 = genelistSpecies,
+     species2 = sctSpecies)
Retrieving all genes using: homologene.
Retrieving all organisms available in homologene.
Mapping species name: human
Common name mapping found for human
1 organism identified from search: 9606
Gene table with 19,129 rows retrieved.
Returning all 19,129 genes from human.
Returning 19,129 unique genes from entire human genome.

> length(bg)
[1] 19129

Internally, EWCE will use the CTD genes to subset this list further, as it can only sample specificity scores from genes that are included in the CTD:

Conclusions

@NathanSkene @KittyMurphy I think we concluded the latter is the way to go, especially as this is concordant with how EWCE behaves by default (unless the user supplies their own custom bg= arg).

onto_plot from the ontologyPlot package does not include "Abnormality of" in the phenotype labels on plots

Just making a note as I figured out how to solve this but haven't had time to change it on the web app. You need to create this function

phenotype_namer <- function(HPO_id) {
return (hpo$name[HPO_id])
} 

Then when you call the onto_plot function, assign the phenotype_name function to the label argument e.g.

onto_plot(hpo,  
terms= terms ,
label=phenotype_namer,  
shape="circle", 
edge_attributes = list(color="black"),  
fontsize = 80)

Parallelising in R efficiently

Parallelising over groups in R (e.g. each phenotype's gene list) can use a ton of memory, because you can accidentally copy all objects used inside the loop, which multiplies your memory usage when working with large datasets.

gene_data <- HPOExplorer::load_phenotype_to_genes()
gene_data[,HPO_ID.LinkID:=paste(HPO_ID,LinkID,sep=".")]
nrow(gene_data) # 968,116
length(unique(gene_data$HPO_ID.LinkID)) #621,906

Even on large-memory machines like the Threadripper (250Gb) this quickly gets overloaded bc each parallel process uses 17.6Gb of memory to store the entire gene_data obj over and over again.
17.6 * 50 cores = 835Gb of memory! This means that parallelising chokes up the threadripper's memory and slows it down to a grinding halt, making processing the data even slower than if you had just single-threaded it. This is exactly what happened when i tried this version of the gen_overlap func:
https://github.com/neurogenomics/MultiEWCE/blob/25d26a41096902607a4f595343f2f585dad9f819/R/gen_overlap.R#L49

A better way might be to split the data first into chunks, and then iterate over the chunks:

 split.data.table <- utils::getFromNamespace("split.data.table","data.table")
gene_data_split <- split.data.table(x = gene_data,
                                    by ="HPO_ID.LinkID")

Related posts

https://stackoverflow.com/questions/19082794/speed-up-data-table-group-by-using-multiple-cores-and-parallel-programming
https://stackoverflow.com/questions/14759905/data-table-and-parallel-computing

👇 Contains some useful benchmarking
Rdatatable/data.table#2223

Killing zombie processes

This happens when you launch some paralleised func in R and then decide to stop it midway. A bunch of "zombie" processes are leftover.

Restarting the R session

Sometimes this works, other times not so much. Might not work when memory is so overloaded that you can't restart the R session.

via htop

Didn't seem to work.

Via inline

Someone suggested this, but didn't seem to do anything for me on the Threadripper.

https://stackoverflow.com/questions/25388139/r-parallel-computing-and-zombie-processes

via future

Using future instead of parallel might give me more control over this, but it has to done before launching the processes.
HenrikBengtsson/future#93

via Docker

To kill them, the only effective way I've found is to restart the container:

docker stop <id>
docker start <id>

@Al-Murphy probably relevant to you too

Increase resolution of saved `visNetwork` plots

prioritise_targets_network uses visNetwork to generate really nice interactive plots like this:
Screenshot 2023-02-08 at 07 38 17
Screenshot 2023-02-08 at 07 47 45

Unfortunately, visNetwork doesn't provide any means of exporting the html/javascript-rendered networks as PDFs or PNGs at sufficiently high resolution. The "export PDF" feature is basically just saving a screenshot...
A version of this feature that actually works has been requested many times, but apparently it's a bit tricky and the developer hasn't had time to address it:
https://github.com/datastorm-open/visNetwork/issues?q=visExport

My options include:

  • Hacking a solution to export a decent PNG/PDF for publication figures.
  • Rewriting the entire network plot code so that it uses something else, like ggnetwork. But it will take some time for me to figure out how to make this look decent.

`priortise_targets`: track how many phenotypes/celltypes/genes dropped at each step

This now results a named list, one of which is "report":

res <- MultiEWCE::prioritise_targets()

"report" is a recording of how many phenotypes/celltypes/genes remained after each filtering step.
@NathanSkene This will help us to figure out where phenotypes are getting dropped the most.

Screenshot 2023-02-07 at 17 53 35

I've tried expanding the Tier assignments using a combination of Momoko's curated + my automated approaches (described here #5), but this still seems to be a step where the most phenotypes are dropped. Not necessarily a problem, just something to be aware of.

ggnetwork_plot_full: `Error in cbind(x, y, others) : object 'x' not found`

Seems to only be for certain cell types, eg.

Reprex

res=MultiEWCE::ggnetwork_plot_full( 
    results = load_example_results(),  
    cell_type = "Chromaffin cells", 
    q_threshold = 0.005, 
    fold_threshold = 1) 

Output

ggnetwork_plot_full
Subsetting results by phenotype.
get_cell_ontology
Importing existing file: /Users/schilder/Library/Caches/org.R-project.R/R/HPOExplorer/data/phenotype_to_genes.txt
5 associations remain after filtering.
Creating adjacency matrix for 5 terms.
Making hoverboxes from: 'Phenotype', 'HPO_ID', 'description', 'CellType', 'p', 'q', 'fold_change'
Making phenotype network object.
Getting ontology level for 5 HPO IDs.
Creating ggnetwork plot.
Error in cbind(x, y, others) : object 'x' not found

Full traceback

Error in cbind(x, y, others) : object 'x' not found
14.
cbind(x, y, others)
13.
rbind(cbind(x, y, others), cbind(x = xend, y = yend, others))
12.
eval(substitute(expr), data, enclos = parent.frame())
11.
eval(substitute(expr), data, enclos = parent.frame())
10.
with.default(data, {
rbind(cbind(x, y, others), cbind(x = xend, y = yend, others))
})
9.
with(data, {
rbind(cbind(x, y, others), cbind(x = xend, y = yend, others))
})
8.
to_basic.GeomSegment(data[[i]], prestats_data[[i]], layout, params[[i]],
p)
7.
to_basic(data[[i]], prestats_data[[i]], layout, params[[i]],
p)
6.
layers2traces(data, prestats_data, layout, plot)
5.
gg2list(p, width = width, height = height, tooltip = tooltip,
dynamicTicks = dynamicTicks, layerData = layerData, originalData = originalData,
source = source, ...)
4.
ggplotly.ggplot(p = network_plot, tooltip = tooltip)
3.
plotly::ggplotly(p = network_plot, tooltip = tooltip) at ggnetwork_plot.R#61
2.
plotly::layout(plotly::ggplotly(p = network_plot, tooltip = tooltip),
hoverlabel = list(align = "left")) at ggnetwork_plot.R#61
1.
HPOExplorer::ggnetwork_plot(phenoNet = phenoNet, colour_var = colour_var,
interactive = interactive, verbose = verbose)

Session info

``` R version 4.2.1 (2022-06-23) Platform: x86_64-apple-darwin17.0 (64-bit) Running under: macOS Monterey 12.4

Matrix products: default
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.2

loaded via a namespace (and not attached):
[1] backports_1.4.1 AnnotationHub_3.6.0 BiocFileCache_2.6.0
[4] plyr_1.8.8 lazyeval_0.2.2 orthogene_1.4.1
[7] ewceData_1.6.0 BiocParallel_1.32.5 GenomeInfoDb_1.34.6
[10] ggnetwork_0.5.10 ggplot2_3.4.0 digest_0.6.31
[13] yulab.utils_0.0.6 ensembldb_2.22.0 htmltools_0.5.4
[16] RNOmni_1.0.1 fansi_1.0.3 magrittr_2.0.3
[19] memoise_2.0.1 ontologyPlot_1.6 limma_3.54.0
[22] sna_2.7 Biostrings_2.66.0 matrixStats_0.63.0
[25] R.utils_2.12.2 prettyunits_1.1.1 colorspace_2.0-3
[28] blob_1.2.3 rappdirs_0.3.3 xfun_0.36
[31] dplyr_1.0.10 crayon_1.5.2 RCurl_1.98-1.9
[34] jsonlite_1.8.4 graph_1.76.0 templateR_0.99.0
[37] ape_5.6-2 glue_1.6.2 gtable_0.3.1
[40] zlibbioc_1.44.0 XVector_0.38.0 HGNChelper_0.8.1
[43] DelayedArray_0.24.0 car_3.1-1 Rgraphviz_2.42.0
[46] SingleCellExperiment_1.20.0 BiocGenerics_0.44.0 abind_1.4-5
[49] scales_1.2.1 DBI_1.1.3 rstatix_0.7.1
[52] Rcpp_1.0.9 progress_1.2.2 viridisLite_0.4.1
[55] xtable_1.8-4 gridGraphics_0.5-1 tidytree_0.4.2
[58] bit_4.0.5 DT_0.27 stats4_4.2.1
[61] htmlwidgets_1.6.1 httr_1.4.4 ontologyIndex_2.10
[64] HPOExplorer_0.99.2 ellipsis_0.3.2 farver_2.1.1
[67] pkgconfig_2.0.3 XML_3.99-0.13 R.methodsS3_1.8.2
[70] dbplyr_2.3.0 utf8_1.2.2 labeling_0.4.2
[73] ggplotify_0.1.0 tidyselect_1.2.0 rlang_1.0.6
[76] reshape2_1.4.4 later_1.3.0 AnnotationDbi_1.60.0
[79] munsell_0.5.0 BiocVersion_3.16.0 tools_4.2.1
[82] cachem_1.0.6 cli_3.6.0 generics_0.1.3
[85] RSQLite_2.2.20 ExperimentHub_2.6.0 statnet.common_4.7.0
[88] broom_1.0.2 evaluate_0.20 stringr_1.5.0
[91] fastmap_1.1.0 EnsDb.Hsapiens.v75_2.99.0 yaml_2.3.6
[94] ggtree_3.6.2 knitr_1.41 babelgene_22.9
[97] bit64_4.0.5 purrr_1.0.1 AnnotationFilter_1.22.0
[100] KEGGREST_1.38.0 gprofiler2_0.2.1 nlme_3.1-161
[103] mime_0.12 R.oo_1.25.0 grr_0.9.5
[106] aplot_0.1.9 xml2_1.3.3 biomaRt_2.54.0
[109] brio_1.1.3 compiler_4.2.1 rstudioapi_0.14
[112] plotly_4.10.1 filelock_1.0.2 curl_5.0.0
[115] png_0.1-8 interactiveDisplayBase_1.36.0 testthat_3.1.6
[118] ggsignif_0.6.4 treeio_1.22.0 paintmap_1.0
[121] tibble_3.1.8 EWCE_1.6.0 homologene_1.4.68.19.3.27
[124] stringi_1.7.12 desc_1.4.2 GenomicFeatures_1.50.3
[127] lattice_0.20-45 ProtGenerics_1.30.0 Matrix_1.5-3
[130] vctrs_0.5.1 pillar_1.8.1 lifecycle_1.0.3
[133] BiocManager_1.30.19 data.table_1.14.6 bitops_1.0-7
[136] httpuv_1.6.8 patchwork_1.1.2 rtracklayer_1.58.0
[139] GenomicRanges_1.50.2 BiocIO_1.8.0 R6_2.5.1
[142] promises_1.2.0.1 network_1.18.0 IRanges_2.32.0
[145] codetools_0.2-18 pkgload_1.3.2 assertthat_0.2.1
[148] SummarizedExperiment_1.28.0 rprojroot_2.0.3 rjson_0.2.21
[151] GenomicAlignments_1.34.0 Rsamtools_2.14.0 S4Vectors_0.36.1
[154] GenomeInfoDbData_1.2.9 hms_1.1.2 parallel_4.2.1
[157] grid_4.2.1 ggfun_0.0.9 waldo_0.4.0
[160] tidyr_1.2.1 coda_0.19-4 rmarkdown_2.19
[163] MatrixGenerics_1.10.0 carData_3.0-5 ggpubr_0.5.0
[166] piggyback_0.1.4 Biobase_2.58.0 shiny_1.7.4
[169] restfulr_0.0.15

</details>

Filter by symptom gene overlap

In prioritise_targets, include an option to only keep celltype-phenotype associations that appear in the matching celltype-symptom (phenotype + disease) results.

This means that there only genes identified as putative mediator genes in celltype-symptom tests will be kept. Any phenotypes that don't have any genes left after this filter will be dropped.

More granular control can be achieved using the symptom_p_threshold arg as well.
#9

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.