Entering edit mode
                    Nathan S. Watson-Haigh
        
    
        ▴
    
    40
        @nathan-s-watson-haigh-2987
        Last seen 11.2 years ago
        
    I have what I think should be really obvious, but seem to keep banging
my
head against a wall....ouch!
I want generate a heatplot for a set of genes from a contrast used in
my
limma analysis. However, I want to limit the heatplot to only those
arrays
used in the contrast. So I thought I'd be able to use the contrast and
design matrix to do just that. However, I'm having problems.....
My design matrix:
> design
   H.N.N L.N.N H.Y.N L.Y.N H.Y.Y L.Y.Y
1      1     0     0     0     0     0
2      1     0     0     0     0     0
3      1     0     0     0     0     0
4      0     1     0     0     0     0
5      0     1     0     0     0     0
6      0     1     0     0     0     0
7      0     0     1     0     0     0
8      0     0     1     0     0     0
9      0     0     1     0     0     0
10     0     0     0     1     0     0
11     0     0     0     1     0     0
12     0     0     0     1     0     0
13     0     0     0     0     1     0
14     0     0     0     0     1     0
15     0     0     0     0     1     0
16     0     0     0     0     0     1
17     0     0     0     0     0     1
18     0     0     0     0     0     1
attr(,"assign")
[1] 1 1 1 1 1 1
attr(,"contrasts")
attr(,"contrasts")$TG
[1] "contr.treatment"
My contrast matrix:
> cont.matrix
       Contrasts
Levels  Helin_Acclimation Helin_Freezing Leitrim_Acclimation
Leitrim_Freezing
  H.N.N                -1              0                   0
0
  L.N.N                 0              0                  -1
0
  H.Y.N                 1             -1                   0
0
  L.Y.N                 0              0                   1
-1
  H.Y.Y                 0              1                   0
0
  L.Y.Y                 0              0                   0
1
       Contrasts
Levels  Acclimation Freezing Diff_Acclimation Diff_Freezing Population
  H.N.N          -1        0                1             0         -1
  L.N.N          -1        0               -1             0          1
  H.Y.N           1       -1               -1             1         -1
  L.Y.N           1       -1                1            -1          1
  H.Y.Y           0        1                0            -1         -1
  L.Y.Y           0        1                0             1          1
So I want to do this in a loop for all the contrasts I made:
for (mycoef in colnames(cont.matrix)) {
 pval.max <- 0.05
 maxheatplot.row <- 100
 # get stats for this coef
 TT <- topTable(fit2, adjust.method="BH", coef=mycoef, n=nrow(fit2))
 # Just use those with an adj.p-value of < pval.max
 TT <- TT[which(TT$adj.P.Val < pval.max),]
 # make a heatplot for for the selected genes and include only those
arrays
used in the contrast
 if (nrow(TT) > 1) {
  heatplot.rows <- if(nrow(TT) > maxheatplot.row) { maxheatplot.row }
else {
nrow(TT) }
  # index of those genes to include in the heatplot
  index <- as.numeric(row.names(TT[c(1:heatplot.rows),]))
  # Use the Contrast and design matrix to identify the arrays used in
the
contast
  arrays <- which(design[,labels(which(cont.matrix[,mycoef] != 0))]
!=0)
  png(file = paste("HP_", gsub(":", "_", mycoef), ".png", sep=""),
type =
"cairo1", width=10, height=10, units="in", res=300)
  heatplot(eSet[index,arrays], labCol=sampleNames(eSet)[arrays],
labRow=TT$Symbol, margins=c(10,10), dend="row")
  dev.off()
 }
}
In the section dealing with creating the heatplot, the following code
pulls
out a subset of the design matrix:
> design[,labels(which(cont.matrix[,mycoef] != 0))]
   H.N.N H.Y.N
1      1     0
2      1     0
3      1     0
4      0     0
5      0     0
6      0     0
7      0     1
8      0     1
9      0     1
10     0     0
11     0     0
12     0     0
13     0     0
14     0     0
15     0     0
16     0     0
17     0     0
18     0     0
I now want to pull out the row names which have a non-zero value in
any one
of the columns......can anyone help??
Cheers,
Nathan
--------------------------------------------------------
Dr. Nathan S. Watson-Haigh
OCE Post Doctoral Fellow
CSIRO Livestock Industries
Queensland Bioscience Precinct
St Lucia, QLD 4067
Australia
Tel: +61 (0)7 3214 2922
Fax: +61 (0)7 3214 2900
Web:  <http: www.csiro.au="" people="" nathan.watson-haigh.html="">
http://www.csiro.au/people/Nathan.Watson-Haigh.html
--------------------------------------------------------
        [[alternative HTML version deleted]]
                    
                
                