generate_bootstrap_plots takes a gene list and a single cell type transcriptome dataset and generates plots which show how the expression of the genes in the list compares to those in randomly generated gene lists

generate_bootstrap_plots(
  sct_data = NULL,
  hits = NULL,
  bg = NULL,
  genelistSpecies = NULL,
  sctSpecies = NULL,
  output_species = "human",
  reps = 100,
  annotLevel = 1,
  full_results = NA,
  listFileName = "",
  savePath = tempdir(),
  verbose = TRUE
)

Arguments

sct_data

List generated using generate_celltype_data.

hits

List of gene symbols containing the target gene list. Will automatically be converted to human gene symbols if geneSizeControl=TRUE.

bg

List of gene symbols containing the background gene list (including hit genes). If bg=NULL, an appropriate gene background will be created automatically. if geneSizeControl=TRUE.

genelistSpecies

Species that hits genes came from (no longer limited to just "mouse" and "human").

sctSpecies

Species that sct_data came from (no longer limited to just "mouse" and "human").

output_species

Species to convert sct_data and hits to (Default: "human").

reps

Number of random gene lists to generate (Default: 100, but should be >=10,000 for publication-quality results).

annotLevel

An integer indicating which level of sct_data to analyse (Default: 1).

full_results

The full output of bootstrap_enrichment_test for the same gene list.

listFileName

String used as the root for files saved using this function.

savePath

Directory where the BootstrapPlots folder should be saved, default is a temp directory.

verbose

Print messages.

Value

Saves a set of pdf files containing graphs and returns the file where they are saved. These will be saved with the filename adjusted using the value of listFileName. The files are saved into the 'BootstrapPlot' folder. Files start with one of the following:

  • qqplot_noText: sorts the gene list according to how enriched it is in the relevant cell type. Plots the value in the target list against the mean value in the bootstrapped lists.

  • qqplot_wtGSym: as above but labels the gene symbols for the highest expressed genes.

  • bootDists: rather than just showing the mean of the bootstrapped lists, a boxplot shows the distribution of values

  • bootDists_LOG: shows the bootstrapped distributions with the y-axis shown on a log scale

Examples

## Load the single cell data ctd <- ewceData::ctd()
#> see ?ewceData and browseVignettes('ewceData') for documentation
#> loading from cache
## Set the parameters for the analysis ## Use 5 bootstrap lists for speed, for publishable analysis use >10000 reps <- 5 ## Load the gene list and get human orthologs hits <- ewceData::example_genelist()[1:100]
#> see ?ewceData and browseVignettes('ewceData') for documentation
#> loading from cache
## Bootstrap significance test, ## no control for transcript length or GC content ## Use pre-computed results to speed up example full_results <- EWCE::example_bootstrap_results() ### Skip this for example purposes # full_results <- EWCE::bootstrap_enrichment_test( # sct_data = ctd, # hits = hits, # reps = reps, # annotLevel = 1, # sctSpecies = "mouse", # genelistSpecies = "human" # ) plot_file_path <- EWCE::generate_bootstrap_plots( sct_data = ctd, hits = hits, reps = reps, full_results = full_results, listFileName = "Example", sctSpecies = "mouse", genelistSpecies = "human", annotLevel = 1, savePath = tempdir() )
#> Generating gene background for mouse x human ==> human
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: mouse
#> Common name mapping found for mouse
#> 1 organism identified from search: mmusculus
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: human
#> Common name mapping found for human
#> 1 organism identified from search: hsapiens
#> Retrieving all genes using: homologene.
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: mmusculus
#> 1 organism identified from search: 10090
#> Gene table with 21,207 rows retrieved.
#> Returning all 21,207 genes from mmusculus.
#> Retrieving all genes using: homologene.
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: hsapiens
#> 1 organism identified from search: 9606
#> Gene table with 19,129 rows retrieved.
#> Returning all 19,129 genes from hsapiens.
#> Preparing gene_df.
#> data.frame format detected.
#> Extracting genes from Gene.Symbol.
#> 21,207 genes extracted.
#> Converting mmusculus ==> hsapiens orthologs using: homologene
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: mmusculus
#> 1 organism identified from search: 10090
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: hsapiens
#> 1 organism identified from search: 9606
#> Checking for genes without orthologs in hsapiens.
#> Extracting genes from input_gene.
#> 17,355 genes extracted.
#> Extracting genes from ortholog_gene.
#> 17,355 genes extracted.
#> Checking for genes without 1:1 orthologs.
#> Dropping 131 genes that have multiple input_gene per ortholog_gene.
#> Dropping 498 genes that have multiple ortholog_gene per input_gene.
#> Filtering gene_df with gene_map
#> Adding input_gene col to gene_df.
#> Adding ortholog_gene col to gene_df.
#> #> =========== REPORT SUMMARY ===========
#> Total genes dropped after convert_orthologs : #> 4,725 / 21,207 (22%)
#> Total genes remaining after convert_orthologs : #> 16,482 / 21,207 (78%)
#> #> =========== REPORT SUMMARY ===========
#> 16,482 / 21,207 (77.72%) target_species genes remain after ortholog conversion.
#> 16,482 / 19,129 (86.16%) reference_species genes remain after ortholog conversion.
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: human
#> Common name mapping found for human
#> 1 organism identified from search: hsapiens
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: human
#> Common name mapping found for human
#> 1 organism identified from search: hsapiens
#> Retrieving all genes using: homologene.
#> Retrieving all organisms available in gprofiler.
#> Using stored `gprofiler_orgs`.
#> Mapping species name: hsapiens
#> 1 organism identified from search: 9606
#> Gene table with 19,129 rows retrieved.
#> Returning all 19,129 genes from hsapiens.
#> #> =========== REPORT SUMMARY ===========
#> 19,129 / 19,129 (100%) target_species genes remain after ortholog conversion.
#> 19,129 / 19,129 (100%) reference_species genes remain after ortholog conversion.
#> 16,482 intersect background genes used.
#> Standardising sct_data.
#> Converting to sparse matrix.
#> Converting to sparse matrix.
#> Generating bootstrap plot: microglia
#> Generating bootstrap plot: astrocytes_ependymal