从学习用OncoPrint画基因组突变的“瀑布图”,发现顾博士创造的ComplexHeatmap是非常强大的一个包。
顾博士在他的GitHub上展示了这个强大的包在分析基因组数据时能够呈现的精美绝伦的图,我实在忍不住把它们截屏下来,放在这里欣赏。
这促使我想要好好的拜读一下ComplexHeatmap的full documentations。
在2.5章Seriation部分,作者非常快速的带过了一遍如何用Seriation包reorder heatmap,相比前后的章节篇幅非常短。随着修改参数,heatmap的格子图案不停的变化,似乎更顺眼了,但又说不出个所以然。
网上(baidu)去搜索这个关键词,得到的结果也不是很理想,而且大多都是相互复制粘贴的帖子,索引出来的句子是一模一样的。(也许优秀的人们都用的是Google吧,可惜我不够优秀,爬不上去)
总之,机缘巧合搜到了一篇非常好的文章(nicolas kruchten-Make Patterns Pop Out of Heatmaps with Seriation),介绍了Seriation这个包,也同时向读者展示了图像处理到底是在干嘛(妥妥是加密解密的过程呀!内心飘过一万部谍战剧)。
文章是英文的,简单描述一下就是:作者用一张原始图片,经过像素画,然后随机重排,输入到系统里。利用不同的方式进行聚类、重排。他详细地介绍了不同法则背后的原理,已经考量这些方法优劣的原则。最后用TSP的方法还原了原始图片,图片的内容非常惊喜,也是作者悬疑的噱头,我就不剧透了。
总结一下就是,针对无序变量的聚类,传统cluster的方法,对聚类到一起的两个对象之间的顺序欠缺考虑。Seriation包能更加好的呈现数据的整体结构(structure),减小大区间数据对小区间数据的影响。
写这篇笔记的另一个目的是希望增加百度上“Seriation”关键词下的搜索结果,让同为我这样不够优秀的人能更方便获取有用信息。