[BioC] Bug in GSVA with methods other than default?

Sonja Haenzelmann sonjahaenzelmann at gmail.com
Fri Feb 21 14:11:11 CET 2014


On Fri, Feb 21, 2014 at 1:55 PM, Jonathan Manning
<Jonathan.Manning at ed.ac.uk> wrote:
> gsva_es <- gsva(y, geneSets, mx.diff=1, method='plage')$es.obs

For plage you simply leave the $es.obs out. You only need to put it
when you use method = "gsva"

Like this:

 gsva_es <- gsva(y, geneSets, mx.diff=1, method='plage')

On Fri, Feb 21, 2014 at 1:55 PM, Jonathan Manning
<Jonathan.Manning at ed.ac.uk> wrote:
> Hi Sonja,
>
> Thanks.
>
> The error occurs in ALL situations where an alternate method is provided.
> Tweaking your own example does the trick, try this modification to
> reproduce:
>
> gsva_es <- gsva(y, geneSets, mx.diff=1, method='plage')$es.obs
>
> Jon
>
>
> On 21/02/2014 12:34, Sonja Haenzelmann wrote:
>
> Hi Jonathan.
>
> Justin, the co author of the paper added the bootstrapping. As far as
> I know it does not work. There was an earlier post on this in the
> mailng list.
>
> How does your input look like? gsva can handle expression set or
> matrix, nothing else.
>
> Did I answer your question? If not, please provide me a *reproducible*
> example, otherwise I cannot help you :/
>
> Cheers
> Sonja
>
>
> On Fri, Feb 21, 2014 at 1:19 PM, Jonathan Manning
> <Jonathan.Manning at ed.ac.uk> wrote:
>
> Hi Sonja,
>
> Thanks for the quick reply, but I don't think I've made myself clear. I'm
> aware that gsva() returns that list, from which you need to extract es.obs,
> but the error lies internal to the method when that list is being
> constructed.
>
> For example, when I run:
>
> gsva_es <- gsva(my.expressionset, c2BroadSets, verbose=TRUE,
> method='plage')$es.obs
>
> I get the error I described:
>
> Error in eSco$es.obs : $ operator is invalid for atomic vectors
>
> From what I can determine, GSVA:::.gsva() (called from gsva()) returns the
> results of PLAGE et al directly, as matrices, rather than doing
> bootstrapping etc and making a list. But the top-level gsva() seems to
> expect a list with the results of bootstrapping etc, as happens in the
> default case. The lines from gsva() in question are:
>
> eSco <- GSVA:::.gsva(Biobase::exprs(expr), mapped.gset.idx.list,
>
>                          method, rnaseq, abs.ranking, no.bootstraps,
> bootstrap.percent,
>
>                          parallel.sz, parallel.type, mx.diff, tau, kernel,
>
>                          verbose)
>
>     eScoEset <- expr
>
>     Biobase::exprs(eScoEset) <- eSco$es.obs
>
>
>
>     Biobase::annotation(eScoEset) <- ""
>
>     return(list(es.obs = eScoEset, bootstrap = eSco$bootstrap,
>
>                 p.vals.sign = eSco$p.vals.sign))
>
> If I specify method='plage', then 'eSco' is a matrix and 'eSco$es.obs' won't
> work.
>
> Is that clearer? It seems that bootstrapping doesn't happen right now where
> method is PLAGE etc- should that be the case?
>
> Jon
>
>
>
> On 21/02/2014 12:01, Sonja Haenzelmann wrote:
>
> gsva_es <- gsva(y, geneSets, mx.diff=1)$es.obs
>
>
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>



More information about the Bioconductor mailing list