library("macrophage")
library("DESeq2")
library("mosdef")
library("topGO")
library("org.Hs.eg.db")Supplementary Information for the DeeDeeExperiment package
Bioinformatics Group, IMBEI, University Medical Center Mainz
In this document, we demonstrate a concrete example of how DeeDeeExperiment improves on common list-based approaches for storing Differential Expression (DEA) and Functional Enrichment (FEA) analyses of omics data by providing a standardized structure to manage these analysis results as well as preserving additional metadata related to the analysis and its context.
In this example we are using a publicly available dataset from Alasoo, et al. “Shared genetic effects on chromatin and gene expression indicate a role for enhancer priming in immune response”, published in Nature Genetics, January 2018 (Alasoo et al. 2018) .
The data is made available via the macrophage Bioconductor package, which contains the files output from the Salmon quantification (version 0.12.0, with GENCODE v29 reference), as well as the values summarized at the gene level, which we will use to exemplify.
In the macrophage experimental setting, the samples are available from 6 different donors, in 4 different conditions (naive, treated with Interferon gamma, with SL1344, or with a combination of Interferon gamma and SL1344).
Let’s start by loading all the necessary packages:
For demonstration purposes, we will perform DEA using the DESeq2 framework.
1 Managing bulk RNA-seq analysis results using ad hoc lists
1.1 Differential Expression Analysis (DEA) with DESeq2
# load data
data(gse, package = "macrophage")# set up design
dds_macrophage <- DESeqDataSet(gse, design = ~ line + condition)
rownames(dds_macrophage) <- substr(rownames(dds_macrophage), 1, 15)
keep <- rowSums(counts(dds_macrophage) >= 10) >= 6
dds_macrophage <- dds_macrophage[keep, ]dds_macrophage#> class: DESeqDataSet
#> dim: 17806 24
#> metadata(7): tximetaInfo quantInfo ... txdbInfo version
#> assays(3): counts abundance avgTxLength
#> rownames(17806): ENSG00000000003 ENSG00000000419 ... ENSG00000285982
#> ENSG00000285994
#> rowData names(2): gene_id SYMBOL
#> colnames(24): SAMEA103885102 SAMEA103885347 ... SAMEA103885308
#> SAMEA103884949
#> colData names(15): names sample_id ... condition line
# run DESeq
dds_macrophage <- DESeq(dds_macrophage)
# contrasts
resultsNames(dds_macrophage)#> [1] "Intercept" "line_eiwy_1_vs_diku_1"
#> [3] "line_fikt_3_vs_diku_1" "line_ieki_2_vs_diku_1"
#> [5] "line_podx_1_vs_diku_1" "line_qaqx_1_vs_diku_1"
#> [7] "condition_IFNg_vs_naive" "condition_IFNg_SL1344_vs_naive"
#> [9] "condition_SL1344_vs_naive"
# set contrasts of interest
contrast_list <- c("condition_IFNg_vs_naive",
"condition_SL1344_vs_naive",
"condition_IFNg_SL1344_vs_naive")Now we can extract the DEA results for the contrasts of interest. For this, we create a function that will extract the results and insert them into a list of contrasts. In this example we will call this list myresuSet.
# initiate a list to store all the results
myresuSet <- list()We will store DEA and FEA results in myresuSet according to the structure shown below:
myresuSet
└── id_contrast_1
├── res_DESeq ## The DESeqResults object
├── tbl_res_DE ## A data frame object, with the DE sorted results
├── topGO_tbl ## A data frame object, with the topGO enrichment results in tabular form
├── maplot_res ## A ggplot object, storing the MA plot for this contrast
└── id_contrast_2
├── res_DESeq
├── tbl_res_DE
├── topGO_tbl
├── maplot_res
└── id_contrast_3
├── res_DESeq
├── tbl_res_DE
├── topGO_tbl
├── maplot_res
...
# a function to generate all results and store it in a list
alltheresults <- function(resuSet, dds_obj, contrast, FDR) {
id_contrast <- contrast
resuSet[[id_contrast]] <- list()
mycoef <- contrast
message("Extracting results...")
resuSet[[id_contrast]][["res_DESeq"]] <- results(dds_obj,name = mycoef,
alpha = FDR)
message("Performing LFC shrinkage...")
resuSet[[id_contrast]][["res_DESeq"]] <- lfcShrink(
dds_obj,coef = mycoef,res = resuSet[[id_contrast]][["res_DESeq"]],
type = "apeglm"
)
resuSet[[id_contrast]][["res_DESeq"]]$SYMBOL <- rowData(dds_obj)$SYMBOL[match(rownames(resuSet[[id_contrast]][["res_DESeq"]]),
rownames(dds_obj))]
message("Summary MAplot...")
summary(resuSet[[id_contrast]][["res_DESeq"]])
resuSet[[id_contrast]][["maplot_res"]] <-
ideal::plot_ma(resuSet[[id_contrast]][["res_DESeq"]], ylim = c(-2,2), title = id_contrast, FDR = FDR)
message("Extracting DEtables...")
resuSet[[id_contrast]][["tbl_res_DE"]] <- as.data.frame(
resuSet[[id_contrast]][["res_DESeq"]]
)
resuSet[[id_contrast]][["tbl_res_DE"]] <- cbind(
rownames(resuSet[[id_contrast]][["tbl_res_DE"]]),
resuSet[[id_contrast]][["tbl_res_DE"]])
names(resuSet[[id_contrast]][["tbl_res_DE"]])[1] <- "id"
resuSet[[id_contrast]][["tbl_res_DE"]]$id <- as.character(
resuSet[[id_contrast]][["tbl_res_DE"]]$id
)
resuSet[[id_contrast]][["tbl_res_DE"]] <- resuSet[[id_contrast]][["tbl_res_DE"]][order(
resuSet[[id_contrast]][["tbl_res_DE"]]$padj
), ]
if (!is.null(FDR))
resuSet[[id_contrast]][["tbl_res_DE"]] <- resuSet[[id_contrast]][["tbl_res_DE"]][!(is.na(resuSet[[id_contrast]][["tbl_res_DE"]]$padj)) & resuSet[[id_contrast]][["tbl_res_DE"]]$padj <= FDR, ]
return(resuSet)
}# set FDR
FDR = 0.05# extract results and save them into a list
for (contrast_id in contrast_list) {
myresuSet <- alltheresults(myresuSet, dds_macrophage,
contrast = contrast_id,
FDR = FDR)
}#>
#> out of 17806 with nonzero total read count
#> adjusted p-value < 0.05
#> LFC > 0 (up) : 3192, 18%
#> LFC < 0 (down) : 2887, 16%
#> outliers [1] : 0, 0%
#> low counts [2] : 0, 0%
#> (mean count < 3)
#> [1] see 'cooksCutoff' argument of ?results
#> [2] see 'independentFiltering' argument of ?results
#>
#> out of 17806 with nonzero total read count
#> adjusted p-value < 0.05
#> LFC > 0 (up) : 5282, 30%
#> LFC < 0 (down) : 4785, 27%
#> outliers [1] : 0, 0%
#> low counts [2] : 0, 0%
#> (mean count < 3)
#> [1] see 'cooksCutoff' argument of ?results
#> [2] see 'independentFiltering' argument of ?results
#>
#> out of 17806 with nonzero total read count
#> adjusted p-value < 0.05
#> LFC > 0 (up) : 6526, 37%
#> LFC < 0 (down) : 5956, 33%
#> outliers [1] : 0, 0%
#> low counts [2] : 0, 0%
#> (mean count < 3)
#> [1] see 'cooksCutoff' argument of ?results
#> [2] see 'independentFiltering' argument of ?results
Now we have myresuSet, a list with DE results per contrast.
As it is illustrated here, this approach gives the complete freedom to add any object from the environment as list elements, but completely lacks a set of validation methods to consolidate the final object.
Now let’s add the FEA results.
1.2 Functional Enrichment Analysis (FEA) with topGO
for (contrast_id in contrast_list) {
if (nrow(myresuSet[[contrast_id]][["res_DESeq"]]) > 0) {
myresuSet[[contrast_id]][["topGO_tbl"]] <-
run_topGO(
de_genes = myresuSet[[contrast_id]][["tbl_res_DE"]]$SYMBOL,
bg_genes = rowData(dds_macrophage)$SYMBOL,
ontology = "BP",
mapping = "org.Hs.eg.db",
add_gene_to_terms = TRUE,
gene_id = "symbol")
}
}Now we have our results ready to explore.
str(myresuSet)#> List of 3
#> $ condition_IFNg_vs_naive :List of 4
#> ..$ res_DESeq :Formal class 'DESeqResults' [package "DESeq2"] with 7 slots
#> .. .. ..@ priorInfo : list()
#> .. .. ..@ rownames : chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. ..@ nrows : int 17806
#> .. .. ..@ elementType : chr "ANY"
#> .. .. ..@ elementMetadata:Formal class 'DFrame' [package "S4Vectors"] with 6 slots
#> .. .. .. .. ..@ rownames : NULL
#> .. .. .. .. ..@ nrows : int 6
#> .. .. .. .. ..@ elementType : chr "ANY"
#> .. .. .. .. ..@ elementMetadata: NULL
#> .. .. .. .. ..@ metadata : list()
#> .. .. .. .. ..@ listData :List of 2
#> .. .. .. .. .. ..$ type : chr [1:6] "intermediate" "results" "results" "results" ...
#> .. .. .. .. .. ..$ description: chr [1:6] "mean of normalized counts for all samples" "log2 fold change (MAP): condition IFNg vs naive" "posterior SD: condition IFNg vs naive" "Wald test p-value: condition IFNg vs naive" ...
#> .. .. ..@ metadata :List of 6
#> .. .. .. ..$ filterThreshold: Named num 3.5
#> .. .. .. .. ..- attr(*, "names")= chr "0%"
#> .. .. .. ..$ filterTheta : num 0
#> .. .. .. ..$ filterNumRej :'data.frame': 50 obs. of 2 variables:
#> .. .. .. .. ..$ theta : num [1:50] 0 0.0194 0.0388 0.0582 0.0776 ...
#> .. .. .. .. ..$ numRej: num [1:50] 6079 6041 5995 5969 5929 ...
#> .. .. .. ..$ lo.fit :List of 2
#> .. .. .. .. ..$ x: num [1:50] 0 0.0194 0.0388 0.0582 0.0776 ...
#> .. .. .. .. ..$ y: num [1:50] 6080 6041 6002 5962 5921 ...
#> .. .. .. ..$ alpha : num 0.05
#> .. .. .. ..$ lfcThreshold : num 0
#> .. .. ..@ listData :List of 6
#> .. .. .. ..$ baseMean : num [1:17806] 172 968 682 263 2660 ...
#> .. .. .. ..$ log2FoldChange: Named num [1:17806] -0.2312 0.0391 1.2363 -1.4217 0.6158 ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. ..$ lfcSE : Named num [1:17806] 0.2779 0.0852 0.198 0.2224 0.2334 ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. ..$ pvalue : num [1:17806] 3.48e-01 6.49e-01 6.85e-11 1.69e-11 4.22e-03 ...
#> .. .. .. ..$ padj : num [1:17806] 5.19e-01 7.82e-01 1.29e-09 3.46e-10 1.54e-02 ...
#> .. .. .. ..$ SYMBOL : Named chr [1:17806] "TSPAN6" "DPM1" "SCYL3" "C1orf112" ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> ..$ maplot_res: <ggplot2::ggplot>
#> .. ..@ data :'data.frame': 17806 obs. of 7 variables:
#> .. .. .. $ mean : num [1:17806] 172 968 682 263 2660 ...
#> .. .. .. $ lfc : num [1:17806] -0.2312 0.0391 1.2363 -1.4217 0.6158 ...
#> .. .. .. $ padj : num [1:17806] 5.19e-01 7.82e-01 1.29e-09 3.46e-10 1.54e-02 ...
#> .. .. .. $ isDE : logi [1:17806] FALSE FALSE TRUE TRUE TRUE TRUE ...
#> .. .. .. $ ID : chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. $ logmean: num [1:17806] 2.23 2.99 2.83 2.42 3.42 ...
#> .. .. .. $ DE : chr [1:17806] "black" "black" "red" "red" ...
#> .. ..@ layers :List of 3
#> .. .. .. $ geom_hline:Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomHline, Geom, gg>
#> aesthetics: function
#> check_constant_aes: FALSE
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> rename_size: TRUE
#> required_aes: yintercept
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: FALSE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: ggplot2::mapping, uneval, gg, S7_object
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. .. .. $ geom_point:Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomPoint, Geom, gg>
#> aesthetics: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes: size shape colour
#> optional_aes:
#> parameters: function
#> rename_size: FALSE
#> required_aes: x y
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: TRUE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: NULL
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. .. .. $ geom_rug :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomRug, Geom, gg>
#> aesthetics: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes:
#> optional_aes: x y
#> parameters: function
#> rename_size: TRUE
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: TRUE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: NULL
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. ..@ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>
#> add: function
#> add_defaults: function
#> add_missing: function
#> backtransform_df: function
#> clone: function
#> find: function
#> get_scales: function
#> has_scale: function
#> input: function
#> map_df: function
#> n: function
#> non_position_scales: function
#> scales: list
#> set_palettes: function
#> train_df: function
#> transform_df: function
#> super: <ggproto object: Class ScalesList, gg>
#> .. ..@ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>
#> add: function
#> assemble: function
#> build: function
#> draw: function
#> get_custom: function
#> get_guide: function
#> get_params: function
#> get_position: function
#> guides: NULL
#> merge: function
#> missing: <ggproto object: Class GuideNone, Guide, gg>
#> add_title: function
#> arrange_layout: function
#> assemble_drawing: function
#> available_aes: any
#> build_decor: function
#> build_labels: function
#> build_ticks: function
#> build_title: function
#> draw: function
#> draw_early_exit: function
#> elements: list
#> extract_decor: function
#> extract_key: function
#> extract_params: function
#> get_layer_key: function
#> hashables: list
#> measure_grobs: function
#> merge: function
#> override_elements: function
#> params: list
#> process_layers: function
#> setup_elements: function
#> setup_params: function
#> train: function
#> transform: function
#> super: <ggproto object: Class GuideNone, Guide, gg>
#> package_box: function
#> print: function
#> process_layers: function
#> setup: function
#> subset_guides: function
#> train: function
#> update_params: function
#> super: <ggproto object: Class Guides, gg>
#> .. ..@ mapping : <ggplot2::mapping> List of 3
#> .. .. .. $ colour: language ~DE
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x30664fc80>
#> .. .. .. $ x : language ~logmean
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x30664fc80>
#> .. .. .. $ y : language ~lfc
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x30664fc80>
#> .. ..@ theme : <theme> List of 144
#> .. .. .. $ line : <ggplot2::element_line>
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ lineend : chr "butt"
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ arrow : logi FALSE
#> .. .. .. ..@ arrow.fill : chr "black"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ rect : <ggplot2::element_rect>
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ text : <ggplot2::element_text>
#> .. .. .. ..@ family : chr ""
#> .. .. .. ..@ face : chr "plain"
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ size : num 11
#> .. .. .. ..@ hjust : num 0.5
#> .. .. .. ..@ vjust : num 0.5
#> .. .. .. ..@ angle : num 0
#> .. .. .. ..@ lineheight : num 0.9
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 0
#> .. .. .. ..@ debug : logi FALSE
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ title : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ point : <ggplot2::element_point>
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ shape : num 19
#> .. .. .. ..@ size : num 1.5
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ stroke : num 0.5
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ polygon : <ggplot2::element_polygon>
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ geom : <ggplot2::element_geom>
#> .. .. .. ..@ ink : chr "black"
#> .. .. .. ..@ paper : chr "white"
#> .. .. .. ..@ accent : chr "#3366FF"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ borderwidth: num 0.5
#> .. .. .. ..@ linetype : int 1
#> .. .. .. ..@ bordertype : int 1
#> .. .. .. ..@ family : chr ""
#> .. .. .. ..@ fontsize : num 3.87
#> .. .. .. ..@ pointsize : num 1.5
#> .. .. .. ..@ pointshape : num 19
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ fill : NULL
#> .. .. .. $ spacing : 'simpleUnit' num 5.5points
#> .. .. .. ..- attr(*, "unit")= int 8
#> .. .. .. $ margins : <ggplot2::margin> num [1:4] 5.5 5.5 5.5 5.5
#> .. .. .. $ aspect.ratio : NULL
#> .. .. .. $ axis.title : NULL
#> .. .. .. $ axis.title.x : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 2.75 0 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.x.top : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 0
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 2.75 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.x.bottom : NULL
#> .. .. .. $ axis.title.y : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : num 90
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.75 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.y.left : NULL
#> .. .. .. $ axis.title.y.right : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : num -90
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 2.75
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : chr "#4D4D4DFF"
#> .. .. .. ..@ size : 'rel' num 0.8
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 2.2 0 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x.top : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 0
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 2.2 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x.bottom : NULL
#> .. .. .. $ axis.text.y : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 1
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.2 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.y.left : NULL
#> .. .. .. $ axis.text.y.right : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 2.2
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.theta : NULL
#> .. .. .. $ axis.text.r : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0.5
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.2 0 2.2
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.ticks : <ggplot2::element_line>
#> .. .. .. ..@ colour : chr "#333333FF"
#> .. .. .. ..@ linewidth : NULL
#> .. .. .. ..@ linetype : NULL
#> .. .. .. ..@ lineend : NULL
#> .. .. .. ..@ linejoin : NULL
#> .. .. .. ..@ arrow : logi FALSE
#> .. .. .. ..@ arrow.fill : chr "#333333FF"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.ticks.x : NULL
#> .. .. .. $ axis.ticks.x.top : NULL
#> .. .. .. $ axis.ticks.x.bottom : NULL
#> .. .. .. $ axis.ticks.y : NULL
#> .. .. .. $ axis.ticks.y.left : NULL
#> .. .. .. $ axis.ticks.y.right : NULL
#> .. .. .. $ axis.ticks.theta : NULL
#> .. .. .. $ axis.ticks.r : NULL
#> .. .. .. $ axis.minor.ticks.x.top : NULL
#> .. .. .. $ axis.minor.ticks.x.bottom : NULL
#> .. .. .. $ axis.minor.ticks.y.left : NULL
#> .. .. .. $ axis.minor.ticks.y.right : NULL
#> .. .. .. $ axis.minor.ticks.theta : NULL
#> .. .. .. $ axis.minor.ticks.r : NULL
#> .. .. .. $ axis.ticks.length : 'rel' num 0.5
#> .. .. .. $ axis.ticks.length.x : NULL
#> .. .. .. $ axis.ticks.length.x.top : NULL
#> .. .. .. $ axis.ticks.length.x.bottom : NULL
#> .. .. .. $ axis.ticks.length.y : NULL
#> .. .. .. $ axis.ticks.length.y.left : NULL
#> .. .. .. $ axis.ticks.length.y.right : NULL
#> .. .. .. $ axis.ticks.length.theta : NULL
#> .. .. .. $ axis.ticks.length.r : NULL
#> .. .. .. $ axis.minor.ticks.length : 'rel' num 0.75
#> .. .. .. $ axis.minor.ticks.length.x : NULL
#> .. .. .. $ axis.minor.ticks.length.x.top : NULL
#> .. .. .. $ axis.minor.ticks.length.x.bottom: NULL
#> .. .. .. $ axis.minor.ticks.length.y : NULL
#> .. .. .. $ axis.minor.ticks.length.y.left : NULL
#> .. .. .. $ axis.minor.ticks.length.y.right : NULL
#> .. .. .. $ axis.minor.ticks.length.theta : NULL
#> .. .. .. $ axis.minor.ticks.length.r : NULL
#> .. .. .. $ axis.line : <ggplot2::element_blank>
#> .. .. .. $ axis.line.x : NULL
#> .. .. .. $ axis.line.x.top : NULL
#> .. .. .. $ axis.line.x.bottom : NULL
#> .. .. .. $ axis.line.y : NULL
#> .. .. .. $ axis.line.y.left : NULL
#> .. .. .. $ axis.line.y.right : NULL
#> .. .. .. $ axis.line.theta : NULL
#> .. .. .. $ axis.line.r : NULL
#> .. .. .. $ legend.background : <ggplot2::element_rect>
#> .. .. .. ..@ fill : NULL
#> .. .. .. ..@ colour : logi NA
#> .. .. .. ..@ linewidth : NULL
#> .. .. .. ..@ linetype : NULL
#> .. .. .. ..@ linejoin : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.margin : NULL
#> .. .. .. $ legend.spacing : 'rel' num 2
#> .. .. .. $ legend.spacing.x : NULL
#> .. .. .. $ legend.spacing.y : NULL
#> .. .. .. $ legend.key : NULL
#> .. .. .. $ legend.key.size : 'simpleUnit' num 1.2lines
#> .. .. .. ..- attr(*, "unit")= int 3
#> .. .. .. $ legend.key.height : NULL
#> .. .. .. $ legend.key.width : NULL
#> .. .. .. $ legend.key.spacing : NULL
#> .. .. .. $ legend.key.spacing.x : NULL
#> .. .. .. $ legend.key.spacing.y : NULL
#> .. .. .. $ legend.key.justification : NULL
#> .. .. .. $ legend.frame : NULL
#> .. .. .. $ legend.ticks : NULL
#> .. .. .. $ legend.ticks.length : 'rel' num 0.2
#> .. .. .. $ legend.axis.line : NULL
#> .. .. .. $ legend.text : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : 'rel' num 0.8
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.text.position : NULL
#> .. .. .. $ legend.title : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.title.position : NULL
#> .. .. .. $ legend.position : chr "right"
#> .. .. .. $ legend.position.inside : NULL
#> .. .. .. $ legend.direction : NULL
#> .. .. .. $ legend.byrow : NULL
#> .. .. .. $ legend.justification : chr "center"
#> .. .. .. $ legend.justification.top : NULL
#> .. .. .. $ legend.justification.bottom : NULL
#> .. .. .. $ legend.justification.left : NULL
#> .. .. .. $ legend.justification.right : NULL
#> .. .. .. $ legend.justification.inside : NULL
#> .. .. .. [list output truncated]
#> .. .. .. @ complete: logi TRUE
#> .. .. .. @ validate: logi TRUE
#> .. ..@ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>
#> aspect: function
#> backtransform_range: function
#> clip: on
#> default: FALSE
#> distance: function
#> draw_panel: function
#> expand: TRUE
#> is_free: function
#> is_linear: function
#> labels: function
#> limits: list
#> modify_scales: function
#> range: function
#> ratio: NULL
#> render_axis_h: function
#> render_axis_v: function
#> render_bg: function
#> render_fg: function
#> reverse: none
#> setup_data: function
#> setup_layout: function
#> setup_panel_guides: function
#> setup_panel_params: function
#> setup_params: function
#> train_panel_guides: function
#> transform: function
#> super: <ggproto object: Class CoordCartesian, Coord, gg>
#> .. ..@ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>
#> attach_axes: function
#> attach_strips: function
#> compute_layout: function
#> draw_back: function
#> draw_front: function
#> draw_labels: function
#> draw_panel_content: function
#> draw_panels: function
#> finish_data: function
#> format_strip_labels: function
#> init_gtable: function
#> init_scales: function
#> map_data: function
#> params: list
#> set_panel_size: function
#> setup_data: function
#> setup_panel_params: function
#> setup_params: function
#> shrink: TRUE
#> train_scales: function
#> vars: function
#> super: <ggproto object: Class FacetNull, Facet, gg>
#> .. ..@ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>
#> coord: NULL
#> coord_params: list
#> facet: NULL
#> facet_params: list
#> finish_data: function
#> get_scales: function
#> layout: NULL
#> map_position: function
#> panel_params: NULL
#> panel_scales_x: NULL
#> panel_scales_y: NULL
#> render: function
#> render_labels: function
#> reset_scales: function
#> resolve_label: function
#> setup: function
#> setup_panel_guides: function
#> setup_panel_params: function
#> train_position: function
#> super: <ggproto object: Class Layout, gg>
#> .. ..@ labels : <ggplot2::labels> List of 3
#> .. .. .. $ title: chr "condition_IFNg_vs_naive"
#> .. .. .. $ y : chr "log fold change"
#> .. .. .. $ x : chr "mean of normalized counts - log10 scale"
#> .. ..@ meta : list()
#> .. ..@ plot_env :<environment: 0x30664fc80>
#> ..$ tbl_res_DE:'data.frame': 6079 obs. of 7 variables:
#> .. ..$ id : chr [1:6079] "ENSG00000125347" "ENSG00000111181" "ENSG00000162645" "ENSG00000137496" ...
#> .. ..$ baseMean : num [1:6079] 30585 689 36791 7129 3637 ...
#> .. ..$ log2FoldChange: num [1:6079] 5.54 4.69 6.64 4.04 5.17 ...
#> .. ..$ lfcSE : num [1:6079] 0.219 0.197 0.291 0.178 0.24 ...
#> .. ..$ pvalue : num [1:6079] 3.82e-143 1.67e-127 1.12e-119 6.84e-116 1.44e-106 ...
#> .. ..$ padj : num [1:6079] 6.81e-139 1.49e-123 6.63e-116 3.04e-112 5.14e-103 ...
#> .. ..$ SYMBOL : chr [1:6079] "IRF1" "SLC6A12" "GBP2" "IL18BP" ...
#> ..$ topGO_tbl :'data.frame': 6091 obs. of 9 variables:
#> .. ..$ GO.ID : chr [1:6091] "GO:0045087" "GO:0002250" "GO:0002181" "GO:0043123" ...
#> .. ..$ Term : chr [1:6091] "innate immune response" "adaptive immune response" "cytoplasmic translation" "positive regulation of canonical NF-kappaB signal transduction" ...
#> .. ..$ Annotated : int [1:6091] 824 382 200 220 94 190 13 68 29 63 ...
#> .. ..$ Significant : int [1:6091] 447 235 108 115 57 106 13 44 23 41 ...
#> .. ..$ Expected : num [1:6091] 303.8 140.8 73.7 81.1 34.7 ...
#> .. ..$ Rank in p.value_classic: int [1:6091] 10 14 175 218 225 135 226 229 236 245 ...
#> .. ..$ p.value_elim : num [1:6091] 1.3e-10 6.2e-08 4.2e-07 1.6e-06 2.0e-06 2.1e-06 2.2e-06 2.5e-06 3.5e-06 4.5e-06 ...
#> .. ..$ p.value_classic : num [1:6091] 7.6e-26 3.2e-23 5.0e-07 1.9e-06 2.3e-06 ...
#> .. ..$ genes : chr [1:6091] "A2M,ACOD1,ACTG1,ACTR3,ADAM15,ADAM8,ADAR,ADGRB1,AIM2,AKIRIN2,ALPK1,APOBEC3A,APOBEC3B,APOBEC3C,APOBEC3D,APOBEC3F,"| __truncated__ "ADAM17,AKIRIN2,ALOX15,APLF,ARG2,ARID5A,ASCL2,ATAD5,B2M,BCL10,BCL3,BCL6,BRD2,BRD4,BTK,BTN3A1,BTN3A2,BTN3A3,C1QA,"| __truncated__ "AKT1S1,ASCC3,ATXN3,DHX36,EIF2S3,EIF3D,EIF3E,EIF3F,EIF3L,EIF4B,EIF5,FAU,FMR1,GSK3B,GTPBP1,KCMF1,LIN28A,MTOR,NCK1"| __truncated__ "AKAP13,ALPK1,APOL3,BCL10,BIRC2,BIRC3,BRD4,BST2,BTK,C18orf32,CARD16,CASP1,CASP10,CASP7,CASP8,CCDC22,CCL19,CD36,C"| __truncated__ ...
#> $ condition_SL1344_vs_naive :List of 4
#> ..$ res_DESeq :Formal class 'DESeqResults' [package "DESeq2"] with 7 slots
#> .. .. ..@ priorInfo : list()
#> .. .. ..@ rownames : chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. ..@ nrows : int 17806
#> .. .. ..@ elementType : chr "ANY"
#> .. .. ..@ elementMetadata:Formal class 'DFrame' [package "S4Vectors"] with 6 slots
#> .. .. .. .. ..@ rownames : NULL
#> .. .. .. .. ..@ nrows : int 6
#> .. .. .. .. ..@ elementType : chr "ANY"
#> .. .. .. .. ..@ elementMetadata: NULL
#> .. .. .. .. ..@ metadata : list()
#> .. .. .. .. ..@ listData :List of 2
#> .. .. .. .. .. ..$ type : chr [1:6] "intermediate" "results" "results" "results" ...
#> .. .. .. .. .. ..$ description: chr [1:6] "mean of normalized counts for all samples" "log2 fold change (MAP): condition SL1344 vs naive" "posterior SD: condition SL1344 vs naive" "Wald test p-value: condition SL1344 vs naive" ...
#> .. .. ..@ metadata :List of 6
#> .. .. .. ..$ filterThreshold: Named num 3.5
#> .. .. .. .. ..- attr(*, "names")= chr "0%"
#> .. .. .. ..$ filterTheta : num 0
#> .. .. .. ..$ filterNumRej :'data.frame': 50 obs. of 2 variables:
#> .. .. .. .. ..$ theta : num [1:50] 0 0.0194 0.0388 0.0582 0.0776 ...
#> .. .. .. .. ..$ numRej: num [1:50] 10067 9972 9891 9786 9676 ...
#> .. .. .. ..$ lo.fit :List of 2
#> .. .. .. .. ..$ x: num [1:50] 0 0.0194 0.0388 0.0582 0.0776 ...
#> .. .. .. .. ..$ y: num [1:50] 10084 9980 9875 9769 9663 ...
#> .. .. .. ..$ alpha : num 0.05
#> .. .. .. ..$ lfcThreshold : num 0
#> .. .. ..@ listData :List of 6
#> .. .. .. ..$ baseMean : num [1:17806] 172 968 682 263 2660 ...
#> .. .. .. ..$ log2FoldChange: Named num [1:17806] 0.1121 0.0947 0.6909 -0.9937 1.6107 ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. ..$ lfcSE : Named num [1:17806] 0.291 0.086 0.198 0.218 0.238 ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. ..$ pvalue : num [1:17806] 6.82e-01 2.72e-01 2.87e-04 2.44e-06 2.42e-12 ...
#> .. .. .. ..$ padj : num [1:17806] 7.48e-01 3.56e-01 7.86e-04 9.61e-06 2.15e-11 ...
#> .. .. .. ..$ SYMBOL : Named chr [1:17806] "TSPAN6" "DPM1" "SCYL3" "C1orf112" ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> ..$ maplot_res: <ggplot2::ggplot>
#> .. ..@ data :'data.frame': 17806 obs. of 7 variables:
#> .. .. .. $ mean : num [1:17806] 172 968 682 263 2660 ...
#> .. .. .. $ lfc : num [1:17806] 0.1121 0.0947 0.6909 -0.9937 1.6107 ...
#> .. .. .. $ padj : num [1:17806] 7.48e-01 3.56e-01 7.86e-04 9.61e-06 2.15e-11 ...
#> .. .. .. $ isDE : logi [1:17806] FALSE FALSE TRUE TRUE TRUE FALSE ...
#> .. .. .. $ ID : chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. $ logmean: num [1:17806] 2.23 2.99 2.83 2.42 3.42 ...
#> .. .. .. $ DE : chr [1:17806] "black" "black" "red" "red" ...
#> .. ..@ layers :List of 3
#> .. .. .. $ geom_hline:Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomHline, Geom, gg>
#> aesthetics: function
#> check_constant_aes: FALSE
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> rename_size: TRUE
#> required_aes: yintercept
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: FALSE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: ggplot2::mapping, uneval, gg, S7_object
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. .. .. $ geom_point:Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomPoint, Geom, gg>
#> aesthetics: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes: size shape colour
#> optional_aes:
#> parameters: function
#> rename_size: FALSE
#> required_aes: x y
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: TRUE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: NULL
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. .. .. $ geom_rug :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomRug, Geom, gg>
#> aesthetics: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes:
#> optional_aes: x y
#> parameters: function
#> rename_size: TRUE
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: TRUE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: NULL
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. ..@ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>
#> add: function
#> add_defaults: function
#> add_missing: function
#> backtransform_df: function
#> clone: function
#> find: function
#> get_scales: function
#> has_scale: function
#> input: function
#> map_df: function
#> n: function
#> non_position_scales: function
#> scales: list
#> set_palettes: function
#> train_df: function
#> transform_df: function
#> super: <ggproto object: Class ScalesList, gg>
#> .. ..@ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>
#> add: function
#> assemble: function
#> build: function
#> draw: function
#> get_custom: function
#> get_guide: function
#> get_params: function
#> get_position: function
#> guides: NULL
#> merge: function
#> missing: <ggproto object: Class GuideNone, Guide, gg>
#> add_title: function
#> arrange_layout: function
#> assemble_drawing: function
#> available_aes: any
#> build_decor: function
#> build_labels: function
#> build_ticks: function
#> build_title: function
#> draw: function
#> draw_early_exit: function
#> elements: list
#> extract_decor: function
#> extract_key: function
#> extract_params: function
#> get_layer_key: function
#> hashables: list
#> measure_grobs: function
#> merge: function
#> override_elements: function
#> params: list
#> process_layers: function
#> setup_elements: function
#> setup_params: function
#> train: function
#> transform: function
#> super: <ggproto object: Class GuideNone, Guide, gg>
#> package_box: function
#> print: function
#> process_layers: function
#> setup: function
#> subset_guides: function
#> train: function
#> update_params: function
#> super: <ggproto object: Class Guides, gg>
#> .. ..@ mapping : <ggplot2::mapping> List of 3
#> .. .. .. $ colour: language ~DE
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x304db6038>
#> .. .. .. $ x : language ~logmean
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x304db6038>
#> .. .. .. $ y : language ~lfc
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x304db6038>
#> .. ..@ theme : <theme> List of 144
#> .. .. .. $ line : <ggplot2::element_line>
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ lineend : chr "butt"
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ arrow : logi FALSE
#> .. .. .. ..@ arrow.fill : chr "black"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ rect : <ggplot2::element_rect>
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ text : <ggplot2::element_text>
#> .. .. .. ..@ family : chr ""
#> .. .. .. ..@ face : chr "plain"
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ size : num 11
#> .. .. .. ..@ hjust : num 0.5
#> .. .. .. ..@ vjust : num 0.5
#> .. .. .. ..@ angle : num 0
#> .. .. .. ..@ lineheight : num 0.9
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 0
#> .. .. .. ..@ debug : logi FALSE
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ title : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ point : <ggplot2::element_point>
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ shape : num 19
#> .. .. .. ..@ size : num 1.5
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ stroke : num 0.5
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ polygon : <ggplot2::element_polygon>
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ geom : <ggplot2::element_geom>
#> .. .. .. ..@ ink : chr "black"
#> .. .. .. ..@ paper : chr "white"
#> .. .. .. ..@ accent : chr "#3366FF"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ borderwidth: num 0.5
#> .. .. .. ..@ linetype : int 1
#> .. .. .. ..@ bordertype : int 1
#> .. .. .. ..@ family : chr ""
#> .. .. .. ..@ fontsize : num 3.87
#> .. .. .. ..@ pointsize : num 1.5
#> .. .. .. ..@ pointshape : num 19
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ fill : NULL
#> .. .. .. $ spacing : 'simpleUnit' num 5.5points
#> .. .. .. ..- attr(*, "unit")= int 8
#> .. .. .. $ margins : <ggplot2::margin> num [1:4] 5.5 5.5 5.5 5.5
#> .. .. .. $ aspect.ratio : NULL
#> .. .. .. $ axis.title : NULL
#> .. .. .. $ axis.title.x : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 2.75 0 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.x.top : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 0
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 2.75 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.x.bottom : NULL
#> .. .. .. $ axis.title.y : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : num 90
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.75 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.y.left : NULL
#> .. .. .. $ axis.title.y.right : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : num -90
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 2.75
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : chr "#4D4D4DFF"
#> .. .. .. ..@ size : 'rel' num 0.8
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 2.2 0 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x.top : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 0
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 2.2 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x.bottom : NULL
#> .. .. .. $ axis.text.y : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 1
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.2 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.y.left : NULL
#> .. .. .. $ axis.text.y.right : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 2.2
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.theta : NULL
#> .. .. .. $ axis.text.r : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0.5
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.2 0 2.2
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.ticks : <ggplot2::element_line>
#> .. .. .. ..@ colour : chr "#333333FF"
#> .. .. .. ..@ linewidth : NULL
#> .. .. .. ..@ linetype : NULL
#> .. .. .. ..@ lineend : NULL
#> .. .. .. ..@ linejoin : NULL
#> .. .. .. ..@ arrow : logi FALSE
#> .. .. .. ..@ arrow.fill : chr "#333333FF"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.ticks.x : NULL
#> .. .. .. $ axis.ticks.x.top : NULL
#> .. .. .. $ axis.ticks.x.bottom : NULL
#> .. .. .. $ axis.ticks.y : NULL
#> .. .. .. $ axis.ticks.y.left : NULL
#> .. .. .. $ axis.ticks.y.right : NULL
#> .. .. .. $ axis.ticks.theta : NULL
#> .. .. .. $ axis.ticks.r : NULL
#> .. .. .. $ axis.minor.ticks.x.top : NULL
#> .. .. .. $ axis.minor.ticks.x.bottom : NULL
#> .. .. .. $ axis.minor.ticks.y.left : NULL
#> .. .. .. $ axis.minor.ticks.y.right : NULL
#> .. .. .. $ axis.minor.ticks.theta : NULL
#> .. .. .. $ axis.minor.ticks.r : NULL
#> .. .. .. $ axis.ticks.length : 'rel' num 0.5
#> .. .. .. $ axis.ticks.length.x : NULL
#> .. .. .. $ axis.ticks.length.x.top : NULL
#> .. .. .. $ axis.ticks.length.x.bottom : NULL
#> .. .. .. $ axis.ticks.length.y : NULL
#> .. .. .. $ axis.ticks.length.y.left : NULL
#> .. .. .. $ axis.ticks.length.y.right : NULL
#> .. .. .. $ axis.ticks.length.theta : NULL
#> .. .. .. $ axis.ticks.length.r : NULL
#> .. .. .. $ axis.minor.ticks.length : 'rel' num 0.75
#> .. .. .. $ axis.minor.ticks.length.x : NULL
#> .. .. .. $ axis.minor.ticks.length.x.top : NULL
#> .. .. .. $ axis.minor.ticks.length.x.bottom: NULL
#> .. .. .. $ axis.minor.ticks.length.y : NULL
#> .. .. .. $ axis.minor.ticks.length.y.left : NULL
#> .. .. .. $ axis.minor.ticks.length.y.right : NULL
#> .. .. .. $ axis.minor.ticks.length.theta : NULL
#> .. .. .. $ axis.minor.ticks.length.r : NULL
#> .. .. .. $ axis.line : <ggplot2::element_blank>
#> .. .. .. $ axis.line.x : NULL
#> .. .. .. $ axis.line.x.top : NULL
#> .. .. .. $ axis.line.x.bottom : NULL
#> .. .. .. $ axis.line.y : NULL
#> .. .. .. $ axis.line.y.left : NULL
#> .. .. .. $ axis.line.y.right : NULL
#> .. .. .. $ axis.line.theta : NULL
#> .. .. .. $ axis.line.r : NULL
#> .. .. .. $ legend.background : <ggplot2::element_rect>
#> .. .. .. ..@ fill : NULL
#> .. .. .. ..@ colour : logi NA
#> .. .. .. ..@ linewidth : NULL
#> .. .. .. ..@ linetype : NULL
#> .. .. .. ..@ linejoin : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.margin : NULL
#> .. .. .. $ legend.spacing : 'rel' num 2
#> .. .. .. $ legend.spacing.x : NULL
#> .. .. .. $ legend.spacing.y : NULL
#> .. .. .. $ legend.key : NULL
#> .. .. .. $ legend.key.size : 'simpleUnit' num 1.2lines
#> .. .. .. ..- attr(*, "unit")= int 3
#> .. .. .. $ legend.key.height : NULL
#> .. .. .. $ legend.key.width : NULL
#> .. .. .. $ legend.key.spacing : NULL
#> .. .. .. $ legend.key.spacing.x : NULL
#> .. .. .. $ legend.key.spacing.y : NULL
#> .. .. .. $ legend.key.justification : NULL
#> .. .. .. $ legend.frame : NULL
#> .. .. .. $ legend.ticks : NULL
#> .. .. .. $ legend.ticks.length : 'rel' num 0.2
#> .. .. .. $ legend.axis.line : NULL
#> .. .. .. $ legend.text : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : 'rel' num 0.8
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.text.position : NULL
#> .. .. .. $ legend.title : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.title.position : NULL
#> .. .. .. $ legend.position : chr "right"
#> .. .. .. $ legend.position.inside : NULL
#> .. .. .. $ legend.direction : NULL
#> .. .. .. $ legend.byrow : NULL
#> .. .. .. $ legend.justification : chr "center"
#> .. .. .. $ legend.justification.top : NULL
#> .. .. .. $ legend.justification.bottom : NULL
#> .. .. .. $ legend.justification.left : NULL
#> .. .. .. $ legend.justification.right : NULL
#> .. .. .. $ legend.justification.inside : NULL
#> .. .. .. [list output truncated]
#> .. .. .. @ complete: logi TRUE
#> .. .. .. @ validate: logi TRUE
#> .. ..@ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>
#> aspect: function
#> backtransform_range: function
#> clip: on
#> default: FALSE
#> distance: function
#> draw_panel: function
#> expand: TRUE
#> is_free: function
#> is_linear: function
#> labels: function
#> limits: list
#> modify_scales: function
#> range: function
#> ratio: NULL
#> render_axis_h: function
#> render_axis_v: function
#> render_bg: function
#> render_fg: function
#> reverse: none
#> setup_data: function
#> setup_layout: function
#> setup_panel_guides: function
#> setup_panel_params: function
#> setup_params: function
#> train_panel_guides: function
#> transform: function
#> super: <ggproto object: Class CoordCartesian, Coord, gg>
#> .. ..@ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>
#> attach_axes: function
#> attach_strips: function
#> compute_layout: function
#> draw_back: function
#> draw_front: function
#> draw_labels: function
#> draw_panel_content: function
#> draw_panels: function
#> finish_data: function
#> format_strip_labels: function
#> init_gtable: function
#> init_scales: function
#> map_data: function
#> params: list
#> set_panel_size: function
#> setup_data: function
#> setup_panel_params: function
#> setup_params: function
#> shrink: TRUE
#> train_scales: function
#> vars: function
#> super: <ggproto object: Class FacetNull, Facet, gg>
#> .. ..@ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>
#> coord: NULL
#> coord_params: list
#> facet: NULL
#> facet_params: list
#> finish_data: function
#> get_scales: function
#> layout: NULL
#> map_position: function
#> panel_params: NULL
#> panel_scales_x: NULL
#> panel_scales_y: NULL
#> render: function
#> render_labels: function
#> reset_scales: function
#> resolve_label: function
#> setup: function
#> setup_panel_guides: function
#> setup_panel_params: function
#> train_position: function
#> super: <ggproto object: Class Layout, gg>
#> .. ..@ labels : <ggplot2::labels> List of 3
#> .. .. .. $ title: chr "condition_SL1344_vs_naive"
#> .. .. .. $ y : chr "log fold change"
#> .. .. .. $ x : chr "mean of normalized counts - log10 scale"
#> .. ..@ meta : list()
#> .. ..@ plot_env :<environment: 0x304db6038>
#> ..$ tbl_res_DE:'data.frame': 10067 obs. of 7 variables:
#> .. ..$ id : chr [1:10067] "ENSG00000126561" "ENSG00000102096" "ENSG00000276462" "ENSG00000134470" ...
#> .. ..$ baseMean : num [1:10067] 20416 11879 597 4469 7456 ...
#> .. ..$ log2FoldChange: num [1:10067] 4.77 5.75 9.44 4.92 4.25 ...
#> .. ..$ lfcSE : num [1:10067] 0.19 0.237 0.41 0.223 0.194 ...
#> .. ..$ pvalue : num [1:10067] 4.77e-143 2.98e-134 1.95e-117 2.59e-111 4.89e-108 ...
#> .. ..$ padj : num [1:10067] 8.49e-139 2.65e-130 1.16e-113 1.15e-107 1.74e-104 ...
#> .. ..$ SYMBOL : chr [1:10067] "STAT5A" "PIM2" "LOC440896" "IL15RA" ...
#> ..$ topGO_tbl :'data.frame': 6091 obs. of 9 variables:
#> .. ..$ GO.ID : chr [1:6091] "GO:0008150" "GO:0006954" "GO:0045944" "GO:0050729" ...
#> .. ..$ Term : chr [1:6091] "biological_process" "inflammatory response" "positive regulation of transcription by RNA polymerase II" "positive regulation of inflammatory response" ...
#> .. ..$ Annotated : int [1:6091] 12869 745 1021 151 454 459 190 89 733 47 ...
#> .. ..$ Significant : int [1:6091] 7569 534 665 118 338 311 143 70 488 40 ...
#> .. ..$ Expected : num [1:6091] 7577 438.6 601.1 88.9 267.3 ...
#> .. ..$ Rank in p.value_classic: int [1:6091] 6068 11 133 70 20 173 81 193 105 212 ...
#> .. ..$ p.value_elim : num [1:6091] 8.0e-12 2.8e-06 6.0e-06 1.1e-05 2.4e-05 ...
#> .. ..$ p.value_classic : num [1:6091] 9.99e-01 5.50e-14 1.20e-05 4.00e-07 1.20e-12 ...
#> .. ..$ genes : chr [1:6091] "A1BG,A4GALT,AAAS,AAGAB,AAK1,AAMP,AAR2,AARS1,AASDH,AATK,ABAT,ABCA1,ABCA10,ABCA5,ABCA6,ABCB4,ABCB6,ABCB9,ABCC1,AB"| __truncated__ "ABCC1,ABCF1,ABHD17A,ABHD8,ACOD1,ACP5,ADA,ADAM17,ADCY1,ADCY7,ADGRE2,ADM,ADORA2A,ADORA3,AFAP1L2,AGTR1,AIM2,AKNA,A"| __truncated__ "ABHD14B,ABL1,ABLIM1,ABLIM3,ACTR3,ACVR2A,ACVRL1,AGO1,AGO2,AGRN,AHI1,AIRE,AKAP8L,AKIRIN1,AKIRIN2,AKNA,AKT1,ANKRD2"| __truncated__ "ABCC1,AGTR1,AIM2,APP,C2CD4A,C3,CAMK2N1,CARD8,CASP3,CASP4,CASP5,CASP8,CCL1,CCL15,CCL24,CCL3,CCL5,CCL7,CCR1,CCR7,"| __truncated__ ...
#> $ condition_IFNg_SL1344_vs_naive:List of 4
#> ..$ res_DESeq :Formal class 'DESeqResults' [package "DESeq2"] with 7 slots
#> .. .. ..@ priorInfo : list()
#> .. .. ..@ rownames : chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. ..@ nrows : int 17806
#> .. .. ..@ elementType : chr "ANY"
#> .. .. ..@ elementMetadata:Formal class 'DFrame' [package "S4Vectors"] with 6 slots
#> .. .. .. .. ..@ rownames : NULL
#> .. .. .. .. ..@ nrows : int 6
#> .. .. .. .. ..@ elementType : chr "ANY"
#> .. .. .. .. ..@ elementMetadata: NULL
#> .. .. .. .. ..@ metadata : list()
#> .. .. .. .. ..@ listData :List of 2
#> .. .. .. .. .. ..$ type : chr [1:6] "intermediate" "results" "results" "results" ...
#> .. .. .. .. .. ..$ description: chr [1:6] "mean of normalized counts for all samples" "log2 fold change (MAP): condition IFNg SL1344 vs naive" "posterior SD: condition IFNg SL1344 vs naive" "Wald test p-value: condition IFNg SL1344 vs naive" ...
#> .. .. ..@ metadata :List of 6
#> .. .. .. ..$ filterThreshold: Named num 3.5
#> .. .. .. .. ..- attr(*, "names")= chr "0%"
#> .. .. .. ..$ filterTheta : num 0
#> .. .. .. ..$ filterNumRej :'data.frame': 50 obs. of 2 variables:
#> .. .. .. .. ..$ theta : num [1:50] 0 0.0194 0.0388 0.0582 0.0776 ...
#> .. .. .. .. ..$ numRej: num [1:50] 12482 12344 12224 12070 11907 ...
#> .. .. .. ..$ lo.fit :List of 2
#> .. .. .. .. ..$ x: num [1:50] 0 0.0194 0.0388 0.0582 0.0776 ...
#> .. .. .. .. ..$ y: num [1:50] 12510 12346 12182 12018 11855 ...
#> .. .. .. ..$ alpha : num 0.05
#> .. .. .. ..$ lfcThreshold : num 0
#> .. .. ..@ listData :List of 6
#> .. .. .. ..$ baseMean : num [1:17806] 172 968 682 263 2660 ...
#> .. .. .. ..$ log2FoldChange: Named num [1:17806] 0.176 0.174 1.45 -2.115 3.756 ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. ..$ lfcSE : Named num [1:17806] 0.2949 0.0869 0.1978 0.2271 0.2361 ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. ..$ pvalue : num [1:17806] 5.28e-01 4.44e-02 6.84e-14 1.05e-21 2.64e-58 ...
#> .. .. .. ..$ padj : num [1:17806] 5.83e-01 6.23e-02 3.19e-13 9.17e-21 1.74e-56 ...
#> .. .. .. ..$ SYMBOL : Named chr [1:17806] "TSPAN6" "DPM1" "SCYL3" "C1orf112" ...
#> .. .. .. .. ..- attr(*, "names")= chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> ..$ maplot_res: <ggplot2::ggplot>
#> .. ..@ data :'data.frame': 17806 obs. of 7 variables:
#> .. .. .. $ mean : num [1:17806] 172 968 682 263 2660 ...
#> .. .. .. $ lfc : num [1:17806] 0.176 0.174 1.45 -2.115 3.756 ...
#> .. .. .. $ padj : num [1:17806] 5.83e-01 6.23e-02 3.19e-13 9.17e-21 1.74e-56 ...
#> .. .. .. $ isDE : logi [1:17806] FALSE FALSE TRUE TRUE TRUE TRUE ...
#> .. .. .. $ ID : chr [1:17806] "ENSG00000000003" "ENSG00000000419" "ENSG00000000457" "ENSG00000000460" ...
#> .. .. .. $ logmean: num [1:17806] 2.23 2.99 2.83 2.42 3.42 ...
#> .. .. .. $ DE : chr [1:17806] "black" "black" "red" "red" ...
#> .. ..@ layers :List of 3
#> .. .. .. $ geom_hline:Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomHline, Geom, gg>
#> aesthetics: function
#> check_constant_aes: FALSE
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> rename_size: TRUE
#> required_aes: yintercept
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: FALSE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: ggplot2::mapping, uneval, gg, S7_object
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. .. .. $ geom_point:Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomPoint, Geom, gg>
#> aesthetics: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes: size shape colour
#> optional_aes:
#> parameters: function
#> rename_size: FALSE
#> required_aes: x y
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: TRUE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: NULL
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. .. .. $ geom_rug :Classes 'LayerInstance', 'Layer', 'ggproto', 'gg' <ggproto object: Class LayerInstance, Layer, gg>
#> aes_params: list
#> compute_aesthetics: function
#> compute_geom_1: function
#> compute_geom_2: function
#> compute_position: function
#> compute_statistic: function
#> computed_geom_params: NULL
#> computed_mapping: NULL
#> computed_stat_params: NULL
#> constructor: call
#> data: waiver
#> draw_geom: function
#> finish_statistics: function
#> geom: <ggproto object: Class GeomRug, Geom, gg>
#> aesthetics: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> draw_group: function
#> draw_key: function
#> draw_layer: function
#> draw_panel: function
#> extra_params: na.rm
#> handle_na: function
#> non_missing_aes:
#> optional_aes: x y
#> parameters: function
#> rename_size: TRUE
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Geom, gg>
#> geom_params: list
#> inherit.aes: TRUE
#> layer_data: function
#> layout: NULL
#> map_statistic: function
#> mapping: NULL
#> name: NULL
#> position: <ggproto object: Class PositionIdentity, Position, gg>
#> aesthetics: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> required_aes:
#> setup_data: function
#> setup_params: function
#> use_defaults: function
#> super: <ggproto object: Class Position, gg>
#> print: function
#> setup_layer: function
#> show.legend: NA
#> stat: <ggproto object: Class StatIdentity, Stat, gg>
#> aesthetics: function
#> compute_group: function
#> compute_layer: function
#> compute_panel: function
#> default_aes: ggplot2::mapping, uneval, gg, S7_object
#> dropped_aes:
#> extra_params: na.rm
#> finish_layer: function
#> non_missing_aes:
#> optional_aes:
#> parameters: function
#> required_aes:
#> retransform: TRUE
#> setup_data: function
#> setup_params: function
#> super: <ggproto object: Class Stat, gg>
#> stat_params: list
#> super: <ggproto object: Class Layer, gg>
#> .. ..@ scales :Classes 'ScalesList', 'ggproto', 'gg' <ggproto object: Class ScalesList, gg>
#> add: function
#> add_defaults: function
#> add_missing: function
#> backtransform_df: function
#> clone: function
#> find: function
#> get_scales: function
#> has_scale: function
#> input: function
#> map_df: function
#> n: function
#> non_position_scales: function
#> scales: list
#> set_palettes: function
#> train_df: function
#> transform_df: function
#> super: <ggproto object: Class ScalesList, gg>
#> .. ..@ guides :Classes 'Guides', 'ggproto', 'gg' <ggproto object: Class Guides, gg>
#> add: function
#> assemble: function
#> build: function
#> draw: function
#> get_custom: function
#> get_guide: function
#> get_params: function
#> get_position: function
#> guides: NULL
#> merge: function
#> missing: <ggproto object: Class GuideNone, Guide, gg>
#> add_title: function
#> arrange_layout: function
#> assemble_drawing: function
#> available_aes: any
#> build_decor: function
#> build_labels: function
#> build_ticks: function
#> build_title: function
#> draw: function
#> draw_early_exit: function
#> elements: list
#> extract_decor: function
#> extract_key: function
#> extract_params: function
#> get_layer_key: function
#> hashables: list
#> measure_grobs: function
#> merge: function
#> override_elements: function
#> params: list
#> process_layers: function
#> setup_elements: function
#> setup_params: function
#> train: function
#> transform: function
#> super: <ggproto object: Class GuideNone, Guide, gg>
#> package_box: function
#> print: function
#> process_layers: function
#> setup: function
#> subset_guides: function
#> train: function
#> update_params: function
#> super: <ggproto object: Class Guides, gg>
#> .. ..@ mapping : <ggplot2::mapping> List of 3
#> .. .. .. $ colour: language ~DE
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x300777ce8>
#> .. .. .. $ x : language ~logmean
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x300777ce8>
#> .. .. .. $ y : language ~lfc
#> .. .. .. ..- attr(*, ".Environment")=<environment: 0x300777ce8>
#> .. ..@ theme : <theme> List of 144
#> .. .. .. $ line : <ggplot2::element_line>
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ lineend : chr "butt"
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ arrow : logi FALSE
#> .. .. .. ..@ arrow.fill : chr "black"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ rect : <ggplot2::element_rect>
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ text : <ggplot2::element_text>
#> .. .. .. ..@ family : chr ""
#> .. .. .. ..@ face : chr "plain"
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ size : num 11
#> .. .. .. ..@ hjust : num 0.5
#> .. .. .. ..@ vjust : num 0.5
#> .. .. .. ..@ angle : num 0
#> .. .. .. ..@ lineheight : num 0.9
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 0
#> .. .. .. ..@ debug : logi FALSE
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ title : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ point : <ggplot2::element_point>
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ shape : num 19
#> .. .. .. ..@ size : num 1.5
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ stroke : num 0.5
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ polygon : <ggplot2::element_polygon>
#> .. .. .. ..@ fill : chr "white"
#> .. .. .. ..@ colour : chr "black"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ linetype : num 1
#> .. .. .. ..@ linejoin : chr "round"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ geom : <ggplot2::element_geom>
#> .. .. .. ..@ ink : chr "black"
#> .. .. .. ..@ paper : chr "white"
#> .. .. .. ..@ accent : chr "#3366FF"
#> .. .. .. ..@ linewidth : num 0.5
#> .. .. .. ..@ borderwidth: num 0.5
#> .. .. .. ..@ linetype : int 1
#> .. .. .. ..@ bordertype : int 1
#> .. .. .. ..@ family : chr ""
#> .. .. .. ..@ fontsize : num 3.87
#> .. .. .. ..@ pointsize : num 1.5
#> .. .. .. ..@ pointshape : num 19
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ fill : NULL
#> .. .. .. $ spacing : 'simpleUnit' num 5.5points
#> .. .. .. ..- attr(*, "unit")= int 8
#> .. .. .. $ margins : <ggplot2::margin> num [1:4] 5.5 5.5 5.5 5.5
#> .. .. .. $ aspect.ratio : NULL
#> .. .. .. $ axis.title : NULL
#> .. .. .. $ axis.title.x : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 2.75 0 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.x.top : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 0
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 2.75 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.x.bottom : NULL
#> .. .. .. $ axis.title.y : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : num 90
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.75 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.title.y.left : NULL
#> .. .. .. $ axis.title.y.right : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : num -90
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 2.75
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : chr "#4D4D4DFF"
#> .. .. .. ..@ size : 'rel' num 0.8
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 1
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 2.2 0 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x.top : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : num 0
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 2.2 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.x.bottom : NULL
#> .. .. .. $ axis.text.y : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 1
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.2 0 0
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.y.left : NULL
#> .. .. .. $ axis.text.y.right : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 0 0 2.2
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.text.theta : NULL
#> .. .. .. $ axis.text.r : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0.5
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : <ggplot2::margin> num [1:4] 0 2.2 0 2.2
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.ticks : <ggplot2::element_line>
#> .. .. .. ..@ colour : chr "#333333FF"
#> .. .. .. ..@ linewidth : NULL
#> .. .. .. ..@ linetype : NULL
#> .. .. .. ..@ lineend : NULL
#> .. .. .. ..@ linejoin : NULL
#> .. .. .. ..@ arrow : logi FALSE
#> .. .. .. ..@ arrow.fill : chr "#333333FF"
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ axis.ticks.x : NULL
#> .. .. .. $ axis.ticks.x.top : NULL
#> .. .. .. $ axis.ticks.x.bottom : NULL
#> .. .. .. $ axis.ticks.y : NULL
#> .. .. .. $ axis.ticks.y.left : NULL
#> .. .. .. $ axis.ticks.y.right : NULL
#> .. .. .. $ axis.ticks.theta : NULL
#> .. .. .. $ axis.ticks.r : NULL
#> .. .. .. $ axis.minor.ticks.x.top : NULL
#> .. .. .. $ axis.minor.ticks.x.bottom : NULL
#> .. .. .. $ axis.minor.ticks.y.left : NULL
#> .. .. .. $ axis.minor.ticks.y.right : NULL
#> .. .. .. $ axis.minor.ticks.theta : NULL
#> .. .. .. $ axis.minor.ticks.r : NULL
#> .. .. .. $ axis.ticks.length : 'rel' num 0.5
#> .. .. .. $ axis.ticks.length.x : NULL
#> .. .. .. $ axis.ticks.length.x.top : NULL
#> .. .. .. $ axis.ticks.length.x.bottom : NULL
#> .. .. .. $ axis.ticks.length.y : NULL
#> .. .. .. $ axis.ticks.length.y.left : NULL
#> .. .. .. $ axis.ticks.length.y.right : NULL
#> .. .. .. $ axis.ticks.length.theta : NULL
#> .. .. .. $ axis.ticks.length.r : NULL
#> .. .. .. $ axis.minor.ticks.length : 'rel' num 0.75
#> .. .. .. $ axis.minor.ticks.length.x : NULL
#> .. .. .. $ axis.minor.ticks.length.x.top : NULL
#> .. .. .. $ axis.minor.ticks.length.x.bottom: NULL
#> .. .. .. $ axis.minor.ticks.length.y : NULL
#> .. .. .. $ axis.minor.ticks.length.y.left : NULL
#> .. .. .. $ axis.minor.ticks.length.y.right : NULL
#> .. .. .. $ axis.minor.ticks.length.theta : NULL
#> .. .. .. $ axis.minor.ticks.length.r : NULL
#> .. .. .. $ axis.line : <ggplot2::element_blank>
#> .. .. .. $ axis.line.x : NULL
#> .. .. .. $ axis.line.x.top : NULL
#> .. .. .. $ axis.line.x.bottom : NULL
#> .. .. .. $ axis.line.y : NULL
#> .. .. .. $ axis.line.y.left : NULL
#> .. .. .. $ axis.line.y.right : NULL
#> .. .. .. $ axis.line.theta : NULL
#> .. .. .. $ axis.line.r : NULL
#> .. .. .. $ legend.background : <ggplot2::element_rect>
#> .. .. .. ..@ fill : NULL
#> .. .. .. ..@ colour : logi NA
#> .. .. .. ..@ linewidth : NULL
#> .. .. .. ..@ linetype : NULL
#> .. .. .. ..@ linejoin : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.margin : NULL
#> .. .. .. $ legend.spacing : 'rel' num 2
#> .. .. .. $ legend.spacing.x : NULL
#> .. .. .. $ legend.spacing.y : NULL
#> .. .. .. $ legend.key : NULL
#> .. .. .. $ legend.key.size : 'simpleUnit' num 1.2lines
#> .. .. .. ..- attr(*, "unit")= int 3
#> .. .. .. $ legend.key.height : NULL
#> .. .. .. $ legend.key.width : NULL
#> .. .. .. $ legend.key.spacing : NULL
#> .. .. .. $ legend.key.spacing.x : NULL
#> .. .. .. $ legend.key.spacing.y : NULL
#> .. .. .. $ legend.key.justification : NULL
#> .. .. .. $ legend.frame : NULL
#> .. .. .. $ legend.ticks : NULL
#> .. .. .. $ legend.ticks.length : 'rel' num 0.2
#> .. .. .. $ legend.axis.line : NULL
#> .. .. .. $ legend.text : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : 'rel' num 0.8
#> .. .. .. ..@ hjust : NULL
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.text.position : NULL
#> .. .. .. $ legend.title : <ggplot2::element_text>
#> .. .. .. ..@ family : NULL
#> .. .. .. ..@ face : NULL
#> .. .. .. ..@ italic : chr NA
#> .. .. .. ..@ fontweight : num NA
#> .. .. .. ..@ fontwidth : num NA
#> .. .. .. ..@ colour : NULL
#> .. .. .. ..@ size : NULL
#> .. .. .. ..@ hjust : num 0
#> .. .. .. ..@ vjust : NULL
#> .. .. .. ..@ angle : NULL
#> .. .. .. ..@ lineheight : NULL
#> .. .. .. ..@ margin : NULL
#> .. .. .. ..@ debug : NULL
#> .. .. .. ..@ inherit.blank: logi TRUE
#> .. .. .. $ legend.title.position : NULL
#> .. .. .. $ legend.position : chr "right"
#> .. .. .. $ legend.position.inside : NULL
#> .. .. .. $ legend.direction : NULL
#> .. .. .. $ legend.byrow : NULL
#> .. .. .. $ legend.justification : chr "center"
#> .. .. .. $ legend.justification.top : NULL
#> .. .. .. $ legend.justification.bottom : NULL
#> .. .. .. $ legend.justification.left : NULL
#> .. .. .. $ legend.justification.right : NULL
#> .. .. .. $ legend.justification.inside : NULL
#> .. .. .. [list output truncated]
#> .. .. .. @ complete: logi TRUE
#> .. .. .. @ validate: logi TRUE
#> .. ..@ coordinates:Classes 'CoordCartesian', 'Coord', 'ggproto', 'gg' <ggproto object: Class CoordCartesian, Coord, gg>
#> aspect: function
#> backtransform_range: function
#> clip: on
#> default: FALSE
#> distance: function
#> draw_panel: function
#> expand: TRUE
#> is_free: function
#> is_linear: function
#> labels: function
#> limits: list
#> modify_scales: function
#> range: function
#> ratio: NULL
#> render_axis_h: function
#> render_axis_v: function
#> render_bg: function
#> render_fg: function
#> reverse: none
#> setup_data: function
#> setup_layout: function
#> setup_panel_guides: function
#> setup_panel_params: function
#> setup_params: function
#> train_panel_guides: function
#> transform: function
#> super: <ggproto object: Class CoordCartesian, Coord, gg>
#> .. ..@ facet :Classes 'FacetNull', 'Facet', 'ggproto', 'gg' <ggproto object: Class FacetNull, Facet, gg>
#> attach_axes: function
#> attach_strips: function
#> compute_layout: function
#> draw_back: function
#> draw_front: function
#> draw_labels: function
#> draw_panel_content: function
#> draw_panels: function
#> finish_data: function
#> format_strip_labels: function
#> init_gtable: function
#> init_scales: function
#> map_data: function
#> params: list
#> set_panel_size: function
#> setup_data: function
#> setup_panel_params: function
#> setup_params: function
#> shrink: TRUE
#> train_scales: function
#> vars: function
#> super: <ggproto object: Class FacetNull, Facet, gg>
#> .. ..@ layout :Classes 'Layout', 'ggproto', 'gg' <ggproto object: Class Layout, gg>
#> coord: NULL
#> coord_params: list
#> facet: NULL
#> facet_params: list
#> finish_data: function
#> get_scales: function
#> layout: NULL
#> map_position: function
#> panel_params: NULL
#> panel_scales_x: NULL
#> panel_scales_y: NULL
#> render: function
#> render_labels: function
#> reset_scales: function
#> resolve_label: function
#> setup: function
#> setup_panel_guides: function
#> setup_panel_params: function
#> train_position: function
#> super: <ggproto object: Class Layout, gg>
#> .. ..@ labels : <ggplot2::labels> List of 3
#> .. .. .. $ title: chr "condition_IFNg_SL1344_vs_naive"
#> .. .. .. $ y : chr "log fold change"
#> .. .. .. $ x : chr "mean of normalized counts - log10 scale"
#> .. ..@ meta : list()
#> .. ..@ plot_env :<environment: 0x300777ce8>
#> ..$ tbl_res_DE:'data.frame': 12482 obs. of 7 variables:
#> .. ..$ id : chr [1:12482] "ENSG00000101017" "ENSG00000126561" "ENSG00000125347" "ENSG00000105855" ...
#> .. ..$ baseMean : num [1:12482] 28017 20416 30585 16145 16217 ...
#> .. ..$ log2FoldChange: num [1:12482] 6.22 5.69 6.47 8.13 5.23 ...
#> .. ..$ lfcSE : num [1:12482] 0.202 0.189 0.22 0.282 0.18 ...
#> .. ..$ pvalue : num [1:12482] 3.17e-212 2.89e-202 5.71e-194 3.01e-192 5.12e-189 ...
#> .. ..$ padj : num [1:12482] 5.65e-208 2.57e-198 3.39e-190 1.34e-188 1.82e-185 ...
#> .. ..$ SYMBOL : chr [1:12482] "CD40" "STAT5A" "IRF1" "ITGB8" ...
#> ..$ topGO_tbl :'data.frame': 6091 obs. of 9 variables:
#> .. ..$ GO.ID : chr [1:6091] "GO:0008150" "GO:0051607" "GO:0019221" "GO:0050729" ...
#> .. ..$ Term : chr [1:6091] "biological_process" "defense response to virus" "cytokine-mediated signaling pathway" "positive regulation of inflammatory response" ...
#> .. ..$ Annotated : int [1:6091] 12869 288 454 151 109 964 85 220 582 433 ...
#> .. ..$ Significant : int [1:6091] 9331 244 373 130 96 769 76 182 457 362 ...
#> .. ..$ Expected : num [1:6091] 9337.3 209 329.4 109.6 79.1 ...
#> .. ..$ Rank in p.value_classic: int [1:6091] 6037 48 50 108 120 28 137 160 184 23 ...
#> .. ..$ p.value_elim : num [1:6091] 8.3e-17 3.6e-07 2.6e-05 3.9e-05 5.7e-05 ...
#> .. ..$ p.value_classic : num [1:6091] 9.98e-01 5.60e-07 7.80e-07 5.10e-05 7.10e-05 ...
#> .. ..$ genes : chr [1:6091] "A1BG,A2M,A4GALT,AAAS,AAK1,AAMDC,AARS1,AARS2,AARSD1,AASDH,AASDHPPT,AATF,AATK,ABAT,ABCA1,ABCA5,ABCA6,ABCA9,ABCB1,"| __truncated__ "ABCC9,ABCF3,ACOD1,ADAR,ADARB1,AGBL5,AICDA,AIM2,AIMP1,AKAP1,APOBEC3A,APOBEC3C,APOBEC3D,APOBEC3F,APOBEC3G,ARIH2,A"| __truncated__ "ACKR3,ACKR4,ACSL1,ADAM10,ADAM17,ADAR,ADIPOR2,AGPAT1,AGPAT2,AIM2,ANXA4,APPL1,APPL2,AXL,AZI2,BAD,BIRC2,BIRC3,BIRC"| __truncated__ "ABCC1,ADAM8,ADORA2B,AGT,AGTR1,AIM2,APP,BTK,C2CD4A,C3,CAMK2N1,CARD8,CASP1,CASP3,CASP4,CASP5,CASP8,CCL1,CCL15,CCL"| __truncated__ ...
As you can see, all results are stored, but navigating this structure can be difficult, and displaying them in a readable way can be cumbersome.
In practice, this often leads users to extract and store result tables separately, e.g. in Excel sheets. Unfortunately, with this approach results are more prone to being accidentally deleted, overwritten, or stripped of their original context …
# oops 1, deleting results
myresuSet$condition_IFNg_vs_naive$res_DESeq <- NULL# oops 2, overwriting results
myresuSet$condition_IFNg_vs_naive$res_DESeq <- dds_macrophageIn addition, the original count matrix and its metadata cannot be accessed if we are only saving the results. So the context is lost and these results cannot be reproduced unless one gets the counts.
2 Managing bulk RNA-seq analysis results using DeeDeeExperiment
With DeeDeeExperiment , DEA and FEA results are stored together with the original object and relevant analysis metadata within a single standardized container that can be readily shared and used within the Bioconductor ecosystem. By extending the SingleCellExperiment class, DeeDeeExperiment enforces a consistent internal structure in which results are explicitly associated with named contrasts, analysis metadata, software versions, and contextual information. These guarantees reduce the risk of silent errors, loss of provenance, and ambiguity when sharing or revisiting analyses.
library("DeeDeeExperiment")Let’s create a list of DEA and FEA results per contrast and give each contrast a meaningful name.
# dea
de_list <- list(
IFNg_vs_naive = myresuSet$condition_IFNg_vs_naive$res_DESeq,
SL1344_vs_naive = myresuSet$condition_SL1344_vs_naive$res_DESeq
)
# fea
fe_list <- list(
IFNg_vs_naive = myresuSet$condition_IFNg_vs_naive$topGO_tbl,
SL1344_vs_naive = myresuSet$condition_SL1344_vs_naive$topGO_tbl
)Now let’s assemble our dde object and display it
dde <- DeeDeeExperiment(sce = dds_macrophage, # original dds object used to
#perform the analysis
de_results = de_list, # dea list
enrich_results = fe_list) # fea list
dde#> class: DeeDeeExperiment
#> dim: 17806 24
#> metadata(8): tximetaInfo quantInfo ... version singlecontrast
#> assays(7): counts abundance ... H cooks
#> rownames(17806): ENSG00000000003 ENSG00000000419 ... ENSG00000285982
#> ENSG00000285994
#> rowData names(58): gene_id SYMBOL ... SL1344_vs_naive_pvalue
#> SL1344_vs_naive_padj
#> colnames(24): SAMEA103885102 SAMEA103885347 ... SAMEA103885308
#> SAMEA103884949
#> colData names(15): names sample_id ... condition line
#> reducedDimNames(0):
#> mainExpName: NULL
#> altExpNames(0):
#> dea(2): IFNg_vs_naive, SL1344_vs_naive
#> fea(2): IFNg_vs_naive, SL1344_vs_naive
Alternatively, the dde object can be initialized directly from the dds object and populated later
dde_built_step_by_step <- DeeDeeExperiment(sce = dds_macrophage)
dde_built_step_by_step#> class: DeeDeeExperiment
#> dim: 17806 24
#> metadata(7): tximetaInfo quantInfo ... txdbInfo version
#> assays(7): counts abundance ... H cooks
#> rownames(17806): ENSG00000000003 ENSG00000000419 ... ENSG00000285982
#> ENSG00000285994
#> rowData names(52): gene_id SYMBOL ... deviance maxCooks
#> colnames(24): SAMEA103885102 SAMEA103885347 ... SAMEA103885308
#> SAMEA103884949
#> colData names(15): names sample_id ... condition line
#> reducedDimNames(0):
#> mainExpName: NULL
#> altExpNames(0):
#> dea(0):
#> fea(0):
# add DEA results
# N.B: results can also be passed as a named list
dde_built_step_by_step <- addDEA(dde_built_step_by_step,
dea = myresuSet$condition_IFNg_vs_naive$res_DESeq)
dde_built_step_by_step <- addDEA(dde_built_step_by_step,
dea = myresuSet$condition_SL1344_vs_naive$res_DESeq)
dde_built_step_by_step#> class: DeeDeeExperiment
#> dim: 17806 24
#> metadata(8): tximetaInfo quantInfo ... version singlecontrast
#> assays(7): counts abundance ... H cooks
#> rownames(17806): ENSG00000000003 ENSG00000000419 ... ENSG00000285982
#> ENSG00000285994
#> rowData names(58): gene_id SYMBOL ...
#> myresuSet$condition_SL1344_vs_naive$res_DESeq_pvalue
#> myresuSet$condition_SL1344_vs_naive$res_DESeq_padj
#> colnames(24): SAMEA103885102 SAMEA103885347 ... SAMEA103885308
#> SAMEA103884949
#> colData names(15): names sample_id ... condition line
#> reducedDimNames(0):
#> mainExpName: NULL
#> altExpNames(0):
#> dea(2): myresuSet$condition_IFNg_vs_naive$res_DESeq, myresuSet$condition_SL1344_vs_naive$res_DESeq
#> fea(0):
# rename contrast to keep context
dde_built_step_by_step <- renameDEA(dde_built_step_by_step,
old = c("myresuSet$condition_IFNg_vs_naive$res_DESeq",
"myresuSet$condition_SL1344_vs_naive$res_DESeq"),
new = c("condition_IFNg_vs_naive",
"condition_SL1344_vs_naive"))# add FEA results
dde_built_step_by_step <- addFEA(dde_built_step_by_step,
fea = list(
condition_IFNg_vs_naive = myresuSet$condition_IFNg_vs_naive$topGO_tbl,
condition_SL1344_vs_naive = myresuSet$condition_SL1344_vs_naive$topGO_tbl
))
dde_built_step_by_step#> class: DeeDeeExperiment
#> dim: 17806 24
#> metadata(8): tximetaInfo quantInfo ... version singlecontrast
#> assays(7): counts abundance ... H cooks
#> rownames(17806): ENSG00000000003 ENSG00000000419 ... ENSG00000285982
#> ENSG00000285994
#> rowData names(58): gene_id SYMBOL ... condition_SL1344_vs_naive_pvalue
#> condition_SL1344_vs_naive_padj
#> colnames(24): SAMEA103885102 SAMEA103885347 ... SAMEA103885308
#> SAMEA103884949
#> colData names(15): names sample_id ... condition line
#> reducedDimNames(0):
#> mainExpName: NULL
#> altExpNames(0):
#> dea(2): condition_IFNg_vs_naive, condition_SL1344_vs_naive
#> fea(2): condition_IFNg_vs_naive, condition_SL1344_vs_naive
# get a quick summary on the analysis
summary(dde_built_step_by_step)#> DE Results Summary:
#> DEA_name Up Down FDR
#> condition_IFNg_vs_naive 3192 2887 0.05
#> condition_SL1344_vs_naive 5282 4785 0.05
#>
#> FE Results Summary:
#> FEA_Name Linked_DE FE_Type Term_Number
#> condition_IFNg_vs_naive condition_IFNg_vs_naive topGO 6091
#> condition_SL1344_vs_naive condition_SL1344_vs_naive topGO 6091
Now we can save this object that has recorded everything for us, and can be shared without losing information.
saveRDS(dde, "dde_macrophage.RDS")At a later time, we can load the object and still access everything related to the analysis
# get available contrasts
getDEANames(dde)#> [1] "IFNg_vs_naive" "SL1344_vs_naive"
# access dea and fea results
de_IFNg_vs_naive <- getDEA(dde,"IFNg_vs_naive", format = "minimal")
fe_IFNg_vs_naive <- getFEA(dde, "IFNg_vs_naive", format = "minimal")
# get a quick summary on the analysis
summary(dde)#> DE Results Summary:
#> DEA_name Up Down FDR
#> IFNg_vs_naive 3192 2887 0.05
#> SL1344_vs_naive 5282 4785 0.05
#>
#> FE Results Summary:
#> FEA_Name Linked_DE FE_Type Term_Number
#> IFNg_vs_naive IFNg_vs_naive topGO 6091
#> SL1344_vs_naive SL1344_vs_naive topGO 6091
# we still have the original object and metadata about the analysis, in case you
# come back 1 month later and forgot what you did
original_de_IFNg_vs_naive <- getDEA(dde,"IFNg_vs_naive", format = "original")
# and of course we store for each contrast, metadata such as the packages and
# versions used in this analysis, lfc threshold ...
getDEAInfo(dde)[["IFNg_vs_naive"]]#> $alpha
#> [1] 0.05
#>
#> $lfcThreshold
#> [1] 0
#>
#> $metainfo_logFC
#> [1] "log2 fold change (MAP): condition IFNg vs naive"
#>
#> $metainfo_pvalue
#> [1] "Wald test p-value: condition IFNg vs naive"
#>
#> $original_object
#> $original_object$metadata_storage
#> [1] "singlecontrast"
#>
#> $original_object$key
#> [1] "IFNg_vs_naive"
#>
#> $original_object$coef
#> NULL
#>
#>
#> $package
#> [1] "DESeq2"
#>
#> $package_version
#> [1] '1.50.2'
These information are stored within the object and preserved when saving and reloading the dde object, supporting reproducibility across time and collaborators.
By extending SingleCellExperiment, DeeDeeExperiment adheres to Bioconductor’s established standards for interoperability, rigorous testing, and documentation, enabling seamless integration with existing downstream tools and workflows for analysis, interpretation, and interactive exploration.
# for e.g. we can seamlessly insert a dde in iSEE and start the interactive
# visualization of the object
library("iSEE")
iSEE::iSEE(dde)For more details and methods and other use cases of DeeDeeExperiment, please check the package’s original vignette and the preprint
Session info
sessionInfo()#> R version 4.5.2 (2025-10-31)
#> Platform: aarch64-apple-darwin20
#> Running under: macOS Sequoia 15.7.2
#>
#> 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.5-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.1
#>
#> 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/Berlin
#> tzcode source: internal
#>
#> attached base packages:
#> [1] stats4 stats graphics grDevices utils datasets methods
#> [8] base
#>
#> other attached packages:
#> [1] DeeDeeExperiment_1.1.2 SingleCellExperiment_1.32.0
#> [3] org.Hs.eg.db_3.22.0 topGO_2.62.0
#> [5] SparseM_1.84-2 GO.db_3.22.0
#> [7] AnnotationDbi_1.72.0 graph_1.88.0
#> [9] mosdef_1.6.0 DESeq2_1.50.2
#> [11] SummarizedExperiment_1.40.0 Biobase_2.70.0
#> [13] MatrixGenerics_1.22.0 matrixStats_1.5.0
#> [15] GenomicRanges_1.62.0 Seqinfo_1.0.0
#> [17] IRanges_2.44.0 S4Vectors_0.48.0
#> [19] BiocGenerics_0.56.0 generics_0.1.4
#> [21] macrophage_1.26.0
#>
#> loaded via a namespace (and not attached):
#> [1] fs_1.6.6 bitops_1.0-9 enrichplot_1.30.3
#> [4] httr_1.4.7 webshot_0.5.5 RColorBrewer_1.1-3
#> [7] Rgraphviz_2.54.0 numDeriv_2016.8-1.1 tools_4.5.2
#> [10] R6_2.6.1 DT_0.34.0 lazyeval_0.2.2
#> [13] mgcv_1.9-4 apeglm_1.32.0 withr_3.0.2
#> [16] prettyunits_1.2.0 gridExtra_2.3 fdrtool_1.2.18
#> [19] cli_3.6.5 TSP_1.2.6 slam_0.1-55
#> [22] mvtnorm_1.3-3 S7_0.2.1 genefilter_1.92.0
#> [25] goseq_1.62.0 Rsamtools_2.26.0 systemfonts_1.3.1
#> [28] yulab.utils_0.2.2 gson_0.1.0 txdbmaker_1.6.0
#> [31] DOSE_4.4.0 R.utils_2.13.0 rentrez_1.2.4
#> [34] AnnotationForge_1.52.0 dichromat_2.0-0.1 bbmle_1.0.25.1
#> [37] limma_3.66.0 rstudioapi_0.17.1 RSQLite_2.4.5
#> [40] GOstats_2.76.0 gridGraphics_0.5-1 BiocIO_1.20.0
#> [43] gtools_3.9.5 dplyr_1.1.4 dendextend_1.19.1
#> [46] Matrix_1.7-4 abind_1.4-8 R.methodsS3_1.8.2
#> [49] lifecycle_1.0.4 edgeR_4.8.0 yaml_2.3.11
#> [52] gplots_3.3.0 qvalue_2.42.0 SparseArray_1.10.3
#> [55] BiocFileCache_3.0.0 grid_4.5.2 blob_1.2.4
#> [58] promises_1.5.0 crayon_1.5.3 bdsmatrix_1.3-7
#> [61] shinydashboard_0.7.3 ggtangle_0.0.9 lattice_0.22-7
#> [64] cowplot_1.2.0 annotate_1.88.0 GenomicFeatures_1.62.0
#> [67] cigarillo_1.0.0 KEGGREST_1.50.0 pillar_1.11.1
#> [70] knitr_1.50 fgsea_1.36.0 rjson_0.2.23
#> [73] codetools_0.2-20 fastmatch_1.1-6 glue_1.8.0
#> [76] ggiraph_0.9.2 ggfun_0.2.0 fontLiberation_0.1.0
#> [79] data.table_1.17.8 vctrs_0.6.5 png_0.1-8
#> [82] treeio_1.34.0 gtable_0.3.6 assertthat_0.2.1
#> [85] emdbook_1.3.14 cachem_1.1.0 xfun_0.54
#> [88] S4Arrays_1.10.0 mime_0.13 coda_0.19-4.1
#> [91] survival_3.8-3 pheatmap_1.0.13 seriation_1.5.8
#> [94] iterators_1.0.14 statmod_1.5.1 Category_2.76.0
#> [97] nlme_3.1-168 ggtree_4.0.1 bit64_4.6.0-1
#> [100] fontquiver_0.2.1 progress_1.2.3 filelock_1.0.3
#> [103] UpSetR_1.4.0 GenomeInfoDb_1.46.1 KernSmooth_2.23-26
#> [106] otel_0.2.0 DBI_1.2.3 tidyselect_1.2.1
#> [109] bit_4.6.0 compiler_4.5.2 curl_7.0.0
#> [112] httr2_1.2.1 BiasedUrn_2.0.12 fontBitstreamVera_0.1.1
#> [115] DelayedArray_0.36.0 plotly_4.11.0 rtracklayer_1.70.0
#> [118] scales_1.4.0 caTools_1.18.3 RBGL_1.86.0
#> [121] rappdirs_0.3.3 stringr_1.6.0 digest_0.6.39
#> [124] shinyBS_0.61.1 rmarkdown_2.30 ca_0.71.1
#> [127] XVector_0.50.0 htmltools_0.5.8.1 pkgconfig_2.0.3
#> [130] base64enc_0.1-3 lpsymphony_1.38.0 ideal_2.4.0
#> [133] dbplyr_2.5.1 fastmap_1.2.0 rlang_1.1.6
#> [136] htmlwidgets_1.6.4 UCSC.utils_1.6.0 shiny_1.11.1
#> [139] farver_2.1.2 IHW_1.38.0 jsonlite_2.0.0
#> [142] BiocParallel_1.44.0 GOSemSim_2.36.0 R.oo_1.27.1
#> [145] RCurl_1.98-1.17 magrittr_2.0.4 ggplotify_0.1.3
#> [148] patchwork_1.3.2 Rcpp_1.1.0 ape_5.8-1
#> [151] viridis_0.6.5 gdtools_0.4.4 rintrojs_0.3.4
#> [154] stringi_1.8.7 MASS_7.3-65 plyr_1.8.9
#> [157] parallel_4.5.2 ggrepel_0.9.6 Biostrings_2.78.0
#> [160] splines_4.5.2 hms_1.1.4 geneLenDataBase_1.46.0
#> [163] locfit_1.5-9.12 igraph_2.2.1 reshape2_1.4.5
#> [166] biomaRt_2.66.0 XML_3.99-0.20 evaluate_1.0.5
#> [169] BiocManager_1.30.27 foreach_1.5.2 tweenr_2.0.3
#> [172] httpuv_1.6.16 tidyr_1.3.1 purrr_1.2.0
#> [175] polyclip_1.10-7 heatmaply_1.6.0 ggplot2_4.0.1
#> [178] ggforce_0.5.0 xtable_1.8-4 restfulr_0.0.16
#> [181] tidytree_0.4.6 later_1.4.4 viridisLite_0.4.2
#> [184] tibble_3.3.0 clusterProfiler_4.18.2 aplot_0.2.9
#> [187] memoise_2.0.1 registry_0.5-1 GenomicAlignments_1.46.0
#> [190] GSEABase_1.72.0 shinyAce_0.4.4 BiocStyle_2.38.0