在《R-3.6 – set.seed》和《欧式距离如何应对缺失值?》中暴露了biobabble作者群,今天就来揭秘一下。

凡是给本公众号投过稿,或者是被我约过稿的,都会被我拉入群,目前在群里有8个小伙伴,分别是有原创文章发表在biobabble公众号的,其中有介绍自己的软件工具的,包括scihub_ckcsvtkbioView, basicTrendline等优秀作品,首次在公众号平台上介绍。

Continue reading

biobabble作者群有一个小伙伴提出来的问题。

没错,凡是给biobabble投稿的小伙伴都会被拉入作者群。

话说有一个矩阵,我们让它某个值缺失,算出来的距离和原来的竟然是一样的:

> dat = matrix(1:10, 2)
> dist(dat)
         1
2 2.236068
> dat[1,1] = NA
> dist(dat)
         1
2 2.236068

这有点反直觉,实际上你再搞个缺失值,它算出来还是一样的:

> dat[1,3] = NA
> dist(dat)
         1
2 2.236068

但以我的经验,我通常不敢轻易说人家有bug,我们得确认一下。

Continue reading

在《一图告诉你venn plot和upset plot的关系》一文中,我们应该很清楚这两者的关系,upset plot是更清晰的呈现方式,而且能够支持无数多个分类,在《转UpSet图为ggplot?》一文中,又介绍了一个转化UpSetR输出为ggplot2便于嵌图和拼图的方法,但这个需要一个补丁,然后我提交的这个补丁,一直没有被作者接收。而且毕竟UpSetR是用grid写的,像grid这种高级货,玩起来还是有点难度,我一直在想应该有一个ggplot2版本的upset plot,最近就让我在gayhub上发现了。

这包已经在CRAN上,所以可以用最简单的方式安装:

install.packages("ggupset")
library(tidyverse)
library(ggupset)

tidy_movies %>%
  distinct(title, year, length, .keep_all=TRUE) %>%
  ggplot(aes(x=Genres)) +
    geom_bar() +
    scale_x_upset(n_intersections = 20)

Continue reading

你是否对《R包辣鸡之CorMut》之篇还有印象?没有的话,快点打开阅读一下,这文章让作者毕业了,毕竟发表的是一篇Bioinformatics。

[连载3]:辣眼睛,一篇抄袭引发的系列血案!》,而这一篇文章中揭露了某讲师抄袭了两个R包,晋升副教授了!文章中还稍带了另外一个学生也是抄袭,当然也发表了SCI,也毕业了。

今天讲另外一个R包,它做下面的事情:

当然前面的事情是goseq干的,它的功能就是衔接了goseq的输出,让我们还看看它每一步都在做什么。

Continue reading

最近有一些考研失利的同学问我怎么申请香港的学校,其实我的经验并不多,因为我读博的时候,并没有想要去香港,在港大临近截止日期的时候,很突然地去申请,然后竟然中了。当然毕竟在港大也待了几年,要说经验,多少也是有一点的。

为什么港校是一个选择

美帝的话,基本上可以说已经没机会了。要的话,再过一年,请赶早。欧洲还是有些机会的,因为欧洲读博就跟工作似的,有时候有funding了,打了广告,就招人了。只不过你要时刻去留意,而且不一定能让你撞上。

而港大(其它香港学校我不了解),每年招3轮学生,分别在12月、4月、8月,刚好如果你考研或考博之后,不管考得好不好,都可以试一下,给自己多一个选择,因为4月31号截止,时间不冲突,完全赶得上。

Continue reading

在《一个更好用的pheatmap》一文中介绍了pheatmap的新功能,它输出为一个pheatmap的对象,这个对象在终端上打出来,会出来图,你可以用ggplot2::ggsave()来保存图片,文章的结尾处卖了一个关子,就是用cowplot来拼,这个有许多人问过我,因为大家一般都认为cowplot只能用于ggplot2的输出,pheatmap感觉好像不太行,而且在很多人的感觉中,画图代码不是ggplot2写的,就是base写的,而pheatmap看上去就像是base一般,其实它是grid写的,我在下面两篇文章中都有示例代码,用于拼pheatmap,不过一般人看过了,也只是留下一点印象,终究还是记不住,因为涉及到grid的知识。

现在我们有一种你一定能记得住的方法了,以后再也不用问pheatmap怎么拼图了,首先pheatmap产生的是一个对象,然后这个对象我们可以用ggplot2给画出来,然后自然而然你能够用cowplot去拼,再熟悉不过了,如果这都不能理解记住,那我也没办法了。

Continue reading

library(ggplot2)

pups <- nlme::RatPupWeight %>% 
    janitor::clean_names() %>%
    dplyr::mutate(litter = as.integer(litter))

p <- ggplot(pups, aes(x = litter, y = weight, color = treatment))

针对某一个x值,我们可以画出相应y的统计量,比如均值、方差等,这些都可以“手工”的方式通过图层叠加来实现。

p + geom_jitter(shape=1) + 
    stat_summary(fun.y = "mean", size=2, geom="point", color = 'black') + 
    stat_summary(fun.data = mean_cl_normal, geom="errorbar", width=.1, color='black')

Continue reading

Author's picture

Guangchuang Yu

Bioinformatics Professor @ SMU

Bioinformatics Professor

Guangzhou