======简介====== qiime1分析流程中,PCoA图只有不含置信圈的原始点图与xy轴映射组合图,且只有2个分组时才可以生成图片。现新增PCoA置信圈图与xy轴的映射组合图,且不对分组数量进行限制。 ======功能====== 提供修改后的R模板作为参考,以便应对多分组情况。 ======数据准备====== **1. PCoA分析的输入文件:** 首先进行PCoA分析,生成常规流程中的过程文件,然后我们对绘图的R脚本进行个性化处理。 PCoA分析所需文件unweighted_unifrac_pc.txt,weighted_unifrac_pc.txt,group.list,group_col.list **2. PCoA绘图参考R脚本路径:** /TJPROJ5/META_ASS/16s/chenjiawei/script/gxh/qiime1-PCoA-combine/plot_PCoA-test.R **3. 修改R脚本,将下列代码加入:** ###combine databox = read.table("/TJPROJ7/META_ASS/16s/chenjiawei/X101SC21072896-Z01/X101SC21072896-Z01-F008/gxh-PCoA-20221119/05.Diversity_analysis/PCoA/PCoA/weighted_unifrac/PCoA.txt",head=T, row.names=1,sep="\t") PCoAbox1<-ggplot() PCoAbox1<-PCoAbox1+ geom_boxplot(aes(x=group1,y=databox$V1,fill=plotdata$group)) + ylim(-0.5,0.5)+ guides(fill=FALSE)+ scale_fill_manual(values=col) + xlab("")+ylab("") + theme(axis.text.x = element_blank(),axis.ticks.x = element_blank(),axis.text.y =element_text(color='black',family="Arial",size=8), panel.background = element_blank(),panel.border = element_rect(colour = "black",fill=NA))+coord_flip() PCoAbox2<-ggplot() PCoAbox2<-PCoAbox2+geom_boxplot(aes(x=group1,y=databox$V2,fill=plotdata$group)) + ylim(-0.3,0.25) + guides(fill=FALSE)+ scale_fill_manual(values=col) + xlab("")+ylab("") + theme(axis.text.y = element_blank(),axis.ticks.y = element_blank(),axis.text.x =element_text(color='black',family="Arial",size=11), panel.background = element_blank(),panel.border = element_rect(colour = "black",fill=NA), legend.background = element_blank(),legend.title = element_blank(),legend.position = "bottom") k<-ggplot()+ geom_text(aes(x=0.5,y=0,label="Weighted Unifrac"))+ theme(axis.text = element_blank(),panel.background =element_blank(), panel.grid = element_blank(),axis.ticks = element_blank(), axis.title = element_blank()) PCoAbox3<-ggplot() PCoAbox3<-PCoAbox3+geom_point(aes(x=0.5,y=0.5,fill=plotdata$group,colour=plotdata$group)) PCoAbox3<-PCoAbox3+theme(legend.position=c(0.5,0.5),legend.background = element_rect(colour="black"),legend.title = element_blank(),panel.background = element_rect(fill="white"),legend.key=element_blank()) +scale_fill_manual(values = col) PCoAbox3<-PCoAbox3+scale_colour_manual(values=col)+ theme(axis.text = element_blank(),panel.background =element_blank(), panel.grid = element_blank(),axis.ticks = element_blank(), axis.title = element_blank()) cairo_pdf(filename="/TJPROJ7/META_ASS/16s/chenjiawei/X101SC21072896-Z01/X101SC21072896-Z01-F008/gxh-PCoA-20221119/05.Diversity_analysis/PCoA/PCoA/weighted_unifrac/PCoA_box_combine.pdf",height=10,width=12) grid.newpage() pushViewport(viewport(layout = grid.layout(5,4))) print (p2_cluster,vp=viewport(layout.pos.row = 2:4,layout.pos.col = 1:2)) print (PCoAbox1,vp=viewport(layout.pos.row = 5,layout.pos.col = 1:2)) print (PCoAbox2,vp=viewport(layout.pos.row = 2:4,layout.pos.col = 3)) print (k,vp=viewport(layout.pos.row=1,layout.pos.col=1:2)) print (PCoAbox3,vp=viewport(layout.pos.row = 5,layout.pos.col = 3)) dev.off() ======数据分析====== **1. 根据置信圈样本坐标调整柱形图y轴:** 需注意的修改点:由于置信圈图会根据圈的位置对原始样本点的xy轴进行压缩,而xy轴映射的柱形图使用原始样本点xy轴进行绘图,导致置信圈与柱形图样本点坐标对应不上的情况,这就需要我们使用ylim函数对柱形图xy轴进行调整,与置信圈的样本点坐标所对应,此步需要多次手动调整。 **2. 根据自己样本分组情况修改PCoA绘图R脚本:** 需注意的修改点:由于绘图使用的是grid.newpage函数和viewport函数对图片进行区域划分,随着分组数目的变化,柱形图的所占用区域可能会随之变化,需要手动调整。 **3. 调整R脚本后重新运行:** /PUBLIC/software/public/System/R-2.15.3/bin/R -f plot_PCoA-test.R