Add gene lengths to an SingleCellExperiment object

addGeneLengths(sce, method = c("generate", "sample"), loc = 7.9,
  scale = 0.7, lengths = NULL)

Arguments

sce

SingleCellExperiment to add gene lengths to.

method

Method to use for creating lengths.

loc

Location parameter for the generate method.

scale

Scale parameter for the generate method.

lengths

Vector of lengths for the sample method.

Value

SingleCellExperiment with added gene lengths

Details

This function adds simulated gene lengths to the rowData slot of a SingleCellExperiment object that can be used for calculating length normalised expression values such as TPM or FPKM. The generate method simulates lengths using a (rounded) log-normal distribution, with the default loc and scale parameters based on human protein-coding genes. Alternatively the sample method can be used which randomly samples lengths (with replacement) from a supplied vector.

Examples

# Default generate method sce <- simpleSimulate()
#> Simulating means...
#> Simulating counts...
#> Creating final dataset...
sce <- addGeneLengths(sce) head(rowData(sce))
#> DataFrame with 6 rows and 3 columns #> Gene GeneMean Length #> <factor> <numeric> <numeric> #> Gene1 Gene1 0.0792265397126071 1105 #> Gene2 Gene2 0.0306368911550198 2027 #> Gene3 Gene3 1.75797983978846 5541 #> Gene4 Gene4 0.000969198708564301 2476 #> Gene5 Gene5 0.0554598556966454 2845 #> Gene6 Gene6 2.21278105339233 3607
# Sample method (human coding genes) if (FALSE) { library(TxDb.Hsapiens.UCSC.hg19.knownGene) library(GenomicFeatures) txdb <- TxDb.Hsapiens.UCSC.hg19.knownGene tx.lens <- transcriptLengths(txdb, with.cds_len = TRUE) tx.lens <- tx.lens[tx.lens$cds_len > 0, ] gene.lens <- max(splitAsList(tx.lens$tx_len, tx.lens$gene_id)) sce <- addGeneLengths(sce, method = "sample", lengths = gene.lens) }