这个问题是以弗拉维奥·约瑟夫斯命名的,它是1世纪的一名犹太历史学家。他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另外一个人是最后两个留下的人。约瑟夫斯说服了那个人,他们将向罗马军队投降,不再自杀。约瑟夫斯把他的存活归因于运气或天意,他不知道是哪一个。 – https://zh.wikipedia.org/wiki/约瑟夫斯问题

这是一个比较简单的问题,n个人围成圆圈,越过k-1个人,杀掉第k个人,如此反复直到只剩下最后一个人。可以用数学推导给出答案,问题本身已经足够简单,用链表可以模拟整个过程。实现起来比较直观。这里在初始化这个链表的时候,需要注意,到了最后一人的时候,他应该指向第一个人,这样才能形成一个环状的链表,然后问题就非常简单了,从第一人开始,后面就无所谓头和尾了,按照规则来,每次杀掉一个人,直到只剩下最后一人,就是结果。从维基的解释可以看出,最后两个人没死,这没节操的事情被拿来说,如果你数学好,你就可以救自己一命(站在合适的位置,让自己是最后一个)。

Continue reading

无中生有windows版R包

之前帮助高老师实现比对序列的做图,把代码打包为R包seqcombo,方便安装使用。花两小时的作品,发现还有些用户在使用 -,-

之前有人联系我说安装不上,我觉得不应该有这个问题,因为是纯R代码代码,不涉及到编译,源码包安装不应该有问题。但既然有人问,又都是windows用户,我想可以给他们提供编译好的windows包,简化安装过程(这么体贴用户,我都要被自己感动了)。

放在CRAN或Bioconductor上的R包,CRAN和Bioconductor会编译出不同平台的二进制包,但seqcobo放在github上,只有源代码,没有预编译好的包,但没有不是问题,我编译好放上去就行了。

但问题是我没有windows!多年来一直是OSX和linux,MacBook Pro跑Arch Linux,一台iMac跑OSX,我自己根本没有跑windows的机器,所以难为无米之炊,借台机器总是有的,但总不能每次一更新,就拷个代码去别人的机器上打包,再拷回来上传到网上,想想也是蛋疼。

所以没有windows,这事干起来还不太容易,!在想怎么来无中生有生出个windows包出来的时候,我想起了rhub,也是因为没有windows,之前就用rhub来进行windows平台的R check,在把代码push到CRAN或Bioconductor之前,我总会测试没问题了,再提交代码过去,而rhub正好可以给我提供windows平台的检测。

Continue reading

https://twitter.com/kurai_yousei/status/799532564633518080

这个Diego在推特上问的问题,他最近在写一个motiftools的R包,里面用了ggtree来画图,我想他应该是要解决他在包里的画树/聚类功能吧。

他问题写的horizontal,但其实plot.hclust默认是vertical,ggtree默认也是horizontal,所以我认为他问的是vertical layout,这个在我的回答中也得到了他的确认。

Continue reading

buildGOmap

周末Bioconductor上的问题,说的是他用了buildGOmap之后,在终端上输出了一长串,但没有文件产生,今天就来讲讲这个buildGOmap的前世今生。

当年写clusterProfiler的时候在暨大工作,主要也是自己的需求驱动,因为实验室里有做细菌,比如肺炎链球菌D39,在细菌界基本上所谓的GO分析,就是跑个电子注释,然后数一下数目,列个表格画个饼图。很难看到有富集性分析的身影,因为绝大多数的工具是只支持少量模式生物的,还有部分工具比如支持某些细菌,支持某些植物或者某些真菌,比如支持植物的,也只是支持少量的植物物种而已,都是些自己定制给自己用的玩意,放出来只是为了顺道灌水而已。

Continue reading

食色性也

画图配色并不是一件简单的事情,好的配色让人眼前一亮,虽然R有很多配色方案,做为ggplot2的爱好者,ggthemes也提供了很多主题,内置了很多配色方案,还有一些其它的包,比如ggtech,包含了一些科技公司比如facebook, twitter, google的典型配色方案,甚至于ggsci,提供了nature, lancet的配色方案。

但这些远远不够! 但这些远远不够! 但这些远远不够!

看到一张图片让我眼前一亮,我想用它的配色方案呢!我想拿最新电影的海报的配色来装个逼呢!画图时不想用现成的配色,想要另类一些,我想用一些大自然的风格,比如求偶期间各种鸟类的羽毛颜色来画!

这些在R里面,都是可以的,可以的,可以的…

Continue reading

Author's picture

Guangchuang Yu

Bioinformatics Professor @ SMU

Bioinformatics Professor

Guangzhou