Circos圖可以通過Circos官方下載。使用教程
個人感覺R畫出的圖莫名的有種優(yōu)越感。圖片優(yōu)美,數(shù)據(jù)銜接方便??梢暬褪走xR.
華人小哥,開發(fā)了R包circlize用于Circos圖。circlize github地址
circlize在線電子書 Circular Visualization in R (jokergoo.github.io)
1.安裝circlize
install.packages("circlize")
2.circlize繪圖的原理
繪制是從外圈往內(nèi)圈,一圈一圈繪制的。
circos.clear()#初始化,如果前面繪制過,則清空畫布,從第一圈開始繪制
circos.par("track.height" = 0.1)#設置每一圈的高度為10%
circos.initializeWithIdeogram(plotType = NULL)
bed = generateRandomBed(nr = 100)
##第1圈
circos.genomicTrack(bed, panel.fun = function(region, value, ...) {
circos.genomicLines(region, value, type = "l", ...)#繪制基因組數(shù)據(jù),用折線
})
##第2圈
circos.genomicTrack(bed, numeric.column = 4,
panel.fun = function(region, value, ...) {
# numeric.column is automatically passed to `circos.genomicPoints()`
circos.genomicPoints(region, value,cex=0.25, ...)#繪制基因組數(shù)據(jù),用散點
})
bed的數(shù)據(jù)格式是:
chr start end value1
1 chr1 14469506 18337628 0.84710953
2 chr1 30748362 37272545 -0.20273840
3 chr1 71335907 80561701 0.03841746
4 chr1 86693969 125073619 0.55653742
5 chr1 147936959 173168706 -0.30889214
6 chr1 178652869 179623084 0.03241299
該軟件提供的有genomic的函數(shù),是用于基因組分析。如果使用帶有genomic的函數(shù),注意染色體,這個默認的染色體格式是chr1這種類型,默認的人類的染色體數(shù)據(jù)。如果是其他格式的染色體編號,需要設置如下
circos.genomicInitialize(IDM,major.by = 50000000)#后面的是設置刻度為大刻度為50M,每個大刻度默認是有5個小刻度。前面的IDM是數(shù)據(jù)框,用于自定義染色體數(shù)據(jù)。
IDM數(shù)據(jù)框的格式如下:
name start end
CHR01 1 120000000
CHR02 1 240000000
IDM第一列是你實際使用的染色體的名稱,第二列是起始位置1,第三列是染色體長度。
三列的列名必須和上面的列名完全一致。
基礎繪圖函數(shù)
如果直接使用原生的函數(shù)繪制,這樣就可以使用其他格式的染色體名稱。
可以繪制的圖形格式有:后面展示的是對應的函數(shù)的需要的最少的參數(shù)個數(shù)
Points點 circos.points(x, y)
Lines線條circos.lines(x, y)
Segments面circos.segments(x0, y0, x1, y1)
Text文本circos.text(x, y, labels)
Rectangles矩形circos.rect(xleft, ybottom, xright, ytop)
polygons多邊形circos.polygon(x, y)
Axes坐標軸circos.axis(h)
Barplots, boxplots and violin plots 柱狀圖、箱線圖、小提琴圖
circos.barplot(value, 1:10 - 0.5, col = 1:10)
circos.boxplot(value, 1:10 - 0.5, col = 1:10)
circos.violin(value, pos)
Links連線
circos.link(sector.index1, 0, sector.index2, 0)
circos.link(sector.index1, 0, sector.index2, 0, rou1, rou2)
繪制熱圖、進化樹
circos.heatmap()
基因組專用的函數(shù)
circos.initializeWithIdeogram()
circos.genomicInitialize()
circos.genomicTrack()
circos.genomicPoints()
circos.genomicLines()
circos.genomicText()
circos.genomicRect()
circos.genomicLink()
circos.genomicIdeogram() 基因組的坐標軸
circos.genomicHeatmap()
circos.genomicLabels()
circos.genomicDensity()
circos.genomicRainfall()
高階函數(shù)
chordDiagram()可以用于繪制共線性,就是俗稱的弦圖。
批量執(zhí)行函數(shù)circos.track可以批量繪制圖形
circos.track(..., panel.fun = function(x, y) {
circos.points(x, y)
})
circos.points(x, y, sector.index, track.index)