A function to wrap up the DESeq2 inputs&outputs, and plug that as SingleCellExperiment into iSEE
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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment