跟着顶刊学绘图 | 系统发育树绘制(一)


一边学习,一边总结,一边分享!

引言

我们前面分享了NM的文章和代码(组学绘图代码分享,作者提供全部图的绘制代码,你还不动手收藏呢?),类似的文章和分享很多,也许你平时已经收藏了很多很多这样的教程。但是,可能 你收藏后就“吃灰”了,基本没有太多时间去了解和学习。

每个人精力和时间是有限的,我们当下也许只能做好1-2件事情。因此,我们会花费很少的时间,做每期教程的分享,希望可能帮助你。

本期教程图形

**获得本期教程数据和代码,在后台回复:**20250207

绘图代码

  1. 加载R包
 library(ape)
library(ggnewscale)
library(ggplot2)
library(ggtree)
library(ggtreeExtra)
library(RColorBrewer)
library(tidyverse)

source("plot_functions.R")
  1. 导入数据
##'树文件
BacTree	<- read.tree("pMAGs_bact_gtdtk_midroot.tree")
head(BacTree)

这是一个树形结构文件,表示系统发育树。通常,这种文件是以Newick格式或Nexus格式存储的,包含了物种或基因间的进化关系。

# 分类信息的数据表
dat <- read_tsv("pMAGS_tax.tsv")
head(dat)

这是一个包含分类信息的数据表

dataset <- read_tsv("pMAGS_Presence_Datasets.txt")
head(dataset)

covmax <- read_tsv("pMAGs_cov_sum.txt")
head(covmax)
  1. 数据处理
dat$p_c <- if_else(dat$p == "p__Proteobacteria", dat$c, dat$p)
dat$p_c <- gsub(".__", "", dat$p_c, perl = T)
dat$p_c <- gsub("_.$", "", dat$p_c, perl = T)

bacDat <- dat %>%
  filter(d == "d__Bacteria") %>%
  mutate(Abundance	= 0.2)

mostAbundantTax	<- bacDat %>%
  group_by(p_c) %>%
  summarise(total	= n()) %>%
  arrange(desc(total)) %>%
  slice(1:16)

list <- mostAbundantTax$p_c
list <- c(list, "Nitrospirota")


bacDat	<- bacDat %>%
  mutate(p_c	= if_else(p_c %in% list,  p_c, "Other"))
  1. 数据整合
bacDatset <- dataset %>%
  filter(MAGs %in% bacDat$MAGs)

bacDatset$Busi <-
  gsub("Busi", "Busi et al., Nat Com, 2022", bacDatset$Busi)
bacDatset$ENSEMBLE <-
  gsub("ENSEMBLE", "Michoud et al, L&O, 2023", bacDatset$ENSEMBLE)
bacDatset$Tibet <-
  gsub("Tibet", "Tibetan Glacier Genome and Gene", bacDatset$Tibet)
bacDatset$Tara <- gsub("Tara", "Tara Oceans", bacDatset$Tara)

bacDatset <- as.data.frame(bacDatset)
rownames(bacDatset) <- bacDatset$MAGs
bacDatset$MAGs <- NULL


bactcov <- covmax %>%
  filter(MAGs %in% bacDat$MAGs) %>%
  select(MAGs, count)

bactcov <- as.data.frame(bactcov)
rownames(bactcov) <- bactcov$MAGs
bactcov$MAGs <- NULL

bactcov$count <- log10(bactcov$count)
  1. 绘图
a	<- split(bacDat$MAGs, bacDat$p_c)

tree	<- groupOTU(BacTree, a)

getPaletteBact = colorRampPalette(brewer.pal(9, "Set1"))

bactColor	<- getPaletteBact(length(unique(bacDat$p_c)) + 1)

bactColor[1]	<- "black"
p1	<-
  ggtree(tree,
         layout = 'circular',  # 表示将树形图绘制为圆形布局
         aes(color = group)) + # 表示使用group列的值来为树上的每个节点着色
  geom_tree() +
  theme_tree() +
  geom_treescale(width	= 0.1) +
  scale_color_manual(values	= bactColor,
                     na.value = "transparent",
                     guide = "none") +
  #geom_text2(aes(subset=!isTip,	label=node), hjust=-.3)+
  theme(legend.position = "right")

p2 <- p1 +
  new_scale_colour() +
  new_scale_fill() +
  geom_fruit(
    data = bacDat,
    pwidth	= 0.01,
    geom = geom_bar,
    mapping = aes(y = MAGs, fill = p_c, x = 1),
    # orientation="y",
    stat = "identity",
  ) +
  scale_fill_manual(values	= bactColor[-1]) +
  labs(fill = "Taxa") +
  new_scale_colour() +
  new_scale_fill()

p3 <-
  gheatmap(
    p2,
    bacDatset,
    width = 0.2,
    offset = 0.1,
    # offset=8, width=0.6,
    colnames = FALSE,
    color = NULL
  ) +
  scale_fill_discrete(na.translate = F) +
  labs(fill = "Datasets") +
  new_scale_colour() +
  new_scale_fill()


获得本期教程数据和代码,在后台回复:20250207

我们提供绘图的所有数据,供大家制作自己的输入文件作参考。


若我们的教程对你有所帮助,请点赞+收藏+转发,大家的支持是我们更新的动力!!


2024已离你我而去,2025加油!!

2024年推文汇总 (点击后访问)

2023年推文汇总 (点击后访问)

2022年推文汇总 (点击后访问)

往期部分文章

1. 最全WGCNA教程(替换数据即可出全部结果与图形)

推荐大家购买最新的教程,若是已经购买以前WGNCA教程的同学,可以在对应教程留言,即可获得最新的教程。(注:此教程也仅基于自己理解,不仅局限于此,难免有不恰当地方,请结合自己需求,进行改动。)


2. 精美图形绘制教程

3. 转录组分析教程

4. 转录组下游分析

小杜的生信筆記 ,主要发表或收录生物信息学教程,以及基于R分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杜的生信筆記

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值