作者:解螺旋·冬至
如需转载请注明来源:解螺旋·医生科研助手 我们把筛出来的差异表用一种直观的图表示出来,一般使用热图(heatmap)将差异表达基因进行数据可视化处理,传统的方法采用R语言包里面的(heatmap)函数对其进行绘制,这里重点讲解一下heatmap包各个常用参数的使用,如果要求较高可以采用这种方法来画图。另外,如果要求不高,也可以使用Heatmap builder这个软件做图,窗口化操作,方法简单。
如果大家掌握了左边的heatmap图的做法,那么今天介绍一下右边这个更高级一点的heapmap图的做法,并对详细的代码做一下介绍。 首先我们还是导入数据,转换为矩阵,用到下面这几行代码。值得注意的是,导入代码的时候,需要先设置工作目录(working directory),菜单Misc里面的Change Working Directory,把工作目录改为数据存在所在的文件夹。注意:文件夹仅支持英文命名。data<-read.table("heatmap.txt", head=T) #读取数据文件row.names(data)<-data$index #提取行名data<-data[,-1] #去除数据中的行名data<-data.matrix(data) #转换为矩阵index以Excel表中的第一列表头标题相对应。Excel里的数据格式按以下编排,第一行从左到右分别为基因名,后面的数据可以是不同实验组间的比较,基因芯片的表达数据等等。但是这里的数据必须经过均一化,否则heatmap图没有意义。Excel文件可以导出为.txt格式或者.csv格式两种,但是txt格式必须为“制表符分隔的文本.txt”如果是.csv格式,第一行代码read.table改为read.csvlibrary(pheatmap) #加载pheatmap函数library("RColorBrewer")library()表示加载相应的函数,如果没有安装,要提前安装。这里我们加载了两个函数,一个是做heatmap图的函数pheatmap,另一个是颜色函数RColorBrewer。col.pal <- brewer.pal(9,"YlOrBr")这里我们选择的是“YlOrBr”颜色,也就是Yl黄色,Or橙色,Br蓝色的过度,数字9代表从黄色过度到蓝色分为9个等级。如果不满意颜色,也可以替换。输入brewer.pal显示出多种颜色替换方案,如Greens,Greys,Oranges等单一颜色,也可以是多色渐变,如PuBuGn,RdYlBu,YlGnBu,YlOrRd等。距离度量的方法分别赋值给聚类的行和列,符合Pearson相关分析的"correlation",dist函数支持的所有距离度量包括"euclidean", "maximum", "manhattan", "canberra","binary", "minkowski"。如果该值是上述值,则假定为距离矩阵。生成heatmap图有以下两个方案,首先利用pheatmap函数看一下大概的效果,pheatmap(data,cluster_cols=FALSE,clustering_distance_row="correlation",clustering_method="complete",color=colorRampPalette(c("green","black","red"))(100),scale="row", margins=c(5,10),fontsize_row=8,cellheight=10, cellwidth=30)cluster_cols表示是否双向聚类,值可以是FALSE或TRUEclustering_distance_row表示行距离度量的方法clustering_method 表示聚类方法,值可以是hclust的任何一种,如"ward.D","single", "complete", "average", "mcquitty", "median", "centroid", "ward.D2"。color 表示颜色,赋值渐变颜色调色板colorRampPalette属性,选择“绿,黑,红”渐变,分为100个等级sclae表示值集中的方向按照行或列,或者没有,值可以是"row", "column" 或者"none"hm.parameters <- list(data, color = col.pal,cellwidth = 15, cellheight = 12, scale = "none",treeheight_row = 200,kmeans_k = NA,show_rownames = T, show_colnames = T,main = "Full heatmap (avg, eucl, unsc)",clustering_method = "average",cluster_rows = TRUE, cluster_cols = TRUE,clustering_distance_rows = drows1, clustering_distance_cols = dcols1)color 表示颜色,赋值之前定义的col.pal属性,“YlOrBr”颜色,也就是Yl黄色,Or橙色,Br蓝色的过度。sclae表示值集中的方向按照行或列,或者没有,值可以是"row", "column" 或者"none"treeheight_row 表示200行的数值用于聚类构建heatmap图,默认为50,类似的参数还有treeheight_col表示列kmeans_k表示kmeans聚类的个数,如果要用全部数据绘制heatmap图,那么输入NAclustering_method 表示聚类方法,值可以是hclust的任何一种,如"ward.D","single", "complete", "average", "mcquitty", "median", "centroid", "ward.D2"。cluster_rows表示以行聚类,值可以是FALSE或TRUEcluster_cols表示以列聚类,值可以是FALSE或TRUEclustering_distance_rows表示行距离度量的方法,赋值为之前定义的drows1clustering_distance_cols表示列距离度量的方法,赋值为之前定义的dcols1do.call("pheatmap", hm.parameters)这里用到的是参数模式hm.parameters,最后do.call参数运行pheatmap函数filename <- "my.pheatmap.pdf" #导出文件名outfile <- paste(basedir, filename, sep="/") #导出文件的路径do.call("pheatmap", c(hm.parameters, filename=outfile)) #做图并按路径导出文件
|