
"aveLogCPM"(y, normalized.lib.sizes=TRUE, prior.count=2, dispersion=NULL, ...)
"aveLogCPM"(y, lib.size=NULL, offset=NULL, prior.count=2, dispersion=NULL, weights=NULL, ...)
nrow(y)
, containing the average value(s) to be added to each count to avoid infinite values on the log-scale.colSums(y)
. Ignored if offset
is not NULL
.y
.
mglmOneGroup
to compute average counts-per-million (AveCPM) for each row of counts, and returns log2(AveCPM).
An average value of prior.count
is added to the counts before running mglmOneGroup
.
If prior.count
is a vector, each entry will be added to all counts in the corresponding row of y
.This function is similar to
log2(rowMeans(cpm(y, ...)))
,
but with the refinement that larger library sizes are given more weight in the average. The two versions will agree for large values of the dispersion.
cpm
for individual logCPM values, rather than genewise averages.The computations for aveLogCPM
are done by mglmOneGroup
.
y <- matrix(c(0,100,30,40),2,2)
lib.size <- c(1000,10000)
# With disp large, the function is equivalent to row-wise averages of individual cpms:
aveLogCPM(y, dispersion=1e4)
cpm(y, log=TRUE, prior.count=2)
# With disp=0, the function is equivalent to pooling the counts before dividing by lib.size:
aveLogCPM(y,prior.count=0,dispersion=0)
cpms <- rowSums(y)/sum(lib.size)*1e6
log2(cpms)
# The function works perfectly with prior.count or dispersion vectors:
aveLogCPM(y, prior.count=runif(nrow(y), 1, 5))
aveLogCPM(y, dispersion=runif(nrow(y), 0, 0.2))
Run the code above in your browser using DataLab