微生物多样性qiime2分析流程(6) 数据可视化分析(上)

在之前的几篇文章里,介绍了如何整合dada2的分析结果,并且已经通过MicrobiotaProcess包转化为了phyloseq对象,接下来先让我们进行一些基础的可视化操作.
示例数据:https://pan.baidu.com/s/1aY92IEQ_sDmLvEhJ_J4vkQ 提取码: 7ixa

1.整合数据转换格式
rm(list = ls())
library(MicrobiotaProcess)
library(phyloseq)
library(tidyverse)
library(RColorBrewer)
otu <- "otu_table.qza"
rep <- "rep-seqs.qza"
tree <- "rooted-tree.qza"
tax <- "taxonomy.qza"
sample <- "group.txt"
ps_dada2 <- import_qiime2(otuqza=otu, taxaqza=tax,refseqqza=rep,
                          mapfilename=sample,treeqza=tree)
在进行任何多样性图之前,让我们先探讨一下数据
ps <- ps_dada2

observed <- estimate_richness(ps, measures = c('Observed'))
explore.df <- cbind(observed, sample_sums(ps),sample_data(ps)$group)
colnames(explore.df) <- c('Observed', 'Sample_Sums',"group")
observed_mean <- mean(explore.df$Observed)
sample_sum_mean <- mean(explore.df$Sample_Sums)
ggplot(data = explore.df, aes(x = Sample_Sums, y = Observed,color=group)) + 
  geom_point() +
  geom_smooth(method="auto", se=TRUE, fullrange=FALSE, level=0.95, 
              inherit.aes = F, mapping = aes(Sample_Sums, Observed),
              data = explore.df) 
sample .png
2. Rarefaction可视化
p_rare <- ggrarecurve(obj=ps_dada2, 
                      indexNames=c("Observe","Chao1","ACE"), 
                      chunks=300) +
  theme(legend.spacing.y=unit(0.02,"cm"),
        legend.text=element_text(size=4))+
  theme_bw()
p_rare.png
3. Alpha多样性可视化
alphaobj <- get_alphaindex(ps_dada2)

head(as.data.frame(alphaobj))

p_alpha <- ggbox(alphaobj, geom="violin", factorNames="group") + 
  scale_fill_manual(values=c("#2874C5", "#EABF00"))+
  theme(strip.background = element_rect(colour=NA, fill="grey"))
p_alpha
Alpha.png
4. 物种组成分类可视化
4.1 无分组物种组成图
phytax <- get_taxadf(obj=ps_dada2, taxlevel=2)
phybar <- ggbartax(obj=phytax) +
  xlab(NULL) + ylab("relative abundance (%)")+
  theme(axis.text.x=element_text(face="plain",
                                 color="black",hjust=0.8,vjust=0.6,
                                 size=9, angle=90))+
  theme(legend.position="right")
phybar
phy1.png
4.2 门水平物种组成图
phytax <- get_taxadf(obj=ps_dada2, taxlevel=2)
phybar <- ggbartax(obj=phytax,facetNames="group", count=FALSE) +
  xlab(NULL) + ylab("relative abundance (%)")+
  theme(axis.text.x=element_text(face="plain",
                                 color="black",hjust=0.8,vjust=0.6,
                                 size=9, angle=90))+
  theme(legend.position="right")
phybar
phy2.png
4.3 属水平物种组成图
genustax <- get_taxadf(obj=ps_dada2, taxlevel=6)
genusbar <- ggbartax(obj=genustax, facetNames="group", count=FALSE) +
  xlab(NULL) + ylab("relative abundance (%)")+
  theme(axis.text.x=element_text(face="plain",
                                 color="black",hjust=0.8,vjust=0.6,
                                 size=9, angle=90))+
  theme(strip.text.x = element_text(size=8, color="black",
                                    face="plain"))+
  theme(legend.position="right")
genusbar
genus.png

5. PCA分析

pcares <- get_pca(obj=ps_dada2, method="hellinger")
pcaplot <- ggordpoint(obj=pcares, biplot=TRUE, speciesannot=TRUE,
                      pc=c(1,2),factorNames=c("group"), ellipse=TRUE) + 
  scale_color_manual(values=c("#2874C5", "#EABF00"))
PCA1-2.png
6. PCOA分析
pcoares <- get_pcoa(obj=ps_dada2, 
                    distmethod="euclidean", method="hellinger")
