使用OmicCircos包--绘制基因圈图

本期内容为[R语言可视化-精美图形绘制系列]--使用OmicCircos包--绘制基因圈图


教程网址:


教程可以查看OmicCircos帮助文档也可以(OmicCircos_vignette.pdf (bioconductor.org)),里面讲的非常详细。也可以在我们的社群中获得。




本教程代码(搬砖)

1.1 安装包

if (!requireNamespace("BiocManager", quietly = TRUE))
   install.packages("BiocManager")
BiocManager::install("OmicCircos")

2 加载包

library(OmicCircos)
library(S4Vectors)
library(tidyverse)

3 导入数据

gene.location <- read.csv("gene.location.csv")
head(gene.location)

easy_input <- read.csv('signal.csv')
head(easy_input)

4 提取基因在染色体上的位置

gene_list <- easy_input$id
# 此处根据gene symbol提取位置信息
gene_list_chr <- gene.location[gene.location$external_gene_id %in% gene_list,]
# 只保留三列:染色体、起始位置、gene symbol
gene_list_chr <- gene_list_chr[,c(1,2,7)]
colnames(gene_list_chr) <- c('chr','position','id')
head(gene_list_chr)

5 合并染色体位置和signal

gene_chr_fc <- merge(gene_list_chr, easy_input, by='id')
gene_chr_fc <- gene_chr_fc[!duplicated(gene_chr_fc$id),]
write.csv(gene_chr_fc, "easy_input.csv", row.names = F)

6 绘图图形分3层

exp1 <- gene_chr_fc[,c(2,3,1,5,6)]
head(exp1)
exp2 <- gene_chr_fc[,c(2,3,1,7,8,9)]
exp3 <- gene_chr_fc[,c(2,3,1,10,11,12)]

7 创建link

# 连线
# 处理基因名字为一一对应关系,红色连红色,蓝色连蓝色
gene_label <- gene_chr_fc[, c(2,3,1,4)]
# 按照1-22,x,y排序
# 有的数据没有X或Y,小鼠只有1:20也没关系,不用改
gene_label$chr <- factor(gene_label$chr, levels = c(1:22, "X", "Y"))
# 下面去掉多余的factor。也可以不运行这行,对结果没影响
gene_label$chr <- droplevels(gene_label$chr, exclude = if(anyNA(levels(gene_label$chr))) NULL else NA)
# 排序
gene_label <- gene_label[order(gene_label$chr),]
tail(gene_label)

8 基因标注

# 红色基因
gene_link1 <- filter(gene_label, gene_label$color == 'red')
gene_link1 <- gene_link1[, -4]
head(gene_link1)
id11 <- data_frame(id = combn(gene_link1$id, 2)[1, ])
head(id11)
id1.1 <- data_frame(id1.1 = combn(gene_link1$id, 2)[2, ])
genelink1 <- gene_link1 %>%
right_join(id11)
genelink11 <- gene_link1 %>%
rename(id1.1=id) %>%
right_join(id1.1)
##----------------
gene_link1 <- cbind(genelink1, genelink11)
# 蓝色基因
gene_link2 <- filter(gene_label, gene_label$color == 'blue')
gene_link2 <- gene_link2[, -4]
id22 <- data_frame(id=combn(gene_link2$id, 2)[1, ])
id2.1<- data_frame(id2.1=combn(gene_link2$id, 2)[2, ])
genelink2 <- gene_link2 %>%
right_join(id22)
genelink22 <- gene_link2 %>%
rename(id2.1=id) %>%
right_join(id2.1)
##--------
gene_link2 <- cbind(genelink2, genelink22)

9 绘制图形

#准备画板
par(mar=c(0, 0, 0, 0))
plot(c(1,800), c(1,800), type="n", axes=FALSE, xlab="", ylab="", main="");

绘制染色体

#画染色体scale
circos(R=250, cir="hg19", W=5, type="chr", 
print.chr.lab=FALSE, #自带的名字会跟scale重叠
       scale=TRUE)

绘制染色名称

chr_info <- read.table("hg19.chrom.sizes.txt")
head(chr_info)

chr_label <- data.frame(chr = chr_info$V1, position = (chr_info$V2 + 1)/2, id = chr_info$V1)
circos(R=270, cir="hg19", W=2, mapping=chr_label, type="label2", col = "black", side="in", cex=0.5);

绘制基因名称

circos(R=280, cir="hg19", W=10, mapping=gene_label, type="label", lwd = 0.4, col = gene_label$color, 
       side="out", cex=0.5);

绘制第一个热图

circos(R=210, cir="hg19", W=40, mapping=exp1,  type="heatmap2",   
       cluster=FALSE, col.bar=FALSE, col=NULL,scale = TRUE)

绘制第二层热图

circos(R=160, cir="hg19", W=60, mapping=exp2,  type="heatmap2",
       cluster=FALSE, col.bar=FALSE, col=NULL,scale = TRUE) 

绘制第三层热图

circos(R=110, cir="hg19", W=60, mapping=exp3,  type="heatmap2",
       cluster=FALSE, col.bar=FALSE, col=NULL,scale = TRUE)

绘制link连线

circos(R=100, cir="hg19", W=10, mapping=gene_link2, type="link2", lwd=2, col='blue') 
circos(R=100, cir="hg19", W=10, mapping=gene_link1, type="link2", lwd=2, col='red')

这是使用这个包的其中的一种方法,还有其二。
今天的搬砖就是这样啦,又是美好的搬砖时刻!!!


往期文章(总汇)--点击链接进入

01-[R语言可视化-精美图形绘制系列]--精美火山图
02-R语言可视化-精美图形绘制系列--柱状图
03-R语言可视化-精美图形绘制系列--功能富集分析
04-R语言可视化-精美图形绘制系列—多组GO富集可视化
05-[R语言可视化-精美图形绘制系列--堆积图]
06-[R语言可视化-精美图形绘制系列--组间相关性分析]
07-[R语言可视化-精美图形绘制系列]--Mental分析
08-[R语言可视化-精美图形绘制系列--复杂热图+两图渐变连线]-【转载】
09-[R语言可视化-精美图形绘制系列--桑基图(Sankey)]
10-[R语言可视化-精美图形绘制系列--柱状图误差线标记]11-跟着NC学作图 | 柱状图与相关性图12-[R语言可视化-精美图形绘制系列--GO、KEGG富集通路关联图]
13-[跟着“基迪奥生物学”作图]--截断图14-[R语言可视化-精美图形绘制系列]--显著性箱线图
14-2[R语言可视化]--箱线图不同的画法及参数设置 | 学习笔记15-[R语言可视化-精美图形绘制系列]--组内相关性分析
16-[R语言可视化-精美图形绘制系列]--主成分分析(PCA)
17-[跟着NC学作图]--箱线图(一个函数获得Mean、SD、P值)
18-[跟着NC学作图]--生存分析(Survival analysis)
19-[跟着NC学作图]--散点图20-[R语言可视化-精美图形绘制系列]--散点图+箱线图组合图
21-[跟着NC学作图]-柱状堆积图22-[跟着NC学作图]-绘制频率分布图(图中图)
22-[R语言可视化-精美图形绘制系列]--FPI箱线图
23-跟着NC做基因组数据分析

--

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

你可能感兴趣的:(使用OmicCircos包--绘制基因圈图)