本文共 1572 字,大约阅读时间需要 5 分钟。
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"); }}
转载地址:http://ljgpb.baihongyu.com/