本期內(nèi)容為[R語言可視化-精美圖形繪制系列]--使用OmicCircos包--繪制基因圈圖
教程網(wǎng)址:

教程可以查看OmicCircos幫助文檔也可以(OmicCircos_vignette.pdf (bioconductor.org)),里面講的非常詳細(xì)。也可以在我們的社群中獲得。




本教程代碼(搬磚)
1.1 安裝包
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("OmicCircos")
2 加載包
library(OmicCircos)
library(S4Vectors)
library(tidyverse)
3 導(dǎo)入數(shù)據(jù)
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
# 此處根據(jù)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 創(chuàng)建link
# 連線
# 處理基因名字為一一對應(yīng)關(guān)系,紅色連紅色,藍(lán)色連藍(lán)色
gene_label <- gene_chr_fc[, c(2,3,1,4)]
# 按照1-22,x,y排序
# 有的數(shù)據(jù)沒有X或Y,小鼠只有1:20也沒關(guān)系,不用改
gene_label$chr <- factor(gene_label$chr, levels = c(1:22, "X", "Y"))
# 下面去掉多余的factor。也可以不運(yùn)行這行,對結(jié)果沒影響
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 基因標(biāo)注
# 紅色基因
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)
# 藍(lán)色基因
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 繪制圖形
#準(zhǔn)備畫板
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')

這是使用這個包的其中的一種方法,還有其二。
今天的搬磚就是這樣啦,又是美好的搬磚時刻?。?!
往期文章(總匯)--點擊鏈接進(jìn)入
01-[R語言可視化-精美圖形繪制系列]--精美火山圖
02-R語言可視化-精美圖形繪制系列--柱狀圖
03-R語言可視化-精美圖形繪制系列--功能富集分析
04-R語言可視化-精美圖形繪制系列—多組GO富集可視化
05-[R語言可視化-精美圖形繪制系列--堆積圖]
06-[R語言可視化-精美圖形繪制系列--組間相關(guān)性分析]
07-[R語言可視化-精美圖形繪制系列]--Mental分析
08-[R語言可視化-精美圖形繪制系列--復(fù)雜熱圖+兩圖漸變連線]-【轉(zhuǎn)載】
09-[R語言可視化-精美圖形繪制系列--?;鶊D(Sankey)]
10-[R語言可視化-精美圖形繪制系列--柱狀圖誤差線標(biāo)記]11-跟著NC學(xué)作圖 | 柱狀圖與相關(guān)性圖12-[R語言可視化-精美圖形繪制系列--GO、KEGG富集通路關(guān)聯(lián)圖]
13-[跟著“基迪奧生物學(xué)”作圖]--截斷圖14-[R語言可視化-精美圖形繪制系列]--顯著性箱線圖
14-2[R語言可視化]--箱線圖不同的畫法及參數(shù)設(shè)置 | 學(xué)習(xí)筆記15-[R語言可視化-精美圖形繪制系列]--組內(nèi)相關(guān)性分析
16-[R語言可視化-精美圖形繪制系列]--主成分分析(PCA)
17-[跟著NC學(xué)作圖]--箱線圖(一個函數(shù)獲得Mean、SD、P值)
18-[跟著NC學(xué)作圖]--生存分析(Survival analysis)
19-[跟著NC學(xué)作圖]--散點圖20-[R語言可視化-精美圖形繪制系列]--散點圖+箱線圖組合圖
21-[跟著NC學(xué)作圖]-柱狀堆積圖22-[跟著NC學(xué)作圖]-繪制頻率分布圖(圖中圖)
22-[R語言可視化-精美圖形繪制系列]--FPI箱線圖
23-跟著NC做基因組數(shù)據(jù)分析
--
小杜的生信筆記 ,主要發(fā)表或收錄生物信息學(xué)的教程,以及基于R的分析和可視化(包括數(shù)據(jù)分析,圖形繪制等);分享感興趣的文獻(xiàn)和學(xué)習(xí)資料!