A function to wrap up the DESeq2 inputs&outputs, and plug that as SingleCellExperiment into iSEE (original) (raw)

A function to wrap up the DESeq2 inputs&outputs, and plug that as SingleCellExperiment into iSEE

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

library(DESeq2)
wrapup_for_iSEE <- function(dds, res) {
# dds to vst
vst <- vst(dds)
# initialize the container
se <- SummarizedExperiment(
assays = List(
counts = counts(dds),
normcounts = counts(dds,normalized = TRUE),
vst_counts = assay(vst)
)
)
# adding colData, taken directly from the DESeqDataSet object
colData(se) <- colData(dds)
# extract contrast info
this_contrast <- sub(".*p-value: (.*)","\\1",mcols(res, use.names=TRUE)["pvalue","description"])
# getting the rowData from the dds itself
rdd <- rowData(dds)
# modifying in advance the DESeqResults object
res$log10_baseMean <- log10(res$baseMean)
res$log10_pvalue <- -log10(res$pvalue)
# and for the rowData
rdd$log10_dispersion <- log10(rdd$dispersion)
# adding rowData to se
rowData(se)[[paste0("DESeq2_",gsub(" ","_",this_contrast))]] <- res
# merging in the existing rowData slot
rowData(se) <- cbind(rowData(se), rdd)
return(se)
}
# next, launch iSEE directly on the se object!
se <- wrapup_for_iSEE(dds,res)
library(iSEE)
iSEE(se)