EvolView画进化树+热图:组合图的绘制

  • A+
所属分类:Evolution

上一篇《进化树+条形图:“组合图”的绘制》介绍了如何通过改变标尺来改变进化树分支长度和进化树的注释,相信大家对进化树与其他类型图表的组合有了一定的了解,局限于微信公众号的篇幅,其实还有好多东西没有讲到。这次以与热图的组合为例,在内容上做些补充。

如果没看过上一篇内容的小伙伴建议大家先看上一篇的内容。今天详细介绍数据的整理与如何利用自带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格式的矢量图,点链接下载图片。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: