Thomas Lin Pedersen简直是个天才,最近patchwork动作很大,看到我都准备转投它的怀抱,把旧爱cowplot给扔了。

我们知道patchwork一出来,就推出+号来拼图,最近又搞出了|/两个操作符。让整个拼图看起来很舒服。

先来画几张图:

library(ggplot2)
p1 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp)) + 
  ggtitle('图一')

p2 <- ggplot(mtcars) + 
  geom_boxplot(aes(gear, disp, group = gear)) + 
  ggtitle('图二')

p3 <- ggplot(mtcars) + 
  geom_point(aes(hp, wt, colour = mpg)) + 
  ggtitle('图三')

p4 <- ggplot(mtcars) + 
  geom_bar(aes(gear)) + 
  facet_wrap(~cyl) + 
  ggtitle('图四')

Continue reading

ChIPseeker是为ChIP-seq所设计的,因为当年我在做ChIP-seq,一不小心就写了这个包,然而我的知识是有限的,这名字取得太过于限定在ChIP-seq了,其实顺反组的其它类型的测序技术都是支持的,包括DNase-seq和ATAC-seq,此处为了说明我当前的知识是有限的,必须强调不仅限于此,免得出现开头说的这种尴尬。

8月份去开会,有中大肿瘤医院的PI跟我说,他们希望ChIPseeker可以支持ATAC-seq,因为我的ChIPseeker太好用了,然后他们想要用在ATAC-seq上,然而我的包真的是支持的啊。

哈佛大学的网站上有一份ATAC-seq分析指南[1],就明确地写了,ChIPseeker虽然是为ChIP-seq所设计,但对ATAC-seq一样支持得非常好,并且把ChIPseeker列为这份指南的关键步骤之一。

Continue reading

出错的原因在于,我根本就没给GSEA分析的结果写barplot方法,所以默认去调用graphics::barplot.default了,于是出错。

但这样的图,对于我们来说,简直简单的不要不要的。

首先跑一下GSEA的分析, 这里用ReactomePA来跑一下通路的GSEA分析:

Continue reading

今天讲一个小技巧,首先数据还是得有,很简单地生成一些随机数:

set.seed(2019-10-23)
d <- data.frame(val=abs(rnorm(20)), 
                type=rep(c('A', 'B'), 10))

20个数长这样子:

          val type
1  0.04625141    A
2  0.28000082    B
3  0.25317063    A
4  0.96411077    B
5  0.49222664    A
6  0.69874551    B
7  0.82134409    A
8  0.70966741    B
9  1.56752284    A
10 1.12881681    B
11 0.82488089    A
12 0.19897743    B
13 0.76739568    A
14 0.70597703    B
15 0.24332380    A
16 0.55423292    B
17 2.49008811    A
18 1.35153628    B
19 2.13711738    A
20 0.92299795    B

Continue reading

基佬的屁股和科学家的屎,之间的共同点是…!》这篇推文发表之后,发现大家对屎尿屁还是蛮有兴趣的,画屎除了展示的emojifont包之外,也提到了ggimage包,其实用ggimage包更有趣!这里也演示一下,一起来玩屎,看看自己到底是搅屎棍还是化粪池!玩屎玩出花来。

先来一张线性拟合的图:

set.seed(123)
iris2 <- iris[sample(1:nrow(iris), 30), ]
model <- lm(Petal.Length ~ Sepal.Length, data = iris2)
iris2$fitted <- predict(model)

iris3 <- iris2[abs(iris2$Petal.Length-iris2$fitted) > 0.5,]
p <- ggplot(iris2, aes(x = Sepal.Length, y = Petal.Length)) +
    geom_point() +
    geom_linerange(aes(ymin = fitted, ymax = Petal.Length),
                   data=iris3, colour = "purple") +
    geom_abline(intercept = model$coefficients[1],
                slope = model$coefficients[2])
p

Continue reading

Author's picture

Guangchuang Yu

Bioinformatics Professor @ SMU

Bioinformatics Professor

Guangzhou