|
绘制韦恩图需要的包是VennDiagram,可以看我之前的博客安装和加载R的包的操作,绘制的Venn图样式会如下图所示。这个包只能绘制2~5样本,就是说如下图是4个圈叠加在一起,这个包绘制的Venn图只能是最少2个椭圆圈,最多5个椭圆的。
比如你有9个样本,样本1,样本2,样本3......样本9,样本1-3是低温处理,样本4-6是室温处理,样本7-9是高温处理。可以将样本1-3求和,4-6求和,7-9求和。最后得到的就是类似下图的结果,当然这是我自己画的,数字也是我自己胡填的。
我看过多家测序公司的结果,微生物16s高通量测序结果基本都类似于下面这样,纵向为OTU,横向为你自己的样本名称。如果每个样本独立起来是没法用R作图的,而且也没有意义,可以依据你的实验处理方式进行分组。
先将数据进行整理,安你实验的分组,将上面的YC YN......划分到不同的分组中,再将相应的列求和,得到下面的结果。(将没用的行删掉)
install.packages("VennDiagram")
library(VennDiagram)
en<-read.csv("yotu_venn.csv",row.names=1)#读取csv文件,并将其赋值变量en
en<-t(en)#将变量en转置,并将转置的结果赋值给en,之前的结果会被覆盖
A<-names(en[1,])[en[1,]>0] #names()是处理对象的函数:显示各成分的名称,en[1,]是提取的第一列, #en[1,]>0是逻辑向量,整句意思是将第一列值大于0的对象的行名赋值给A
B<-names(en[2,])[en[2,]>0]
C<-names(en[3,])[en[3,]>0]
D<-names(en[4,])[en[4,]>0]#如果是5个分组就加一列F<-names(en[5,])[en[5,]>0]当然后面绘图的颜色也要 #加一个,如果是3个分组就删掉D<-names(en[4,])[en[4,]>0],同理绘图时颜色 #减一个。
#绘图
venn.plot<-venn.diagram(x=list(YMCV=A,YYTV=B,CLV=C,DYV1=D),#各个分组的名称
filename ="venntu.png", #输出的图片名称
fill=c("cornflowerblue", "green", "red","darkorchid1"),
col = "transparent",alpha = 0.50,cex = 1.0,fontface = "bold",
cat.col = c("darkblue", "darkgreen","orange","darkorchid4"),
cat.cex = 1.5,cat.dist = 0.07,margin = 0.2)
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 02:17
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社