最近看到 Nature 发了一篇文章 《Pokémon turns 30 — how the fictional pocket monsters shaped science》,才惊觉这个 IP 竟然已经 30 岁了。

更让我没想到的是,Nature 居然一本正经地探讨了这群“虚拟生物”是如何深刻影响了一代科学家的。

文章里提到,对于许多生态学家和分类学家来说,小时候抓宝可梦的经历,简直就是职业生涯的“学前班”。

科研原本就是一场“Gotta catch ’em all”

加拿大圭尔夫大学的昆虫学家 Spencer Monckton 说得特直白:昆虫学家在野外挥网捕虫,和在游戏里扔球抓宝可梦,本质上是一回事——都是为了集齐图鉴

不仅如此,玩家根据属性、特征给宝可梦分类,这不就是分类学(Taxonomy) 的启蒙吗?

甚至连命名都受了影响。Monckton 在智利发现了一种新蜜蜂,因为脸长得像龙,直接命名为 Chilicola charizard(喷火龙)。这就很灵性了。还有以化石翼龙(Aerodactyl)命名的翼龙 Aerodactylus,虚构与现实的界限在这里变得模糊又有趣。

生信人的致敬方式:把皮卡丘画进图里

既然生态学家能用宝可梦命名新物种,我们搞生物信息的,当然也要用自己的方式致敬——比如,用 R 语言画图

很多年前,我一时兴起写过一个图层 geom_pokemon,本来是随手写的,没想到大家热情高涨,甚至有人真想把它用在毕业论文里(这种勇士我是佩服的)。

👉 geom_pokemon: 使用pokemon画图

有了这个图层,你完全可以把枯燥的进化树变成“宝可梦进化树”。

比如,我们可以构建一个简单的系统发育树,然后把叶节点替换成对应的宝可梦形象:

library(ggtree)
library(ggimage)
 
# 定义一个简单的树结构
# 包含了超音蝠(zubat), 闪电鸟(zapdos), 猴怪(mankey), 皮卡丘(pikachu)
x <- read.tree(text="(((zubat, zapdos), mankey), pikachu);") 
 
# 画树,并加上宝可梦图层
ggtree(x) + 
  geom_pokemon(aes(image=label), size=.2)

这有何难呢? 只要你的 label 名字能对应上宝可梦的英文名,ggimage 包就会自动去抓取对应的图片并渲染上去。想象一下,你在组会上展示这样一张图,老板是会夸你“生动形象”,还是会问你“最近是不是太闲了”?

连字体也不能放过

除了画图,字体也是营造氛围的关键。

我在写 meme 包的时候,顺手打包了一套 Pokemon 字体。想给你的图表标题加点“中二”气息?so easy。

👉 使用外部字体画meme

在这个包里,我封装了 font_pokemon() 函数,加载字体也就是一行代码的事。不管是做表情包,还是给正经图表加点“私货”,都非常丝滑。

写在最后

Nature 这篇文章提到,有研究发现小朋友认识的宝可梦角色比认识的现实野生动物还多。这听起来有点悲哀,但换个角度想,Gamification(游戏化) 也许是最好的科普手段。

对于我们科研狗来说,日复一日的数据清洗和分析确实枯燥。但如果在画图时能偶尔皮一下,把枯燥的数据变成鲜活的“宝可梦”,人生苦短,何乐而不为呢?

建议大家下次做 presentation,试着藏一只皮卡丘在角落里,看看有没有人能发现这个彩蛋。