写了十几年的博客,虽然好早之前就发现一些博客文被《生信人》公众号抄了,但一直不愿意开公众号,去年年底尝试开个公众号,原创保护不给别人抄倒不是主要,而是我感觉到公众号已经绑架了中国人的阅读入口,可以尝试把博客文搬上来,这样大家可以在微信里搜到文章,有利于传播嘛。而我不是单纯为传播知识而来,而主要是推送我自己的东西,这在《为什么要开这个公众号》一文中已经讲了,维护我写的几个软件,花掉大量的时间,现在给我发邮件问问题,我基本都会让他们去biostars或bioconductor论坛上去问,公开交流有利于别的用户参与/学习,有助于减少重复解答,我也不断完善文档,很多问题其实在文档里都有答案,但人的天性就是懒、不愿学习(我在ggtree发布的第一篇文章里也提及了这点,说了%<+%操作符就是给懒人用的)。
Continue reading

在开源的macOS和linux版微信一文中,观众想知道怎么装windows,应你们的需求,来一发。 见过我2007年以前截屏的话,都会发现gnome和kde没出现过,我喜欢轻量的wm和软件,当年xfce出来的时候,号称轻量,其实也是中级以上,gnome2本身很轻量(gnome3我就不知道了),它给人重量都怪nautilus太慢。后来出现了lxde,才是符合我标准的集易用与轻量一身的桌面,lxde轻量到什么程度?能跑win98的电脑都可以流畅跑lxde! LXDE本身就像极了windows经典桌面,而windows界面,大家(起码我是)最爱的还是经典界面,windows 2000是最高水平!虽然土灰土灰的,谁用谁知道,如果长时间盯屏幕,这种土灰土灰的界面,眼睛最不容易累! LXDE因为本身菜单和自带的软件,都对windows用户极其友好,所以其实已经很像了。如果你想它再像一点,你可以把图标搞成windows的,比如archlinux的aur源里就有windows 95的图标,这逼就装得有点过了。 $ yaourt -Ss classic95 aur/classic95-icons 1-1 installed (0.09) Classic icon set from Windows 95 再者就是gtk主题,自带的Redmond,就是windows经典的土灰,最后就是开始菜单,你只要找一个windows开始菜单按纽的图片,大功告成。 就是这么简单! 要想装win7,win8这样比较现代化的界面,我推荐一个主题包: https://github.com/nhermosilla14/WinAte,自带win7、win8主题,桌面壁纸、鼠标主题、图标等。 而且这个主题包还附送了各大系统的logo,也就是开始菜单的图标,你可以装成别的系统,请随便装:
Continue reading

最近看一个画图的公众号,基本上通篇是代码,最后上个图,我觉得作者就只想表达「哇,我好牛逼」,读者看完可能也只是发出一句「好牛逼」,然后就没有然后了。且不说他读的数据是他电脑上的,你拿了代码也不好重复,最主要是代码死长,缺少解释!

我的写作风格则不一样,一篇文章我一般只会讲解一个点,力图讲清楚,让别人看明白。比如bootstrap分段标记这一篇,代码足够短且简单,但我还是分模块来讲,一行画树,一行做bootstrap分段标记,最后一行修图,虽然三行,但按功能分开,再加上文字解释,读懂是必须的。再比如纯代码生成banner​也是分成加载中文字体、读图、图上嵌图三块。即使简单的代码,也要分模块配以文字解析。

我每次只讲解一个点,但有些知识点是关联的,所以有可能会有断片的情况出现,比如之前写phylomoji,就有同学表示没看懂,这个用到了ggtree和emojifont,两个包我都写过很多文介绍,所以在写phylomoji时都没有介绍,如果没看过以前文章的人,可能就不清楚了。所以呢,适当的时候,汇总一下,是很有必要的。

emojifont包我基本上都介绍完了,如果你能通读这几篇文章,那么你必然能够用emoji来作图装逼,能够用emoji来娱乐自己,就像我用emoji给自己快乐一样!


Continue reading

viziometric

收到了Viziometric的邮件:

说要我给自己的一篇文章选一张图做为代表,我顺手点开,没想到这是一款神器啊!这是由University of Washington做Computer Vision的研究生做的一个学术图片搜索引擎,去年被Economist和MIT Technology报道过。


Continue reading

虽然我不喜欢DAVID,但很多用户喜欢,所以clusterProfiler也支持了,最近github上又有人要求支持自定义背景

Dear Guangchuang,

I am using clusterProfiler in Kegg pathway enrichment analysis, it is useful and nice. I am looking for a function which accept background and has ability to deal with Ensembl gene ID.

In a function enrichDAVID it can takes ensembl gene id as an input format, but not allows to enter background. enrichDAVID(gene = gene, idType="ENSEMBL_GENE_ID", annotation="KEGG_PATHWAY", species= "hsa")

Other command enrichKEGG has a background input but only takes entrez gene id, enrichKEGG(gene, organism = "hsa", keyType = "kegg", universe)

I have tried to convert my ensembl gene IDs to entrez gene id, but some ensembl gene IDs represent more than one entrez gene ID. I downloaded KEGG pathway dataset to apply fisher exact test. however, genes are in entrez ID and i am still dont know how to convert.


Continue reading

想要分段标记bootstrap,比如0-70, 70-90, 90-100之类的。这个对于ggtree来说,太简单。

首先我们要读树,用treeioread.newick,它和read.tree的不同之处是,加入了参数node.label,当node.label存的不是label,而是bootstrap等数字型的时候,你可以传入node.label='support',这样它会把node label解析为support value,另存为树注释数据,而不是和tip label混在一起。label变量只能存为字符型,因为和tip label混了,而字符型会让数字操作稍微复杂点。所以我们要用read.newick

tree <- read.newick("RMI.phy_phyml_tree_rooted_labeled.txt", node.label='support')
root <- getRoot(tree@phylo)

p <- ggtree(tree, color="black", size=1.5, linetype=1,  ladderize=TRUE) + 
     ggtitle(label="Figure A") + 
    geom_tiplab(size=4.5, hjust = -0.060, fontface="bold") +  xlim(0, 0.09)


Continue reading

最新的一个问题,大致讲他有两个trait, A和B,想拿A来给label上色,B来画热图。

加载用户数据我们有%<+%操作符,热图有gheatmap函数。

我给了他一个简单的例子:


Continue reading

Author's picture

Guangchuang Yu

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

Postdoc researcher

Hong Kong