有一些软件做了检验之后,是不告诉你那些基因在某个富集的通路中,显然做为生物学家,是对此有兴趣的。clusterProfiler系列,全部函数都会输出,但看基因ID,比如ENTREZID或ENSEMBLE,这些都对人类不友好,看了你也不知道是什么,为了让大家看结果的时候,还能有点感觉,我们需要把基因翻译成symbol,有那么一批函数比如DO、GO、Reactome的分析都是有readable参数的,但有一些是没有这个参数的,我被问得最多的是KEGG的分析为什么没有!

首先GO为什么有?因为enrichGOgseGO都是使用OrgDb,而OrgDb本身带有ID转换的注释,而KEGG是在线去检索KEGG数据库的,KEGG并没有提供这些信息,当然对于少量大家比较熟悉的模式生物,要支持还是很容易的,然而有些物种支持,有些不支持,大家又会问了,凭什么我做的物种被BS了。所以啊,大家都不支持,挺公平。其实KEGG数据库里那么多的生物,很多物种是没有基因名的,有很多生物的注释还停留在基因座,你让我帮你转ID,臣妾做不到啊。

但起码对能支持的物种支持一下呗,以我一贯的作风,能帮小白解决的小问题,我都会去解决。于是我们有setReadable函数。但凡你能找到一个OrgDb,你就能用来转ID,就这样。

Continue reading

自定义注释分类

Hi Guangchuang,

Is there a way to control annotations in the the annotatePeak function? For instance I would like to ignore “downstream” and consider those peaks “intergenic”. Or for instance combine “1st exon” with “other exon” so there is one category of “exon”.

Any help would be great, thanks for doing this!

-Andrew

https://support.bioconductor.org/p/104676/

Continue reading

这个公众号开始于2016年11月,2016年基本上阅读量都在一两百之间而已,就直接无视了吧。2018年写了每月最高阅读量的文章,2017年顺道也总结一下吧。好文总是值得再次阅读。

1. 《Ask me anything about ggtree

1月份,得知ggtree的文章发表了,写了这篇,欢迎大家向我提问,我有问必答。

Continue reading

正如我在《我想学习》一文中对朋友圈和公众号的吐槽一样。我翻看了2018年一整年中每个月最高阅读量的文章,我发现八卦和追热点的文章,通常阅读量不会太差,反而是我用心去写的技术类文章,反倒是阅读量很惨,不管怎样,我还是会继续写技术类文章,特别是关于我的R包的文章,大家在学会的同时,也可以触类旁通学会R和其它的R包。写R包就是希望大家做分析更方便一点,而写文档就是希望可以减少大家使用R包的障碍,当然也希望大家可以多多分享这样的努力!

1. 《2018最新可用的sci-hub镜像+桌面版程序

sci-hub经常换域名,1月份的时候,收集了一些,同时为苹果系统打包了windows程序,可以一键下文献。当然现在我们不用发这样的文章了,因为域名随时可以查,《Sci-Hub可用域名实时追踪》,又因为比桌面版程序更好用的浏览器按钮,《关于scihub,一文就够了》。

Continue reading

R的交互与脚本模式

抛出一个话题,R是不是有个大坑,在自动化脚本中(或者在循环中),某些脚本执行会不出结果,特别是作图脚本。ps:分步执行可以出图

其实看我公众号的各位读者们,你们不应该有这个问题,如果有,那么证明我的文章没有好好看!

有两篇很重要的文章《扪心自问,meme几何?》和《树变图,图变树?》,特别是第二篇,和这个问题息息相关。

首先假设我们有一个图:

require(ggplot2)
p = qplot(1:10)

为什么在终端打p可以出图?

因为在R里,所有都是对象,而在终端里你输入一个对象回车,R会去找相应的方法去打印出来,如果是S3对象,会去寻找print方法,而如果是S4会去找show方法。

所以你在终端里打p,其实等同于你打print(p),它其实调用了ggplot2:::print.ggplot

你打plot(p)也可以,如果你看过代码的话,画图这个动作是定义在plot.ggplot方法里的,而print.ggplot <- plot.ggplot

Continue reading

看到一个帖子, https://www.maketecheasier.com/make-arch-linux-more-stable/, 说避免老升级内核,用lts版,装完可以把原先内核干掉:

>sudo pacman -S linux-lts
>```
>
>When you’ve installed the LTS kernel, it’s a good idea to remove the bleeding edge kernel from your system.
>
>```
>sudo pacman -R linux 
>```

我内心闪过一个想法,难道不用配置启动么?也没去确认,照做后重启,你妹啊,太坑了,直接就找不到内核死掉!



----

因为这个贴子太不负责,换了kernel之后,应该再run:

grub-mkconfig -o /boot/grub/grub.cfg ```

Continue reading

Author's picture

Guangchuang Yu

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

Postdoc researcher

Hong Kong