大量的生信公众号在各种linux入门、perl入门、python入门、R入门、软件安装、跑跑示例代码、流程。我自己平时根本不会去看这些生信号,在《s01 - Counting DNA Nucleotides》一文发出去后,就被爪哥说不能跟着走低端路线,囧rz…

还好我多半写的是自己的东西,目前还没有掉进「低端」的坑里,今天继续画图,唯有赏心悦目的图能抚慰人心。

我写了一个包叫《ggimage:ggplot2中愉快地使用图片》,从此图上嵌图(ggplot对象)或图片变得轻而易举。某一天写着玩,写了个《geom_pokemon: 使用pokemon画图》的图层,引起了人民群众的尖叫,国外有妹纸用来可视化NBA数据《大开眼界+多图慎点:Pokémon x NBA and other fun with ggimage》,国内有汉子用来可视化复旦大学考研的报考专业《你的专业是那一只Pokémon神兽?》。

Continue reading

小伙伴发来这个文章中的图,想要实现类似的图,用变量给axis text上色,并生成legend:

这个可以说ggplot2是不支持的,aes映射不会被应用于axis上,而theme也不支持aes映射,你只能自己手动搞个color vector传给theme来上色,但这无法生成legend。

我只能打开脑洞,legend借助于额外的图层来生成,但这个额外的图层又不是我们想要在图形上展示的,这又是个无米之炊,我能想到的就是让图层透明,实际有,但你看不到,当然这样自动生成的legend也会看不到,但legend可以后面再修改,于是这不支持的事情,就通过变通变得可能:

require(ggplot2)

set.seed(2017-07-04)
d <- data.frame(x = letters[1:5], y = rnorm(5), 
		group = sample(c("Control", "Treatment"), 5, replace=TRUE),
		type = sample(LETTERS[1:2], 5, replace=TRUE)
)

p <- ggplot(d, aes(x,y)) + 
	geom_col(aes(fill=group))

这个代码很好懂,画一个柱状图,按group上色。

Continue reading

群众纷纷表示图二是Excel画的,我觉得也是!Excel是生物学家的最爱啊。虽然做生信的人都看不上,最主要是没有记录,不具备可重复性。但现实就是大家都爱Excel。

Continue reading

在《你所不知道的,R的N种打开方式》一文中,我介绍了R的N种界面,这里将介绍一个用python写的极其现代化的R命令行界面,rtichoke(之前叫rice)之于R,就像ipython之于python一样。

特性

  • 轻量,不需要编译
  • 多行编辑,这点很重要啊,长长的命令可以换行后,随便回去编辑前面的指令
  • 语法高亮,这可是R命令行所没有的,看起来舒服多了
  • 自动补齐,减少输入
  • 支持bracketed paste mode,也就是说你copy-paste了有换行符的字符串,不会拷进去就自动执行了
  • 支持Windows, macOS 和 Linux
  • 支持vi, emacs等编辑模式
  • 可以多种高亮模式

Continue reading

最初github上用户(@JustGitting)报告说geom_hilightgeom_cladelabel不能用于unrooted树。详见:https://github.com/GuangchuangYu/ggtree/issues/118

我表示这确实是不行的,然后这就变成了feature request。我继续表示unrooted tree在ggtree中的实现并不好,我只实现了equal angle algorithm,在写注释图层之前,如果我有时间的话,我希望可以先实现更好的layout algorithm。

然后JustGitting表示,他发现python的ETE和R的ape,在无根树的可视化上好像都不太行。问我有什么unrooted的layout algorithm,有没有什么参考文献,或许他可以帮忙实现,因为他觉得ggtree是最成熟的软件。

Continue reading

Author's picture

Guangchuang Yu

a senior-in-age-but-not-senior-in-knowledge bioinformatician

Postdoc researcher

Hong Kong