Guangchuang Yu

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

Update R packages

Oct 19, 2016 - 1 minute read - Comments R

更新R较为无痛的方法已经在hello yosemite一文中提及。今天Bioconductor发布3.4版本,又是更新R包的时候了。

之前为了吐槽很多人问问题都是在使用早已不维护的老版本,写了rvcheck来帮忙检查版本。既然能够帮我们检查版本,自然能够帮忙升级。

使用rvcheck::update_all()可以自动更新CRAN, Bioconductor和Github上的R包。其实可以放到系统任务里,每月自动更新一次,然后就可以完全不用管升级的事情。

第九届ChinaR会议生物信息学分会

May 31, 2016 - 1 minute read - Comments R

不记得是什么时候知道统计之都的,但我记得最早知道的是太云,因为我用了他写的corrplot包。后来统计之都最早接触的也是太云,他给我写邮件问我能不能帮忙校对《ggplot2:数据分析与图形艺术》,从此开始和太云变成了网友。

我在暨大的时候,太云曾经邀请我去China-R会议做报告,但我觉得自己没什么好分享的,GOSemSim这个包是硕士的时候做的,不好去讲之前做的东西。而当时我写的另一个包clusterProfiler,纯粹是因为大量做富集分析的工具都是针对模式生物,而我们实验室有做各种细菌;另外有一些工具,背景设置是有问题的。自己实现一个包,不受别人的限制。即便是这个包现在受到了一定的认可,比如BioC 3.3中有个debrowser的包使用了clusterProfiler,而在BioC 3.4中又有个新包bioCancer也使用了clusterProfiler;再比如这次在北京,有好几个参会的人员在茶歇时问了clusterProfiler的问题。但始终觉得这只是个实用性的包而已,算法是别人的,而且已经比较老了,类似的工具简直就是成百上千。所以也是不好意思拿出来讲的。所以我拒绝了太云的邀请,一直也没有参加China-R的会议。

今年是第九届China-R会议,这次会议规模很大,有22个分会场,超过100个演讲嘉宾,参会人数超过4000人。这一次刚好有个Bioconductor的分会场,Matt写信给我,说我写过几个Bioconductor包,他本人喜欢我的ChIPseeker包,问我能否在会上分享与Bioconductor包相关的经验。这是Bioconductor在中国的首秀,我欣然接受,当然也是因为这两年我写了ChIPseekerggtree,我自己觉得还拿得出手🙈。

Google Drive @ HKU

Mar 24, 2016 - 1 minute read - Comments Software

寻找一个好的网盘一直是个困扰我的问题,Dropbox非常好,但空间有限,大陆的各种网盘都是渣渣,本来试用了一下百度云,但度娘实在不争气,体验非常差。我后来找到了个比较好的方案,那就是gitlab,可以创建无限量的project,每个project有10G的空间,这比github出手大方多了。唯一不足是.git文件夹也是非常占空间的。

到HKU两年多,才发现HKU的邮箱自带无限量的google drive网盘。

使用ggtree实现进化树的可视化和注释

Mar 9, 2016 - 3 minute read - Comments VisualizationEvolution

本文受魏太云(@cloud_wei)的邀请,最初发表于统计之都

文章最后提到的可以在图上嵌入小图,比如饼图,柱状图等,已经实现, 也可以使用用户自己图片来嵌入注释。

进化树看起来和层次聚类很像。有必要解释一下两者的一些区别。

层次聚类的侧重点在于分类,把距离近的聚在一起。而进化树的构建可以说也是一个聚类过程,但侧重点在于推测进化关系和进化距离(evolutionary distance)。

层次聚类的输入是距离,比如euclidean或manhattan距离。把距离近的聚在一起。而进化树推断是从生物序列(DNA或氨基酸)的比对开始。最简单的方法是计算一下序列中不匹配的数目,称之为hamming distance(通常用序列长度做归一化),使用距离当然也可以应用层次聚类的方法。进化树的构建最简单的方法是非加权配对平均法(Unweighted Pair Group Method with Arithmetic Mean, UPGMA),这其实是使用average linkage的层次聚类。这种方法在进化树推断上现在基本没人用。更为常用的是邻接法(neighbor joining),两个节点距离其它节点都比较远,而这两个节点又比较近,它们就是neighbor,可以看出neighbor不一定是距离最近的两个节点。真正做进化的人,这个方法也基本不用。现在主流的方法是最大似然法(Maximum likelihood, ML),通过进化模型(evolutionary model)估计拓朴结构和分支长度,估计的结果具有最高的概率能够产生观测数据(多序列比对)。另外还有最大简约法和贝叶斯推断等方法用于构建进化树。