有魔性的图来一发

不知不觉中我已经介绍了很多R包,有学术上的ChIPseekertreeioggtreeclusterProfilerGOSemSimseqcomboMSnbase等,当然免不了有吐槽还有抄袭有学R的更新R包,也有桌面小工具,还有画图的ggplot2怎么配色嵌入图片(比如pokemon), 以及emoji作图,也有好玩的贴纸装逼利器


今天要介绍另外一个R包,magick,是R里面玩图片的利器,今天要讲的是在静态图片上加动态图片,这样我们平时画一些学术的图,就可以加点搞笑的动态元素上去,有利于在博客和公众号上装逼。

无非是给我一张静态图当背景,再来一张动态图加在上面,为了让代码可以重用,首先打包个小函数:

add_gif <- function(bg_file, gif_file, out_file, offset, bg_size="500", gif_size="150") {
	library(magick)
	p <- image_read(bg_file)
	g <- image_read(gif_file)
	g <- image_scale(g, gif_size)

	background <- image_background(image_scale(p, bg_size), "white", flatten = TRUE)

	frames <- lapply(g, function(frame) {
  		image_composite(background, frame, offset = offset)
	})

	animation <- image_animate(image_join(frames))
	image_write(animation, out_file)
}

然后就可以来玩了,首先用上次讲到的dotplot做为底图,再从网上找一个动图,调用函数,bingo:

Continue reading

陈同的‘生信宝典’公众号出了篇《R语言学习 - 富集分析泡泡图》,搞个shell脚本,一步绘图。讲了这个脚本可以适用于clusterProfiler和其它软件的富集结果。

浑身都是硬伤,我都不想吐槽,但由于作者邀请我提点,那就吐槽模式全开。

一个command出图,小白已经哭晕

从出的图看,应该是ggplot2画的(就算猜错,要吐槽的依然正确),小白在web-server上做了分析,存结果为xls文件,拿你这脚本,一跑报错。读xls文件(别告诉我你跟用户说读xls但其实是个tsv)和画图的依赖关系没解决!用户友好在那里?不要告诉我你的脚本0依赖,有个shell就能跑,即使我们熟悉的各种命令,很多都是独立程序,不关shell什么事。

所谓的一步出图

既然讲了clusterProfiler,那么clusterProfiler用户笑而不语了。我们用dotplot不也是一条命令出图,为什么要退出R,去跑你的shell脚本,这过程还得转换数据,存储数据。最后的这一步,是前面+N步为代价的。

Continue reading

做为生物狗,我时常不知道自己在干什么,包括读文献,费了老大劲读一篇文献,然后经常也不明白人家在说什么。懒人需要借助神器,本公众号已经介绍了好几个神器,江湖传说收集7大神器,可以召唤出paper,渡自己毕业。

拿到一篇文献,先问一句,牛逼吗?靠谱吗?

我拿ARID1A去pubmed搜,第一篇文章《ARID1A-mutated ovarian cancers depend on HDAC6 activity》为例,2017年7月24号才上线的文章,请看下图:

