Dear Philip,

Thank you for the detailed bug report. I have added it to our bug database and will fix it in the next release of maanova.

-Keith
--
Keith Sheppard
Scientific Software Engineer
The Jackson Lab

(207) 288-6897

JAX Mission:
"We discover the genetic basis for preventing, treating and curing human disease, and we enable research and education for the global biomedical community."


________________________________
From: Philip Lijnzaad <p.lijnzaad@umcutrecht.nl>
Date: Wed, 3 Jun 2009 11:40:34 -0400
To: Keith Sheppard <keith.sheppard@jax.org>
Cc: <bioc-devel@stat.math.ethz.ch>
Subject: maanova::matest:  subscript out of bounds if argument  test.method = c(0, x,y,z)

Dear Keith,

I found a nasty bug in matest(). The test.method argument (which has a default
of c(1,0,1,1)) needs to always at least include 1 as the first argument.

However, I only need the F2-derived p.values (anything more takes up space and
time), so I specified test.method=c(0,1,0,0). If I do this, the F1 is not
determined, but this is in fact also needed to establish the data for the
NULL model. Otherwise, the hsidx index (around line 216 and 219 in matest.R)
will be empty:

      hsidx = ftest$F1$Fobs <= qf(critical,ftest$dfnu ,ftest$dfde)

leading to

    sdata$data = sdata$data[hsidx==1,]

(around line 226) yielding an madata object with zero-dimensional data,
ultimately resulting in an subscript out of bounds somewhere else.

This bug has been there since at least maanova version 1.4.1, and is still
there in the latest developement version (maanova 1.15, BioC-2.5).

Solving it is trivial (always do the F1 test, and only add it to the output if
test.method[1]==1).

Kind regards,

                                                                       Philip

--
Philip Lijnzaad, PhD
Holstege Genomics Laboratory
Dept. of Biomedical Genetics
University Medical Center (UMC), Utrecht
Stratenum room 2.211 (on Mondays and Thursdays not in after 15.00)
MSN chat (*NOT* email): philip_lijnzaad@hotmail.com
P.O. Box 85060, 3508 AB Utrecht
(Universiteitsweg 100, 3584 CG Utrecht)
The Netherlands
tel: +31 (0)8875 68464
fax: +31 (0)8875 68479


	[[alternative HTML version deleted]]

