View source: R/importDittoBulk.R
importDittoBulk | R Documentation |
import bulk sequencing data into a SingleCellExperiment format that will work with other dittoSeq functions.
importDittoBulk(x, reductions = NULL, metadata = NULL, combine_metadata = TRUE)
x |
A Alternatively, for import from a raw matrix format, a named list of matrices (or matrix-like objects) where names will become the assay names of the eventual SCE. NOTE: As of dittoSeq version 1.1.11, all dittoSeq functions can work directly with SummarizedExperiment objects, so this import function is nolonger required for such data. |
reductions |
A named list of dimensionality reduction embeddings matrices.
Names will become the names of the dimensionality reductions and how each will be used with the For each matrix, rows of the matrices should represent the different samples of the dataset, and columns the different dimensions. |
metadata |
A data.frame (or data.frame-like object) where rows represent samples and named columns represent the extra information about such samples that should be accessible to visualizations. The names of these columns can then be used to retrieve and plot such data in any dittoSeq visualization. |
combine_metadata |
Logical which sets whether original When
|
A SingleCellExperiment
object...
that contains all assays (SummarizedExperiment; includes DESeqDataSets), all standard slots (DGEList; see below for specifics), or expression matrices of the input x
,
as well as any dimensionality reductions provided to reductions
, and any provided metadata
stored in colData.
As of dittoSeq version 1.1.11, all dittoSeq functions can work directly with SummarizedExperiment objects, so this import function is nolonger required for such data.
One recommended assay to create if it is not already present in your dataset, is a log-normalized version of the counts data. The logNormCounts function of the scater package is an easy way to make such a slot.
dittoSeq visualizations default to grabbing expression data from an assay named logcounts > normcounts > counts
SingleCellExperiment
for more information about this storage structure.
library(SingleCellExperiment)
# Generate some random data
nsamples <- 60
exp <- matrix(rpois(1000*nsamples, 20), ncol=nsamples)
colnames(exp) <- paste0("sample", seq_len(ncol(exp)))
rownames(exp) <- paste0("gene", seq_len(nrow(exp)))
logexp <- log2(exp + 1)
# Dimensionality Reductions
pca <- matrix(runif(nsamples*5,-2,2), nsamples)
tsne <- matrix(rnorm(nsamples*2), nsamples)
# Some Metadata
conds <- factor(rep(c("condition1", "condition2"), each=nsamples/2))
timept <- rep(c("d0", "d3", "d6", "d9"), each = 15)
genome <- rep(c(rep(TRUE,7),rep(FALSE,8)), 4)
grps <- sample(c("A","B","C","D"), nsamples, TRUE)
clusts <- as.character(1*(tsne[,1]>0&tsne[,2]>0) +
2*(tsne[,1]<0&tsne[,2]>0) +
3*(tsne[,1]>0&tsne[,2]<0) +
4*(tsne[,1]<0&tsne[,2]<0))
score1 <- seq_len(nsamples)/2
score2 <- rnorm(nsamples)
### We can import the counts directly
myRNA <- importDittoBulk(
x = list(counts = exp,
logcounts = logexp))
### Adding metadata & PCA or other dimensionality reductions
# We can add these directly during import, or after.
myRNA <- importDittoBulk(
x = list(counts = exp,
logcounts = logexp),
metadata = data.frame(
conditions = conds,
timepoint = timept,
SNP = genome,
groups = grps),
reductions = list(
pca = pca))
myRNA$clustering <- clusts
myRNA <- addDimReduction(
myRNA,
embeddings = tsne,
name = "tsne")
# (other packages SCE manipulations can also be used)
### When we import from SummarizedExperiment, all metadata is retained.
# The object is just 'upgraded' to hold extra slots.
# The output is the same, aside from a message when metadata are replaced.
se <- SummarizedExperiment(
list(counts = exp, logcounts = logexp))
myRNA <- importDittoBulk(
x = se,
metadata = data.frame(
conditions = conds,
timepoint = timept,
SNP = genome,
groups = grps,
clustering = clusts,
score1 = score1,
score2 = score2),
reductions = list(
pca = pca,
tsne = tsne))
myRNA
### For DESeq2, how we might have made this:
# DESeqDataSets are SummarizedExperiments, and behave similarly
# library(DESeq2)
# dds <- DESeqDataSetFromMatrix(
# exp, data.frame(conditions), ~ conditions)
# dds <- DESeq(dds)
# dds_ditto <- importDittoBulk(dds)
### For edgeR, DGELists are a separate beast.
# dittoSeq imports what I know to commonly be inside them, but please submit
# an issue on the github (dtm2451/dittoSeq) if more should be retained.
# library(edgeR)
# dgelist <- DGEList(counts=exp, group=conditions)
# dge_ditto <- importDittoBulk(dgelist)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.