Add gene lengths to an SingleCellExperiment object
addGeneLengths(sce, method = c("generate", "sample"), loc = 7.9, scale = 0.7, lengths = NULL)
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. |
SingleCellExperiment with added gene lengths
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.
#>#>#>sce <- addGeneLengths(sce) head(rowData(sce))#> DataFrame with 6 rows and 3 columns #> Gene GeneMean Length #> <factor> <numeric> <numeric> #> 1 Gene1 0.26662904681126 1135 #> 2 Gene2 3.22843622430885 6836 #> 3 Gene3 0.747825116595176 3205 #> 4 Gene4 0.0237206245029356 1427 #> 5 Gene5 0.0901336217761832 4777 #> 6 Gene6 2.1010781020721 1065# Sample method (human coding genes)# NOT RUN { 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) # }