[Bioc-devel] 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 at 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