title: How to perform multiple comparison for microarray data in R
body: <p>I'm new to R and multiple comparison tests for diferentially expressed genes. I'm reading this book called Bioinformatics and Computational Biology Solutions using R and Bioconductor by Robert Gentleman, Rafael A. Irizarry, Vincent J. Carey, Sandrine Dudoit, Wolfgang Huber. I'm currently in chapter 15 and working on the example in the book. I think I understood most of it, but what I didn't understand is how is MTP package performing multiple tests. Here's the code from the book</p>
  
  <pre><code>library("ALL")
  library("hgu95av2")
  data(ALL)
  
  runMTP &lt;- function()
  ffun &lt;- filterfun(pOverA(p = 0.2, A=100), cv(a=0.7, b=10))
  filt &lt;- genefilter(2^exprs(ALL), ffun)
  filtALL &lt;- ALL[filt, ]
  filtX &lt;- exprs(filtALL)
  pheno &lt;- pData(filtALL)
  Bcell &lt;- rep(0, length(pData(ALL)$BT))
  Bcell[grep("B", as.character(pData(ALL)$BT))] &lt;- 1
  seed &lt;- 99
  cache(BT.boot &lt;- MTP(X=filtX, Y=Bcell, alternative ="greater", B=100, method = "sd.minP", seed = seed))
  </code></pre>
  
  <p>So, I understand filtX has 431 different genes and 128 different patients. But Y=Bcell contains 128 1s and 0s (1 for B-cell, and 0 for T-cell). Can anyone please help me understand how it's doing the multiple comparison test with adj p value? Are they just using <code>pairwise.t.test(X, Y, p.adjust.method="bonferroni")</code>? or are they doing something diffent? And if they're using the above code to get the adj. P-value, what goes in X and Y and how is it determined from the matrix filtX? Also, the MTP is also bootstrapping, but what is it bootstrapping? Can you give me an example of one genetype and tell me how to do this for all the other ones? </p>
  
  <p>I'd really appreciate if someone can help me understand this in simple words. </p>
  
  <p>Thank you. </p>