[BioC] manova contrast.matrix

David martin vilanew at gmail.com
Fri Dec 11 11:21:59 CET 2009


Hi,
i'm having problems to create a contrast from a manova fit object.
The MAANOVA package is doing that perfectly but i can't use it as i'm 
not using arrays.


 >> pData:
              Celltype  Patient  Group
  pat1.cell1     Bcell         1       normal
  pat1.cell2     Tcell         1       normal
  pat2.cell1     Bcell         2      severe
  pat2.cell2     Tcell         2      severe
  pat2.cell1     Bcell         3      mild
  pat2.cell2     Tcell         3      mild


  My data.eset matrix looks like that

  exprs(mydata.eset)
  exprs:

         pat1.cell1  pat1.cell2 .....
  gene1     0.18            1.2
  gene2     0.56            1.5
  gene3     0.20            1.3
  gene4     0.56            2.2
  ...

  group=c(as.character(unique(phenotype$Group)))
  patient=c(as.character(unique(phenotype$Patient)))
  celltype=c(as.character(unique(phenotype$Celltype)))

  #The function design.list is a custom copded encoded function to easily
  create the numeric values for the different variables

  groups = factor(c(design.list(phenotype$Group,group)))
  celltypes = factor(c(design.list(phenotype$Celltype,celltype)))
  patients =  factor(c(design.list(phenotype$Patient,patient)))



 >fit<- manova( t(exprs(mydata.eset)) ~ celltypes*groups)
 >summary.aov(fit)

Response GeneA :
                   Df  Sum Sq Mean Sq  F value    Pr(>F)
celltypes          1 1429.65 1429.65 403.8082 < 2.2e-16 ***
groups             2    6.22    3.11   0.8783  0.418247
celltypes:groups   2   38.91   19.45   5.4948  0.005248 **
Residuals        116  410.69    3.54

This is telling me that a particular gene is differentially expresed 
betwee, celltypes and groups . Can i see which  genes are differentially 
expressed betwee pariwise groups. For example gene A is differentially 
expressed between celltypes and groups but i still don't know if it 
expression changes between normal and mild on one side and severe and 
mild on the other hand.

Normally i would do that by building an anova pairwise design for each 
celltype:

 > contrast.matrix <- design.pairs(c("normal", "mild", "severe"))
 > contrast.matrix
        normal-mild normal-severe mild-severe
normal           1             1           0
mild            -1             0           1
severe           0            -1          -1

fit2 <- contrasts.fit(fit, contrast.matrix)

That will not work for a manova fit object because of celltype. How can 
i fix this ?? any idea ???

I though it would usefull to use the MAAANOVA package for that but is 
there a way to create a madata object from my eset object ?? it might 
make things easier ? At the end i also have an expression data matrix 
and it would be extremely useful to create design.

thanks



More information about the Bioconductor mailing list