R_bioinfomatics_heatmap



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");
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值