![](https://guangchuangyu.github.io/blog_images/2017/ferret/Screenshot 2017-07-26 19.31.32.png)

IMPACT这里有期刊的影响因子20分,文章在社交网站上传播指数Altmetric 54分,文章在文献管理Mendeley中被收藏2次。这是3天前的文章,所以指数还不高,试想一下,文章传播越广,收藏人数越多,必定也就越重要,这给了我们评估文章的第一印象。这是3天前的文章,所以没有引用,如果有文章引用,这个神器还会列出来呢。

注意到AUTHORS没有?如果作者有ORCID主页的话,直接链接过去,我们可以去看作者们的publication列表、教育背景、工作经历等信息,牛人为自己带盐,牛人的文章我们更愿意相信。

Continue reading

模式生物做什么都简单,非模式生物则很多缺少注释,没有注释你就没法做,只能是借助于各种软件比如blastgo,自己跑电子注释。但今天要讲的不是这种情况,很多物种还是有注释的,只是你有时候不知道该去那里下载,或者你有数据,却不知道该怎么用!很多的软件都是针对模式生物的,或者针对某一些类型的非模式生物,能够支持多种非模式生物,能够支持用户自己的注释文件的软件相对来讲,就非常少有了,然而clusterProfiler就是这类少有的软件之一。

获得OrgDb

今天要讲的是通过OrgDb来做GO分析,这是clusterProfiler的enrichGO函数所支持的背景注释,Bioconductor自带20个OrgDb可供使用,多半是模式生物,难道我们要做的物种不在这20个里面就不行了吗?显然不是的,clusterProfiler能支持的物种我自己都数不过来。

我们可以通过AnnotationHub在线检索并抓取OrgDb,比如这里以玉米为例:

Continue reading

听说你想学R

先来点八卦

当年学R的时候,并没有现在这么多的书籍,老用户一般都知道丁国徽,因为他翻译了诸如《R导论》之类的文档,属于最早的中文材料了。跟生物狗有关的中文书有两本,一本是《R语言及Bioconductor在基因组分析中的应用》,这本我在2006年的时候看过,被坑大发了,里面逻辑混乱、错误满篇。

以下这段豆瓣书评可以说很好的总结了这本书 https://book.douban.com/review/3017404/#comments:

首先,打开前言,读者们会发现“编写本书,参加这些工作的教师和研究生有15人之多”。当然,名字后面带头衔的最后都在出现在封面了。也就是说由12位"无名的岳武穆“研究生同学造就了3名”有名的岳武穆“之砖家叫兽。

然后,本书共24章,模12为零,当然,这只是一个巧合,只是暗合天命罢了。

最搞笑的就是这本书的编排和审校,十分差,许多小错误,就好像从没有审过一样。

譬如第13页上,对order()函数的介绍,居然有这么句绕口令“x[order(x)]等效于order(x)",当然其实等效的是 sort(x).

其他的诸如第17页上>=的打印错误,就不一一细表了。

最搞笑的就是只有三页的第4章,在数组、函数的介绍之前,就开始讲“聚集计算”!!!然后再来讲解语言基本的语法。。。。 这种“由深入浅,化简单为复杂,化复杂为天书”之功力,更让吾辈叹服砖家叫兽吞云吐雾之神功。

作为一本实例讲解的书,根本就没有提供源码和实例样本,也就说,根本就是没头没脑的演示。有点专业精神好么,好歹也是本标价68的书,当然只有400页草纸, 本科生水平的语言文档翻译。

Continue reading

we’re talking about people who already are skating on the ethical edge (as scientists, we should always respond to serious criticism; if we don’t, that’s bordering on ethical violation already) – Andrew Gelman对此事的评论

我原以为邓岳是个学生,我的本意是要给他一个教训,制止这种行为,我不出来给他这个教训,早晚他也会为自己的投机付出代价,而且如果以后出现多次抄袭,直接会导致无法继续在学术界生存。后来我发现他还是个讲师,我觉得更不应该了,编辑部必须要对这件事做出处罚。这就是我的本意,让邓岳认识到错误,并为此付出应有的代价。

搞得我像祥林嫂一样到处找人说

然而编辑一直不做为,就逼得我只能借助于舆论,我本无意于去网上传播这件事,我写的博客,都是针对编辑部,最后我对编辑提议的处理方式表达不满之后,编辑就消失了,再也不回应邮件。我只能再写博客,再发动舆论,联系之前高调出来说撤稿了43篇文章的那些编辑,推特上也骚扰他们。微博上也AT西电官方微博,求转发之类的。虽然我没有想去闹大事情(尼马我也不想花时间扯这些蛋啊),但BMC就是逼着我跟他斗,而事情闹越大,对抄袭的人来说,越是不利,搞不好学术界就不用混了。谁都不傻,所以终于坐不住给我写信。

其中说到“1、2月份和您邮件沟通”,只是说了按照CRAN policy改了代码,并把我列为作者,而后面我回应把我名字从软件包作者中去掉而已。

他的邮件大概讲了和编辑并无操作,软件包已经按要求更新,犯错是源自于无知。

这事最后怎么处理?

Continue reading

Author's picture

Guangchuang Yu

Bioinformatics Professor @ SMU

Bioinformatics Professor

Guangzhou