[BioC] MTP bug

Katherine Pollard kpollard at soe.ucsc.edu
Tue Jun 14 01:09:18 CEST 2005


Haiyan,

There are actually two problems with the code below. One is easy to fix
and relates to how you are defining the data. Try this instead:

group<-rep(0:1,5)

For test="f.block", it is necessary to input the data by block, with
observations within block labelled 0:(k-1), where k is the number of
observations per block. If you make this change, then you can run the
permuation MTP:

m1<-MTP(X=data,Y=group,test="f.block",alternative="less",B=100,
 method="sd.minP",nulldist="perm")

This function calls mt.minP with classlabel=Y. From the documentation:

classlabel: A vector of integers corresponding to observation (column)
          class labels. For k classes, the labels must be integers
          between 0 and k-1. For the 'blockf' test option, observations
          may be divided into n/k blocks of k observations each. The
          observations are ordered by block, and within each block,
          they are labeled using the integers 0 to k-1.

The second problem is actually a bug in MTP with the bootstrap null
distribution. When the number of observations per block is very small (2
here), then it is easy to get a bootstrap sampled data set with missing
data in one or more blocks. I need to think about how to handle this. I
will email again when a fix has been posted on the developmental packages
section of bioconductor.org.

Thanks for noticing the problem!
Katie

> Date: Fri, 10 Jun 2005 18:09:49 +0800
> From: "Haiyan Pan" <hypan at scbit.org>
> Subject: [BioC] bug for MTP
> To: "bioconductor" <bioconductor at stat.math.ethz.ch>
> Message-ID: <200506101010.j5AAAe14008147 at hypatia.math.ethz.ch>
> Content-Type: text/plain;	charset="gb2312"
>
> bioconductor:
>
>  when I used the following example to do MTP analysis
>
>
>      #data
>      set.seed(99)
>      data<-matrix(rnorm(90),nr=9)
>      group<-c(rep(1,5),rep(0,5))
>
>      m1<-MTP(X=data,Y=group,test = "f.block",alternative="less",B=100,method="sd.minP")
>
>  the following error information occurs:
>
>  Error in "[<-"(`*tmp*`, (i - 1) * l + j, value = numeric(0)) :
>         nothing to replace with
> In addition: Warning messages:
> 1: number of items to replace is not a multiple of replacement length
> 2: number of items to replace is not a multiple of replacement length
> 3: number of items to replace is not a multiple of replacement length
> 4: number of items to replace is not a multiple of replacement length
>
> how to fix it? Thanks



More information about the Bioconductor mailing list