[BioC] DEXSeq: subsetting ExonCountSet ?
Steve Lianoglou
lianoglou.steve at gene.com
Tue May 7 18:30:08 CEST 2013
Hi Yvan,
On Tue, May 7, 2013 at 1:26 AM, Yvan Wenger <yvan.wenger at unige.ch> wrote:
> Hello everybody,
>
> I have 11 libraries representing 6 different conditions (some are in
> triplicates). Is there a simple way to test for differential
> expression using DEXSeq between two libraries I actually choose?
>
> For example, in the DESeq pacakge, we use the command res =
> nbinomTest( cds, "untreated", "treated" ) which clearly specifies the
> conditions between the two samples to test, but I do not see any
> possibility to input the conditions I want in the DEXSeq function
> testForDEU(). I would like to be able to use dispersions calculated
> with all my conditions even if I test only condition pairs (like in
> DESeq basically).
This is relatively simple to do. You first have to subset out the
samples that belong to your condition of interest then run the
`testForDEU`. You also have to be careful to remove the levels of your
"condition" factor that have been dropped due to your subsetting your
ExonCountSet object.
Let's use the `pasillaExons` ExonCountSet from the pasilla package to
see how to test only the samples of `type == "single-read"`
R> library(pasilla)
R> data("pasillaExons")
R> design(pasillaExons)
condition type
treated1fb | treated single-read
treated2fb | treated paired-end
treated3fb | treated paired-end
untreated1fb| untreated single-read
untreated2fb| untreated single-read
untreated3fb| untreated paired-end
untreated4fb| untreated paired-end
## Now take only samples of `type == "single-read"`
R> some <- pasillaExons[,design(pasillaExons)$type == "single-read"]
R> design(some)
condition type
treated1fb | treated single-read
untreated1fb| untreated single-read
untreated2fb| untreated single-read
## The problem is that the `paired-end` read level is still
## in the `type` column of the design:
R> design(some)$type
[1] single-read single-read single-read
Levels: paired-end single-read
## This will trip you up when you run the `testForDEU` as the
## model matrix will have 0-columns that are generated from
## the levels that have been removed from the design. This
## is easy to fix:
R> design(some) <- droplevels(design(some))
## Now let it rip
R> result <- testForDEU(some, ...)
Alejandro: perhaps adding a `"[","ExonCountSet"` method to do this
automatically would be useful, eg. in the R/class_and_accessors.R file
you could have something like:
setMethod("[", "ApaCountSet", function(x, i, j, ..., drop = FALSE) {
x <- callNextMethod()
design(x) <- droplevels(design(x))
x
})
HTH,
-steve
--
Steve Lianoglou
Computational Biologist
Department of Bioinformatics and Computational Biology
Genentech
More information about the Bioconductor
mailing list