让数据自己动起来

数据的动态可视化

        当前生物科学领域已经产生了相当量的大数据。合理利用数据、完美可视化自己分析的数据已成为帮助进行高质量科研汇报、高质量论文发表的强大利器。但是对于生物学出生的学生来说,可视化大数据又成为了一个头疼的问题,因为每天接触的都是实验相关的内容,对于数形美感已经不如数学、物理学、计算机科学出生的学生了。换句话说,其实学生物的能力很强,只是由于不经常做数据处理,缺乏相关数据可视化的经验而已,如果经常做我相信生物学出生的人做的数据可视化不比计算机专业的差。
        当前相当一部分生物学公众号都在推广一个叫做GraphPrism的统计作图神器。我承认,这的确是一个神器,毕竟它在它能处理的数据结构上做到了尽可能好的可视化。但是这个作图神器缺点在于,它功能有限。如果要做Circos图、曼哈顿图、旭日图,GraphPrism已经无能为力了,同样AI、PS也爱莫能助。
        R语言或者Python在数据可视化方面做得非常好,相当一部分人用R或者Python做出了很多高大上的分析,输出了很多精美的图。随便找一篇基因组、生物信息学相关的文章,都能看见十分漂亮的图。对于研究生来说,仅仅会做一个热图已经是非常非常普通的事情了。高大上的图能让人产生视觉疲劳,现在发文章也要做出更好的图来吸引编辑的眼光。(其实这是一个不太好的现象,我个人还是觉得一个好的高质量数据和实验结果才是王道,图做的再好,数据不好也是绣花枕头一包草)。但是,对于大量的数据,如何可视化是一个技术活。比如在病毒学方面,病毒沿着时间线在世界范围内如何传播、人体感染病毒后免疫系统在一段时间内发生的动态改变。我们如何可视化这些动态的情况?R语言中有一个非常好的程序包gganimate能巧妙地可视化动态数据。

可视化方法

        可视化动态数据,最好的方法就是用动图可视化。说到动图,是不是很容易想到gif图片?其实gganimate就是通过将数据随着时间的变化过程一帧一帧地存入gif图中,最后做到可视化。
安装gganimate

library(devtools)
devtools::install_github("dgrtwo/gganimate")

安装好后我们使用一组测试数据来测试该程序包如何画动图(测试数据需要加载gapminder程序包)

library(gapminder)
library(gganimate)
library(ggplot2)
start_pause<-min(gapminder$year)

输出动图后在RStudio右边的Viewer窗口单独用新窗口打开动图,随后会在浏览器中打开动图,用迅雷下载即可。

让数据自己动起来

探究原理

        在R中查看gapminder

让数据自己动起来

        我们发现其实这组数据是将每一年每个洲的GDP、人口和人口的满意程度单独记录,通过阅读源码可知gganimate实际上就是分别以时间为单位,对每个单位时间的数据进行作图,每个时间一个图,最后将所有图一帧一帧串联得到gif图。

用自己的数据实际操作

        对于培养良好的编程能力,不仅仅要会跑测试数据,更重要的是独立操作自己的数据。我们可以假设,存在某个病毒在某一天感染后人,实时测序了被感染者不同时间段的三个免疫相关基因A、B、C的表达变化情况。我们能够通过免疫相关基因的时序表达差异情况挖掘这些基因在免疫时期的具体功能。以下是我们假设的数据

可视化代码

        同样下载输出的动图,我们可以直观的发现A基因在病毒感染后逐渐表达量上升,B基因在病毒感染后逐渐表达量下降,C基因在病毒感染后表达量没有显著变化。这样通过一张图就完美地可视化了病毒侵入人体后三个免疫相关基因的动态实时变化情况。

高级动态可视化

        有了动态可视化方法,我们可以做出更高级的可视化。回到上一篇推文,我们要可视化病毒在世界范围内的传播情况。(点击阅读原文可看上一篇推文内容)我们继续假设,那个未知病毒就是在2019年1月22日爆发的,之后世界各国分别报到了病毒传播到他们国家或者城市的时间,我们搜集整理好数据。这里我们要使用maps函数包,记录每个城市的经纬度。最后将城市以经纬度的坐标按照时间序列映射到地图上。

可视化代码

同样下载可视化结果
从图中可以清晰反应出病毒传播的路线及时间

总结

        当于时间序列有关的数据量越大时越适合使用动图可视化,这样能用一张图描述更大量的信息。

注意事项

        尽管可以做动图,但是好像发表论文的时候动图有点尴尬吧,毕竟PDF能不能显示gif是个问题。希望以后能有这个技术让论文里的图也能动起来吧!至少做科研汇报,一个动图能描述清晰很多问题。

阅读原文

让数据自己动起来》来自互联网公开内容,收录仅供学习使用,如侵权请联系删除。本文URL:https://www.ezixuan.com/1021362.html

(0)
上一篇 2023年 2月 3日 上午9:16
下一篇 2023年 2月 3日 上午9:16