介紹
circos可以作為數(shù)據(jù)展示的一種手段鲁猩,主要用于基因組數(shù)據(jù)的可視化,比如甲基化罢坝,組蛋白修飾廓握,snp,indel嘁酿,sv隙券,以及常見的基因表達水平的展示,一般的circos都是基于perl
語言的闹司,數(shù)量繁多的配置文件總是很難按照我們想要的方式展示最終結果娱仔。而在R中也存在一些繪制circos的包,本例中主要介紹一下OmicCircos
這個包的使用
用法
在使用OmicCircos
繪制circos圖之前游桩,我們首先也需要準備配置文件牲迫,比如染色體長度信息,染色體定位信息等等借卧,如果還有snp盹憎,甲基化等信息也可以一并展示,在OmicCircos
中主要使用circos
函數(shù)來繪制circos圖形铐刘。
rm(list=ls());
library(OmicCircos);
options(stringsAsFactors = FALSE);
#首先導入自帶數(shù)據(jù)進行測試陪每,包括基因表達,cnv等數(shù)據(jù)
data("TCGA.PAM50_genefu_hg18");
data("TCGA.BC.fus");
data("TCGA.BC.cnv.2k.60");
data("TCGA.BC.gene.exp.2k.60");
data("TCGA.BC.sample60");
data("TCGA.BC_Her2_cnv_exp");
#cnv的p值進行l(wèi)og10轉化
pvalue <- -1 * log10(TCGA.BC_Her2_cnv_exp[,5]);
pvalue <- cbind(TCGA.BC_Her2_cnv_exp[,c(1:3)], pvalue);
#篩選Her2亞型
Her2.i <- which(TCGA.BC.sample60[,2] == "Her2");
Her2.n <- TCGA.BC.sample60[Her2.i,1];
Her2.j <- which(colnames(TCGA.BC.cnv.2k.60) %in% Her2.n);
#篩選Her2亞型患者cnv信息
cnv <- TCGA.BC.cnv.2k.60[,c(1:3,Her2.j)];
cnv.m <- cnv[,c(4:ncol(cnv))];
cnv.m[cnv.m > 2] <- 2;
cnv.m[cnv.m < -2] <- -2;
cnv <- cbind(cnv[,1:3], cnv.m);
#篩選Her2亞型患者的基因表達信息
Her2.j <- which(colnames(TCGA.BC.gene.exp.2k.60) %in% Her2.n);
gene.exp <- TCGA.BC.gene.exp.2k.60[,c(1:3,Her2.j)];
#設定顏色
colors <- rainbow(10, alpha=0.5);
#畫圖,首先建立一個空白圖層
pdf("OmicCircos4vignette10.pdf", 8,8);
par(mar=c(2, 2, 2, 2));
plot(c(1,800), c(1,800), type="n", axes=FALSE, xlab="", ylab="", main="");
#選擇需要放大的坐標
zoom <- c(1, 22, 939245.5, 154143883, 0, 180);
#開始畫圖
circos(R=400, cir="hg18", W=4, type="chr", print.chr.lab=TRUE, scale=TRUE, zoom=zoom);#最外層染色體信息
circos(R=300, cir="hg18", W=100, mapping=gene.exp, col.v=4, type="heatmap2", cluster=TRUE, col.bar=TRUE, lwd=0.01, zoom=zoom);#次外層基因表達信息
circos(R=220, cir="hg18", W=80, mapping=cnv, col.v=4, type="ml3", B=FALSE, lwd=1, cutoff=0, zoom=zoom);#第三層cnv信息
circos(R=140, cir="hg18", W=80, mapping=pvalue, col.v=4, type="l", B=TRUE, lwd=1, col=colors[1], zoom=zoom);#第四層p值曲線
circos(R=130, cir="hg18", W=10, mapping=TCGA.BC.fus, type="link", lwd=2, zoom=zoom);#基因共表達連線
## 局部放大操作
the.col1=rainbow(10, alpha=0.5)[1];
highlight <- c(140, 400, 11, 282412.5, 11, 133770314.5, the.col1, the.col1);
circos(R=110, cir="hg18", W=40, mapping=highlight, type="hl", lwd=2, zoom=zoom);
the.col2=rainbow(10, alpha=0.5)[6];
highlight <- c(140, 400, 17, 739525, 17, 78385909, the.col2, the.col2);
circos(R=110, cir="hg18", W=40, mapping=highlight, type="hl", lwd=2, zoom=zoom);
## highlight link
highlight.link1 <- c(400, 400, 140, 376.8544, 384.0021, 450, 540.5);
circos(cir="hg18", mapping=highlight.link1, type="highlight.link", col=the.col1, lwd=1);
highlight.link2 <- c(400, 400, 140, 419.1154, 423.3032, 543, 627);
circos(cir="hg18", mapping=highlight.link2, type="highlight.link", col=the.col2, lwd=1);
## zoom in chromosome 11
zoom <- c(11, 11, 282412.5, 133770314.5, 180, 270);
circos(R=400, cir="hg18", W=4, type="chr", print.chr.lab=TRUE, scale=TRUE, zoom=zoom);
circos(R=300, cir="hg18", W=100, mapping=gene.exp, col.v=4, type="heatmap2", cluster=TRUE, lwd=0.01, zoom=zoom);
circos(R=220, cir="hg18", W=80, mapping=cnv, col.v=4, type="ml3", B=FALSE, lwd=1, cutoff=0, zoom=zoom);
circos(R=140, cir="hg18", W=80, mapping=pvalue, col.v=4, type="l", B=TRUE, lwd=1, col=colors[1], zoom=zoom);
## zoom in chromosome 17
zoom <- c(17, 17, 739525, 78385909, 274, 356);
circos(R=400, cir="hg18", W=4, type="chr", print.chr.lab=TRUE, scale=TRUE, zoom=zoom);
circos(R=300, cir="hg18", W=100, mapping=gene.exp, col.v=4, type="heatmap2", cluster=TRUE, lwd=0.01, zoom=zoom);
circos(R=220, cir="hg18", W=80, mapping=cnv, col.v=4, type="ml3", B=FALSE, lwd=1, cutoff=0, zoom=zoom);
circos(R=140, cir="hg18", W=80, mapping=pvalue, col.v=4, type="l", B=TRUE, lwd=1, col=colors[1], zoom=zoom);
dev.off()
需要注意的是奶稠,omicCircos
是使用type
函數(shù)來指定不同圖形的展示方式的,而type可以指定的圖片形式包括以下幾種:
- “chr”:染色體或片段的繪圖
- “chr2”:染色體或部分基因組片段圖
“heatmap”:熱圖
“heatmap2”:基因組坐標的heatmaps
“hightlight.link”:用于縮放的鏈接線
“hl”:突出顯示
“l(fā)abel”:基因標簽或文本注釋
“l(fā)abel2”:具有相同圓周坐標的基因標簽或文本注釋
“l(fā)ink.pg”:基于貝塞爾曲線的鏈接多邊形
“l(fā)ink”:基于貝塞爾曲線的鏈接線
“l(fā)ink2”:具有較小染色體內弧的鏈接線
“l(fā)”:折線
“l(fā)s”:階梯狀線圖
“l(fā)h”:水平線
“ml”:多折線
“ml2”:多水平線
“ml3”:多階梯狀線圖
“box”:箱線圖
“hist”:多個樣本的直方圖
“ms”:多個樣本的點圖(類似箱線圖)
“h”:柱狀圖
“s”:點圖
“b”:條形圖
- “quant75”:75%分位數(shù)線
- “quant90”:90%分位數(shù)線
- “ss”:與數(shù)值成比例的點
- “sv”:與方差成比例的點
- “s.sd”:與標準偏差成比例的點
- “ci95”:95%置信區(qū)間線
- “b2”:條形圖(雙向)
- “b3”:相同高度的條形圖
- “s2”:固定半徑的點
- “arc”:半徑可變的患癖椤(表示基因片段)
- “arc2”:具有固定半徑的弧