pcoaplot <- ggordpoint(obj=pcoares, biplot=TRUE,
                       speciesannot=TRUE,pc = c(2,1),
                       factorNames=c("group"), ellipse=T)
pcoa1.png
pcoares <- get_pcoa(obj=ps_dada2, 
                    distmethod="Unweighted-UniFrac", 
                    method="hellinger")
pcoaplot <- ggordpoint(obj=pcoares, biplot=TRUE,
                       speciesannot=TRUE,
                       pc = c(1,2),
                       factorNames=c("group"), ellipse=T)
pcoaplot
pcoa2.png
pcoares <- get_pcoa(obj=ps_dada2, 
                    distmethod="weighted-UniFrac", 
                    method="hellinger")
pcoaplot <- ggordpoint(obj=pcoares, biplot=TRUE,
                       speciesannot=TRUE,
                       pc = c(1,2),
                       factorNames=c("group"), ellipse=T)
pcoaplot
pcoa3.png

7. Venn图

upsetda <- get_upset(ps, factorNames="group")
upsetda
library(UpSetR)
upset(upsetda, sets=c("CASE_AH","CASE_BH",
                      "CASE_CH","CASE_DH"), sets.bar.color = "#56B4E9",
      order.by = "freq", empty.intersections = "on")
venn.png

8. NMDS分析

phyloseq-class experiment-level object
otu_table()   OTU Table:         [ 3365 taxa and 41 samples ]
sample_data() Sample Data:       [ 41 samples by 2 sample variables ]
tax_table()   Taxonomy Table:    [ 3365 taxa by 7 taxonomic ranks ]
phy_tree()    Phylogenetic Tree: [ 3365 tips and 3363 internal nodes ]

8.1 根据Bray-Curtis距离和NMDS排序进行多元分析

carbom.ord <- ordinate(ps, "NMDS", "bray")

8.2 绘制OTU

plot_ordination(ps, carbom.ord, type="taxa", color="class", 
                title="OTUs")+guides(color=FALSE)+theme_bw()
OTU.jpeg

8.3 绘制样本

plot_ordination(ps, carbom.ord, type="samples",title="Samples",
                color="class") + labs(color = "")+
  geom_point(size=3)+theme_bw()
sample.jpeg

8.4 显示样本和OTU

plot_ordination(ps, carbom.ord, type="split", color="class",
                title="biplot", label = "station") +  
  geom_point(size=3)+guides(color=FALSE)+theme_bw()
bioplot.jpeg

9.典型对应分析(CCA)

pacman::p_load(tidyverse,phyloseq,MicrobiotaProcess,
               ape,microbiome,patchwork)
data(dietswap)
pseq <- dietswap
pseq.cca <- ordinate(pseq, "CCA")
A <- plot_ordination(pseq, pseq.cca,
                     type = "samples", color = "nationality")+
  geom_point(size = 4)+theme_bw()
B <- plot_ordination(pseq, pseq.cca,
                     type = "taxa", color = "Phylum")+
  geom_point(size = 4)+theme_bw()

A|B
CA.jpeg

Split plot

plot_ordination(pseq, pseq.cca,
                type = "split", shape = "nationality", 
                color = "Phylum", label = "nationality")+
  theme_bw()
CA2.jpeg

10. 计算距离矩阵

参考:https://rdrr.io/bioc/phyloseq/man/distance.html
https://rdrr.io/bioc/MicrobiotaProcess/man/get_dist.html

bray <- get_dist(ps,distmethod="bray") %>% as.matrix()
write.table (bray,file ="bray_distance.xls", sep ="\t", row.names = T) 

uunifrac <- get_dist(ps,distmethod="uunifrac") %>% as.matrix()
write.table (uunifrac,file ="uunifrac_distance.xls", sep ="\t", row.names = T) 

wunifrac <- get_dist(ps,distmethod="wunifrac") %>% as.matrix()
write.table (wunifrac,file ="wunifrac_distance.xls", sep ="\t", row.names = T)

以上通过MicrobiotaProcessphyloseq等R包进行了一系列的分析,接下来我们将进行更加深入的相关性分析与与差异分析
参考:http://www.bioconductor.org/packages/release/bioc/vignettes/MicrobiotaProcess/inst/doc/MicrobiotaProcess-basics.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343