上一篇《进化树+条形图:“组合图”的绘制》介绍了如何通过改变标尺来改变进化树分支长度和进化树的注释,相信大家对进化树与其他类型图表的组合有了一定的了解,局限于微信公众号的篇幅,其实还有好多东西没有讲到。这次以与热图的组合为例,在内容上做些补充。
如果没看过上一篇内容的小伙伴建议大家先看上一篇的内容。今天详细介绍数据的整理与如何利用自带demo快速获取“注释文件”。
数据准备
进化树的准备见《进化树+条形图:“组合图”的绘制》,这次用同样的数据,关键需要准备热图的数据矩阵。
数据准备难度其实也不大,你可以直接那上次的数据作图,只不过为了热图颜色过度比较平滑,需缩小数据间的差异,这里就需要标准化。
这里使用Log2和Z-score两种方法分别对数据进行标准化,用Excel进行计算,计算公式(以A1单元格的数据为例)分别为=ROUND(LOG(A1,2),0) 和 =ROUND((A1-AVERAGE($A1:$D1))/STDEV.P($A1:$D1),2),如下图。
之后使用 & 符号将数据和逗号“粘连“在一起,生成以逗号分隔的数据,例如A1~D1的”粘连“公式为=A1&","&B1&","&C1&","&D1,如下图。
数据只需要行名和以逗号分隔的数据就可以了,列数较少的话可在“注释文件“中手动添加。
进化树的注释
首先,在Basic选项下,载入从MEGA中导出的Newick树,方法参见《进化树+条形图:“组合图”的绘制》,这里仍以上次的lianxi2工程文件为例(注册账号后工程文件可反复使用)。
然后点DEMOS,查看EvolView自带的添加热图的示例文件,我们然后将“注释代码“复制到剪贴板,如下图,你也可以复制到记事本、Notepad++等文本编辑器中进行编辑,保存。
然后,新建一个热图注释文件,将刚才复制的“代码”粘贴到data区,如下图。
接下来需要对这些“代码 “做些修改,如下图。
具体要修改的部分如下,这里用绿色标记,紫色为注释说明。
#heatmap #图例标题 !titlelog2RPKM !showLegends 1 #设置热图每个格子的边框,可以不用管 #!defaultStrokeColor gold #!defaultStrokeWidth 2 #设置渐变颜色和“刻度”数值 !colorgradient blue,white,yellow !colorgradientMarkLabel 0,3,6,9,12 #设置列标签的字体大小、颜色、角度等,这里不执行 # -- heatmap columnlabels -- !showHeatMapColumnLabel 1 !heatmapColumnLabels N-GD1,N-GD2,N-GD3,N-GD4 #!columLabelStyleshow=1,fontsize=20,fontitalic=0,fontbold=1,textangle=60,fontcolor=red #设置格子的空隙、宽度,圆角半径 # -- heatmap -- !heatmap margin=2,colwidth=30,roundedcorner=2 #热图是否显示数据数值,show=0隐藏; # -- show data value !showdataValue show=1,fontsize=12,fontitalic=0,textalign=start AKI70249.1 9,10,9,9 ARH02602.1 7,7,7,7 OWK14909.1 6,6,6,5 ASU47379.1 3,3,3,3 AEX20383.1 6,6,5,5 AAH84064.1 3,3,3,3 ……
绘制的效果如下:
接下来把下面的数据替换为Z-score标准化后的数据,更改渐变条的刻度,隐藏数据,即可得到下图的样式,可见两种标准化的方法显示效果的差异还是很大的。
细节调整与导出
点“铅笔“图标,可对热图的注释文件进行反复编辑,进而达到精细调整。
比如改变一下热图的渐变颜色,如这里把yellow 改为red,效果如下。
最后通过Export菜单(如下图)导出所需格式的图片,这里导出PDF格式的矢量图,点链接下载图片。