Spike-in methods {SingleCellExperiment} | R Documentation

## Spike-in methods

### Description

Gets or sets the rows corresponding to spike-in transcripts.

### Usage

    ## S4 method for signature 'SingleCellExperiment,character'
    isSpike(x, type)

    ## S4 method for signature 'SingleCellExperiment,missing'
    isSpike(x, type)

    ## S4 method for signature 'SingleCellExperiment,NULL'
    isSpike(x, type)

    ## S4 replacement method for signature 'SingleCellExperiment,character'
    isSpike(x, type) <- value

    ## S4 replacement method for signature 'SingleCellExperiment,missing'
    isSpike(x, type) <- value

    ## S4 replacement method for signature 'SingleCellExperiment,NULL'
    isSpike(x, type) <- value

    ## S4 method for signature 'SingleCellExperiment'
    clearSpikes(x)

    ## S4 method for signature 'SingleCellExperiment'
    spikeNames(x)

### Arguments

`x` | A SingleCellExperiment object.
`type` | A string containing the name of the spike-in set.
`value` | A vector indicating which rows correspond to spike-in transcripts.

### Details

Spike-in transcripts may be added during library preparation in single-cell RNA sequencing experiments. These usually need to be handled differently during data analysis, compared to the endogenous genes. Thus, it is important to indicate which rows correspond to spike-in transcripts.

The `isSpike<-` method accepts any `value` that indicates which rows correspond to spike-ins. This can be a logical or integer subsetting vector, or a vector of row names. The `type` should be set to the name of the spike-in set, e.g., `"ERCC"` or `"SIRV"`.

In this manner, multiple types of spike-in sets are supported for a single experiment. This is useful not only when different spike-ins are used, but also for different mixtures of the same set (e.g., ERCC mixes 1 and 2). The names of all available spike-in sets can be obtained using `spikeNames`.

To remove spike-ins for a particular set, `value` should be set to `NULL` when using `isSpike<-`. To remove all spike-in information, `clearSpikes` should be used to obtain a new SingleCellExperiment object with no spike-ins specified.

In previous versions (<= 1.1.1), if `value` was `NULL` in `isSpike<-`, all existing spike-in sets would be removed. This behaviour is now deprecated, and `clearSpikes` should be used instead. Also, if `type` was missing or `NULL` for `isSpike<-`, the spike-in set would be automatically assigned an empty name. This is also deprecated, and all spike-ins should be given a user-supplied name.

The `isSpike` getter methods will return a logical vector indicatng which rows represent spike-ins of the set specified by `type`. If `type` is missing or `NULL`, the vector will instead indicate whether each row is in any spike-in set. If `type` is specified but not available, an error will be raised.

### Value

For `isSpike`, a logical vector is returned indicating whether each row is in the specified set `type` or any set.

For `isSpike<-`, a SingleCellExperiment is returned with spike-in information stored in the internal metadata fields.

For `spikeNames`, a character vector is returned containing the names of available spike-in sets.

For `clearSpikes`, a SingleCellExperiment is returned with no spike-in information.

### Author(s)

Aaron Lun

### See Also

`SingleCellExperiment-class`

### Examples

    example(SingleCellExperiment, echo=FALSE) # Using the class example
    isSpike(sce, "ERCC") <- 1:10
    isSpike(sce)

    isSpike(sce, "SIRV") <- 11:20
    spikeNames(sce)
    which(isSpike(sce))
    which(isSpike(sce, "SIRV"))

    isSpike(sce, "ERCC") <- NULL
    spikeNames(sce)

[Package SingleCellExperiment version 1.2.0 Index]