R包circlize:柱状图用腻了?试试好看的弦状图

科技工作者之家 2019-12-04

来源:宏基因组

柱状图用腻了?试试好看的弦状图

作者:郑伟 西北农林科技大学

责编:刘永鑫 中科院遗传发育所

弦图简介

总体来讲,弦图是一种可视化微生物物种或基因相对丰度的方法。平时大多数时间我们看到的文章一般都用柱状图表示微生物或者基因的相对丰度,弦图和柱状图最大的区别就在于它不仅可以用来表示微生物物种或者基因的多少,还可以用来表示环境因子和物种或者基因的相关性。之前公众号已经推送过《弦图的基础R包(circlize)的用法》,笔者今天带来的是如何利用弦图表示微生物相对丰度,如果大家用柱状图用腻了,可以用一下弦图,或许会带来耳目一新的感觉。此图主要运用R语言,所采用的R包主要为circlize。

数据准备

测试数据和代码,后台回复 circlize 获得下载链接

本文中所采用的数据为微生物的各个门的相对丰度(如选取前10或者丰度较高的门),可以加重复也可以只用各处理的平均值,数据排列如下(本人保存的是csv格式,也可以用txt格式):

20191204101949_597ead.jpg

代码部分

下面看R语言主要代码部分:

载入R语言包# 两个包自己用Rstudio直接安装就好
library(statnet)
library(circlize)数据导入# setwd(...)# 自己设定工作环境,随自己喜好
# Rmd无需设置工作目录,默认为文件所有目录
data<-read.csv("SC.csv",header=T,row=1)
my.data<-as.matrix(data) # 矩阵化
# 手动设置行列名(可选)
rownames(my.data) <-c("CCK", "CNPK", "GCCK", "GCNPK")
colnames(my.data) <-c("Alphaproteobacteria","Betaproteobacteria","Gammaproteobacteria",
"Deltaproteobacteria","Acidobacteria","Actinobacteria",
"Bacteroidetes","Chloroflexi","Firmicutes",
"Gemmatimonadetes","Planctomycetes","Thaumarchaeota" ,
"Verrucomicrobia","Ascomycota", "Basidiomycota",
"Zygomycota")
# 行和列的命名,这里本人习惯手动命名,如果觉得麻烦的话也可以直接根据输入的文档中的名字自己编辑好颜色设定grid.col = NULL
# 定义处理的颜色,这里随便选取了4个颜色,大家可以根据自己的喜好制定好看的配色
grid.col[c("CCK", "CNPK", "GCCK", "GCNPK")] = c("blue", "black", "orange", "chocolate")
# 定义微生物各个门的颜色,
grid.col[colnames(my.data)] = c("lavender", "khaki","mistyrose",
"sienna1", "skyblue", "brown1",
"gold", "maroon", "salmon", "moccasin",
"wheat","black","green","cyan","pink","orange")画图# 参数设置
circos.par(gap.degree = c(rep(2, nrow(my.data)-1), 10, rep(2, ncol(my.data)-1), 10),
start.degree = 180)
# 出图,本人这里只用了少部分参数,所有参数见此包的help文档,或者看下文
chordDiagram(my.data,
directional = TRUE,
diffHeight = 0.06,
grid.col = grid.col,
transparency = 0.5)
# 图例制作
legend("right",pch=20,legend=colnames(my.data),
col=grid.col[colnames(my.data)],bty="n",
cex=1,pt.cex=3,border="black") # 设定图例

初期画出来的图如下,此图类似于柱状图,区域面积越大表示相对丰度越高,上面四个为处理,下面的为微生物各个门的相对丰度:

20191204101949_5c8c9e.jpg

我们目前预览的图看,图例和图区严重重叠。是因为绘图区空间的限制。我们只需在图片输出时调置图片宽大于高即可解决。

保存以上图片

使用pdf函数保存以上图片。

# 设置图片文件名、长宽和字体大小
pdf(file="circlize.pdf", width=8, height=5, pointsize=8)
# 上方绘图和图例代码
chordDiagram(my.data,directional = TRUE,diffHeight = 0.06,grid.col = grid.col, transparency = 0.5)
legend("right",pch=20,legend=colnames(my.data),col=grid.col[colnames(my.data)],bty="n",cex=1,pt.cex=3,border="black")
# 绘图结束后写入文件
dev.off()

20191204101950_607552.jpg

现在图例和文件不再重叠。有些门的文字重叠。可以在AI排版软件中手动调整或删除一些丰度小的类别名称。

Circlize包的所有参数(个性化设置)

大家也可以根据自己的喜好调整,整个图的代码还有好多,大家可以根据自己的喜好调整,circlize包给出的所有参数代码如下:具体使用命令?chordDiagram查看

chordDiagram(x, grid.col = NULL, grid.border = NA, transparency = 0.5,
col = NULL, row.col = NULL, column.col = NULL,
order = NULL, directional = 0, xmax = NULL,
symmetric = FALSE, keep.diagonal = FALSE,
direction.type = "diffHeight", diffHeight = convert_height(2, "mm"),
reduce = 1e-5, self.link = 2,
preAllocateTracks = NULL,
annotationTrack = c("name", "grid", "axis"),
annotationTrackHeight = convert_height(c(3, 2), "mm"),
link.border = NA, link.lwd = par("lwd"), link.lty = par("lty"),
link.sort = FALSE, link.decreasing = TRUE,
link.arr.length = ifelse(link.arr.type == "big.arrow", 0.02, 0.4),
link.arr.width = link.arr.length/2,
link.arr.type = "triangle", link.arr.lty = par("lty"),
link.arr.lwd = par("lwd"), link.arr.col = par("col"),
link.largest.ontop = FALSE, link.visible = TRUE,
link.rank = NULL, ...)笔者个性化弦图

大家可以自由发挥根据自己的喜好出图,下面是本人通过个性化代码配合AI等其他软件出的例图:

20191204101950_63af8b.jpg

作者简介

郑伟:西北农林科技大学资源环境学院,植物营养学专业。研究方向为土壤微生物生态,具体为不同施肥方式及农业措施介导下土壤微生物群落结构及功能基因在土壤养分周转及作物营养吸收方面的相互作用。曾参与国家自然科学基金,农业部公益性项目等多个项目的研究工作。目前发表科研论文近20余篇,相关研究成果以第一作者在Soil Biology Biochemistry、Biology and Fertility of Soils、European Journal of Soil Biology等土壤学领域著名期刊发表。获本专业相关专利2项。在宏基因组公众号发表《生信小白的福音——免费在线分析扩增子数据SILVAngs》、《功能预测之Tax4Fun》 、《Cytoscape:MCODE增强包的网络模块化分析》等。

来源:meta-genome 宏基因组

原文链接:http://mp.weixin.qq.com/s?__biz=MzUzMjA4Njc1MA==&mid=2247489207&idx=4&sn=45bda5e6c4a8d743b3400a751e124f0d&chksm=fab9fc06cdce75109176b346929cc54e180ad00fb3bd92c35098e8140787f977b044ece010e2&scene=27#wechat_redirect

版权声明:除非特别注明,本站所载内容来源于互联网、微信公众号等公开渠道,不代表本站观点,仅供参考、交流、公益传播之目的。转载的稿件版权归原作者或机构所有,如有侵权,请联系删除。

电话:(010)86409582

邮箱:kejie@scimall.org.cn

柱状图 弦图

推荐资讯