今天,给大家详细地介绍一下PyComplexheatmap(https://github.com/DingWB/PyComplexHeatmap) 中annotation的使用方法,也就是如何用python在热图中添加【行】/【列】注释信息。比如样本的疾病状态(肿瘤或者正常样本、年龄、性别、分型等)。
如何用python画热图上, 下, 左、右不同方向的【行】/【列】注释信息
7 rows × 883 columns
883 rows × 11 columns
注释信息放在热图「上方」
如果有很多图例,PyComplexHeatmap会自动将所有的图例按顺序排列,如果一列放不下,就「自动增加一列」,用两列来画图例(figure legends)。如上图所示,就有2列图例。此外,在注释文字(比如Bovidae)与热图之间曲线的形状和颜色都会随着文字的旋转角度和颜色一起变化,会自动调整角度,使之与注释文字的角度相匹配。
注释信息放在热图「下方」
如果想要把列注释信息放在热图下方,那就需要「改变HeatmapAnnotation的顺序」, 应该放在「最后」: 应该是倒数第二个。中的参数应该从45度变为-45度,因为旋转方向发生了改变。
此外,可以通过设置来将【行】名字挪到热图右边。值得注意的是,「热图与图例之间的间隙是自动调节」的,比如,当时,热图右边有了文字,图例就自动往右边挪了,不用我们额外设置。
【行】注释(annotation bar)的高度,可以通过 (mm)参数来设置,比如,在上图的中,我们将Family这个bar图的高度设置成了5mm,而Tissue的高度仍然是默认(4mm)。
注释信息放在热图「左方」
我们首先把df进行转制(df.T),col_ha改成row_ha(现在变成了【行】注释)。我们可以通过改变参数来把【行】注释的标签(xlabel)放到热图上方(或者bottom,放到热图下方),另外,改变参数可以改变【行】注释标签的旋转角度和颜色(比如上图中的Tissue和Family,旋转45度,颜色为红色):。
注释信息放在热图「右方」
同理,【行】注释信息也可以放到右侧。根据上述方法,我们也可以同时添加【行】和【列】注释,并调整注释文字和标签的颜色、旋转角度等。
如果大家需要用python来画热图的话,请试用一下,然后在公众号后台给一些反馈,欢迎提出一些改进建议。