importDittoBulk {dittoSeq} | R Documentation

## import bulk sequencing data into a format that dittoSeq functions expect.

### Description

import bulk sequencing data into a format that dittoSeq functions expect.

### Usage

    importDittoBulk(x, ...)

    ## S4 method for signature 'SummarizedExperiment'
    importDittoBulk(x, reductions = NULL, metadata = NULL, combine_metadata = TRUE)

    ## S4 method for signature 'DGEList'
    importDittoBulk(x, reductions = NULL, metadata = NULL, combine_metadata = TRUE)

    ## S4 method for signature 'list'
    importDittoBulk(x, reductions = NULL, metadata = NULL)

### Arguments

`x` | a `DGEList`, or `SummarizedExperiment` (includes `DESeqDataSet`) class object containing the sequencing data to be imported
`...` | For the generic, additional arguments passed to specific methods.
`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 `reduction.use` input of `dittoDimPlot` rows of the matrices should represent the different cells/samples of the dataset, and columns the different dimensions
`metadata` | a data.frame like object containing columns of extra information about the cells/samples (rows). The names of these columns can then be used to tretrieve and plot such data in any dittoSeq visualizations.
`combine_metadata` | Logical which sets whether original colData (DESeqDataSet/SummarizedExperiment) or $samples (DGEList) from x should be retained.

### Value

A `SingleCellExperiment` object containing all assays (DESeqDataSet or SummarizeedExperiment) or all common slots (DGEList) of the input `x`, as well as any dimensionality reductions provided to `reductions`, and any provided `metadata` stored in colData.

When `combine_metadata` is set to FALSE, metadata inside `x` (colData or $samples) is ignored entirely. When `combine_metadata` is TRUE (the default), metadata inside `x` is combined with what is provided to the `metadata` input; but names must be unique, so when there are similarly named slots, the values provided to the `metadata` input are used.

### Note

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 defaults to grabbing expression data from an assay named logcounts > normcounts > counts

### See Also

`SingleCellExperiment` for more information about this storage system.

### Examples

    ## Bulk data is stored as a SingleCellExperiment
    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))

    ### We can import the counts directly, or as a SummarizedExperiment
    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 input 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),
        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)

[Package dittoSeq version 1.0.2 Index]