[BioC] EdgeR: Using estimateCommondisp for housekeeping genes

Mark Robinson mark.robinson at imls.uzh.ch
Sun Nov 13 16:35:39 CET 2011

Hi Tonya,

I believe your question comes down to how to subset a DGEList object.  As the example 'd[housekeeping,]' suggests, it is much like subletting a matrix (if you don't know how to do this, you should consult an Intro to R manual).  

Here is an example:

y <- matrix(rnbinom(80,size=1/0.2,mu=10),nrow=20,ncol=4)
rownames(y) <- paste("Gene",1:nrow(y),sep=".")
group <- factor(c(1,1,2,2))
d <- DGEList(counts=y,group=group,lib.size=rep(1000,4))

If you knew your housekeeping genes were in rows {4,6,10,15} of your table, you could simply call:

do <- estimateCommonDisp(d[c(4,6,10,15),])

Of course, there are lots of ways to subset, e.g.:

Equivalent to above but slight different approach, you could do:

gkeep <- paste("Gene",c(4,6,10,15),sep=".")
do <- estimateCommonDisp(d[rownames(d) %in% gkeep,])

… and so on.

On the whole enterprise of doing these analyses w/o replicates, there has been a lot of discussion:

… and so on.

All the best,

Prof. Dr. Mark Robinson
Institute of Molecular Life Sciences
University of Zurich
Winterthurerstrasse 190
8057 Zurich

v: +41 44 635 4848
f: +41 44 635 6898
e: mark.robinson at imls.uzh.ch
o: Y32-J-34
w: http://tiny.cc/mrobin

On 12.11.2011, at 23:12, Tonya Mariko Brunetti wrote:

> Hello,
> My name is Tonya and I am very new to both R and edgeR so sorry if this seems silly.  I have recently gotten back results of two samples from a 454 and do not have replicates of either.  I was reading the edgeR manual section about what to do about calculating common dispersion factors if no replicates are available.
> One of the options was to use genes that are not suppose to be differentially expressed (ie housekeeping genes) to determine the common dispersion.  In the manaul they show an example do<-estimateCommonDisp(d[housekeeping,]).
> Would anyone please explain to me how I can use the housekeeping genes in the data I have collected to estimate this value.  I have tried numerous things for input into the function estimateCommonDisp (see below some of what I have tried) but I guess I don't know how to specify just the housekeeping genes??  Or if anyone has a method for common dispersion in edgeR that will work for no replicates that would be appreciated as well!
> estimateCommonDisp(d['RpS2','RpS28b]) (where the stuff in brackets are my housekeeping genes and d is my normalized DGEList
> estimateCommonDisp(d[RpS2,RpS28b])
> Thank you so much!
> Tonya
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor

More information about the Bioconductor mailing list