setwd("f:/ATH1Data/")
library(affy)
library(affycoretools)
mydata<-ReadAffy()
#pData(mydata)<-read.table("phenod.txt", header=T, row.names=1, sep="\t")
eset<-rma(mydata)
hd=exprs(eset)
keys=rownames(hd)
library(ath1121501.db)
symbol=select(ath1121501.db, keys=keys, columns="SYMBOL", keytype="PROBEID")
reduceSymbol <- function(symbol) {
ll = list()
lid = 0;
for(id in 1:dim(symbol)[1]){
if(id != 1 && (symbol[id, 1] == symbol[id-1, 1])) {
# print(symbol[id, 1]);
symbol[lid, 2] <- paste(symbol[lid, 2], "/", symbol[id, 2], sep=" ")
} else {
lid = id;
ll[length(ll) + 1] <- lid
}
}
return(symbol[do.call(c, ll), ])
}
intrest<-function(sym){
if(is.na(sym)) return(FALSE);
tryCatch({
return(length(grep("BZ", sym)!=0)>0);
#return(length(grep(sym,c("BZR", "COX2", "TF1", "BES", "FC1"))!=0)>0);
}, error=function(e){
return(FALSE);
})
}
symbol=reduceSymbol(symbol)
filterInterest<-function(hd, interest) {
rn = rownames(hd)
retb = c()
for (reg in interest){
retb = c(retb, grep(reg, rn))
}
retb = sort(retb[!duplicated(retb)])
return(hd[retb, ])
}
# drawInterestData(c("BZR", "TB", "FC", "ES"))
drawInterestData<-function(interest){
if(dim(symbol)[1] == dim(hd)[1]){
rownames(hd)<-symbol[ ,2]
hdreduce=filterInterest(hd, interest);
print(paste("Result count: ", dim(hdreduce)[1]))
library("gplots")
max = 50;
if (dim(hdreduce)[1] < max) max = dim(hdreduce)[1];
heatmap.2(hdreduce[0:max, ], col=redgreen(75), scale="row", NULL,key=TRUE, symkey=FALSE, density.info="none", trace="none", cexRow=0.5, margins=c(12, 10))
} else {
print("Symbol size dismatch with heat data");
}
}