这是最近github上的问题,如何反转time scale,也就是把最近的时间设为0。而内部节点为距今多少年,这个很容易,把x轴的值变成x-max(x)就可以,感觉这个也只会在时间树上使用,所以取名revts(reverse time scale),revts之后,x轴最大值是0,其它为负数,可以使用scale_x_continuous改label为绝对值。


Continue reading

Update R packages

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

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

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


Continue reading

不记得是什么时候知道统计之都的,但我记得最早知道的是太云,因为我用了他写的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,我自己觉得还拿得出手🙈。


Continue reading

Google Drive @ HKU

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

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


Continue reading

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

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

层次聚类的侧重点在于分类,把距离近的聚在一起。而进化树的构建可以说也是一个聚类过程,但侧重点在于推测进化关系和进化距离(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)估计拓朴结构和分支长度,估计的结果具有最高的概率能够产生观测数据(多序列比对)。另外还有最大简约法和贝叶斯推断等方法用于构建进化树。
Continue reading

喜新厌旧之hello Hugo

最早在China Unix上写博客,后来转战新浪。在azelea的说服下,果断换成wordpress,写技术博客贴点代码什么的,新浪必须是太渣。azelea是我开始独立博客的领路人,为我提供了空间和域名。再后来自己买了空间和ygc.name的域名,用了好几年。本来一直有想法要换成github+jekll,恰巧Wei Shen强力推荐HUGO。于是再一次换博客。

首先面临着wordpress迁移的问题。

导入wordpress posts为markdown文件

试用了多个插件或脚本,都是各种出错。最后发现了神器potter-wordpress,通过npm安装:

npm install -g pottercms-wordpress

然后一个语句:

potter-wordpress -h WORDPRESS_SITE_URL -u USER_NAME -p PASSWORD --dir PATH_TO_STORE_MD_FILES

自动从线上把posts抓下来,并转化为markdown。在之前各种搞不定之后,看到下面的输出有种莫名的快感。

Fetching articles…

   Got : [Sun Nov 29 2015] R kernel in Jupyter notebook 3
   Got : [Mon Nov 09 2015] phylomoji with ggtree
   Got : [Tue Nov 17 2015] 合体中的操作系统
   Got : [Mon Nov 02 2015] Comparison of clusterProfiler and GSEA-P
   Got : [Thu Oct 01 2015] ChIPseq data mining with ChIPseeker
   Got : [Tue Oct 06 2015] TRIE
   Got : [Thu Oct 15 2015] [BioC 3.2] NEWS of my BioC packages
   Got : [Wed Oct 21 2015] use simplify to remove redundancy of enriched GO terms

   ...

   Got : [Mon May 14 2007] Edit partition table in NetBSD/macppc
   Got : [Mon May 14 2007] 我的emacs配置文件
   Got : [Mon May 14 2007] pkgsrc tips
   Got : [Thu May 03 2007] scilab三维平面绘图
   Got : [Sat Jun 24 2006] qvwm窗口管理器的windows2000主题
   Got : [Wed Jun 14 2006] 安装os9和netbsd双系统
   Got : [Sat May 28 2005] 在emacs里使用maxima
   Got : [Mon Mar 14 2005] scau校园网认证
   Got : [Fri Jan 14 2005] Powerbook G3上安装gentoo

Done.


Continue reading

Author's picture

Guangchuang Yu

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

Postdoc researcher

Hong Kong