微生物生态:从phyloseq对象输出β多样性箱线图

微生物生态:从phyloseq对象输出β多样性箱线图

有些时候,β多样性的比较都是用排序的方法实现,但也可以换换口味,用箱线图比较,比如这样:
文章来源:Domestication of Oryza species eco-evolutionarily shapes bacterial and fungal communities in rice seed
这时候,需要利用Bray-Curtis,或者其他类型的距离矩阵,分组统计。如果你的距离矩阵包含在phyloseq里,那么下面的代码会帮你把phyloseq对象,转换为可以做箱线图的格式。

library(phyloseq)
physeq = merge_phyloseq(physeq, sampledata, random_tree)
physeq

wu = phyloseq::distance(physeq, "bray")
wu.m = melt(as.matrix(wu))
wu.m = wu.m %>%
  filter(as.character(Var1) != as.character(Var2)) %>%
  mutate_if(is.factor, as.character)

sd = data.frame(sample_data(physeq))

sd = sd %>%
  select("SampleID", "type") %>%
  mutate_if(is.factor,as.character)

colnames(sd) = c("Var1", "Type1")
wu.sd = left_join(wu.m, sd, by = "Var1")

colnames(sd) = c("Var2", "Type2")
wu.sd = left_joinwu.sd, sd, by = "Var2")

作图:

`library(ggplot2)
p = ggplot(wu.sd, aes(x = Type2, y = value)) +
  theme_bw() +
  geom_point() +
  geom_boxplot(aes(color = ifelse(Type1 == Type2, "red", "black" ))) +
  scale_color_identity() +
  facet_wrap(~ Type1, scales = "free_x") +
  theme(axis.text.x=element_text(angle = 90, hjust = 1, vjust = 0.5)) +
  ggtitle(paste0("Distance Metric = ", "bray")) +
  ylab("bray") +
  xlab("type")

p
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值