RCircos包的使用

參考:
1.Package ‘RCircos’
2.Using the RCircos Package

RCircos包可以將基因組結(jié)構(gòu),以及不同位置的相互關(guān)系進(jìn)行可視化。用RCircos畫圖的第一步就是先指定RCircos的核心部分,也就是基因組。構(gòu)建這個(gè)核心部分,你可以load基因組構(gòu)象圖到R里。RCircos包自身包含了三個(gè)datasets,分別是human,mouse和rat的基因組構(gòu)象,可以直接使用,用data()命令。如果你使用的是其它物種的基因組,也可以用read.table()來讀取。

> library(RCircos)
> data(UCSC.HG19.Human.CytoBandIdeogram)
> head(UCSC.HG19.Human.CytoBandIdeogram)
 > head(UCSC.HG19.Human.CytoBandIdeogram)
  Chromosome ChromStart ChromEnd   Band  Stain
1       chr1          0  2300000 p36.33   gneg
2       chr1    2300000  5400000 p36.32 gpos25
3       chr1    5400000  7200000 p36.31   gneg
4       chr1    7200000  9200000 p36.23 gpos25
5       chr1    9200000 12700000 p36.22   gneg
6       chr1   12700000 16200000 p36.21 gpos50

畫基因組

基因組數(shù)據(jù)加載后,RCircos核心組分就可以畫了,使用RCircos.Set.Core.Components()函數(shù):

#Setup core components先畫基因組的骨架(也就是24條染色體構(gòu)成的圓圈)
> RCircos.Set.Core.Components(UCSC.HG19.Human.CytoBandIdeogram,#這是上面load的基因組文件
                            chr.exclude<- NULL, #這個(gè)參數(shù)是要排除的染色體,這里我選無,也就是畫出所有的染色體,你也可以排除x和Y染色體
                            tracks.inside=10, #這一個(gè)參數(shù)是指定在染色體圓圈內(nèi)部一共要畫幾個(gè)圓圈
                            tracks.outside=0)#這個(gè)參數(shù)指定在外部畫幾個(gè)圓圈
> RCircos.Set.Plot.Area()#建立一個(gè)畫板
> RCircos.Chromosome.Ideogram.Plot()#在當(dāng)前的畫板上畫基因組的圓圈骨架

畫出來的骨架是這樣的(我這是截圖的,所以像素不高,如果想有高清晰圖像可以保存為pdf格式或者其他圖片格式):

核心部分被儲(chǔ)存在RCircos session里,你可以用RCircos.List.Parameters()函數(shù)查看當(dāng)前圖的參數(shù):

> rcircos.params <- RCircos.Get.Plot.Parameters()
> rcircos.params #一共有32個(gè)參數(shù),這里列出了所有參數(shù)以及默認(rèn)值
$base.per.unit
[1] 30000
......
$max.layers
[1] 5

$sub.tracks
[1] 5

$text.color
[1] "black"

$hist.color
[1] "red"

$line.color
[1] "black"

$scatter.color
[1] "black"

$tile.color
[1] "black"

$track.background
[1] "wheat"

$grid.line.color
[1] "gray"

$heatmap.color
[1] "BlueWhiteRed"

$point.type
[1] "."

比如說我想修改一會(huì)兒我想畫的Line plot的線條顏色,可以修改上面的參數(shù)值:

> rcircos.params$line.color <- "purple" #默認(rèn)黑色,我改成紫色
> RCircos.Reset.Plot.Parameters(rcircos.params)
> RCircos.List.Plot.Parameters()
Parameters for current RCircos session.

Parameters in inch:
==============================
radius.len:     1.84
chr.ideo.pos:       1.94
highlight.pos:      2.09
chr.name.pos:       2.14
plot.radius:        2.64
track.in.start:     1.89
track.out.start:    2.49
chrom.width:        0.1
track.padding:      0.02
track.height:       0.1

Parameters in chromosome unit:
==============================
base.per.unit:      30000
chrom.paddings:     300
heatmap.width:      100
hist.width:     100
gene name char. width:  500

General R graphic parameters:
==============================
text.size:      0.4
highlight.width:    2
point.type:     .
point.size:     1
text.color:     black
heatmap.color:      BlueWhiteRed
hist.color:     red
line.color:     purple
scatter.color:      black
tile.color:     black
track.background:   wheat
grid.line.color:    gray
Bezier.point:       1000
max.layers:     5
sub.tracks:     5

Data track numbers:
==============================
tracks.inside:      10
tracks.outside:     0


Following are procedures to change RCircos plot parameters:
params <- RCircos.Get.Plot.Parameters();
params$radius.len <- 2.0;
params$base.per.unit <- 5000;
RCircos.Reset.Plot.Parameters(params)

Chromosome ideogram data were automatically modified.

標(biāo)記基因名

在畫好整體的骨架之后,就可以往里填東西了。按照官方的教程走一遍流程,首先我們可以在基因組上添加基因名。但是由于圖片的清晰度問題,我們沒辦法把幾萬個(gè)基因都加上去,為了更好的可視化,cex不應(yīng)該超過0.4,當(dāng)cex設(shè)置為0.4的時(shí)候,字體的寬度就占據(jù)了5000染色體的unit(每個(gè)unit覆蓋了3000bp)。當(dāng)基因列表過長的時(shí)候,會(huì)自動(dòng)的去掉一些基因來匹配染色體的長度。另外當(dāng)一個(gè)基因名稱太長,可能會(huì)占據(jù)多于一個(gè)track的寬度(track就是一個(gè)圓圈),所以可能需要跳過下一個(gè)track。connector(連接基因名稱的小線段)通常被用來標(biāo)記某個(gè)基因在染色體的哪個(gè)位置。目前,RCircos只提供基因與染色體位置之間的connector,下面的代碼就是在染色體骨架內(nèi)的第一圈標(biāo)出要標(biāo)記的基因?qū)?yīng)的connector:

> data(RCircos.Gene.Label.Data) #用RCircos包里自帶的基因列表來畫圖
> head(RCircos.Gene.Label.Data)
  Chromosome chromStart chromEnd   Gene
1       chr1    8921418  8934967   ENO1
2       chr1   17345375 17380514   SDHB
3       chr1   27022894 27107247 ARID1A
4       chr1   41976121 42501596 HIVEP3
5       chr1   43803519 43818443    MPL
6       chr1   45794977 45805926  MUTYH
> data(RCircos.Gene.Label.Data) 
> name.col <- 4 #數(shù)據(jù)是4列
> side <- "in" #畫在基因組骨架的內(nèi)側(cè)
> track.num <- 1 #基因組骨架內(nèi)側(cè)的第一個(gè)track位置上畫圖
> RCircos.Gene.Connector.Plot(RCircos.Gene.Label.Data,
                              + track.num, side)#畫connector(連接基因名稱和基因組位置)
> track.num <- 2
> RCircos.Gene.Name.Plot(RCircos.Gene.Label.Data,
                         + name.col,track.num, side)#加基因名稱

現(xiàn)在加了基因名稱的圖就長這樣:

添加熱圖/散點(diǎn)圖/線圖等

添加其他圖形的時(shí)候,要求輸入文件的前三列是基因組位置信息,一般是染色體名稱、起始位點(diǎn)、結(jié)束位點(diǎn)。RCircos給各個(gè)類型的圖都提供了函數(shù)功能。

(一)添加熱圖
> data(RCircos.Heatmap.Data)#加載包里自帶的數(shù)據(jù)
> head(RCircos.Heatmap.Data)
  Chromosome chromStart chromEnd GeneName  X786.O     A498 A549.ATCC
1       chr1     934341   935552     HES4 6.75781  7.38773   6.47890
2       chr1     948846   949919    ISG15 7.56297 10.49590   5.89893
3       chr1    1138887  1142089 TNFRSF18 4.69775  4.55593   4.38970
4       chr1    1270657  1284492     DVL1 7.76886  7.52194   6.87125
5       chr1    1288070  1293915    MXRA8 4.49805  4.72032   4.62207
6       chr1    1592938  1624243 SLC35E2B 8.73104  8.10229   8.36599
     ACHN   BT.549  CAKI.1
1 6.05517  8.85062 7.00307
2 7.58095 12.08470 7.81459
3 4.50064  4.47525 4.47721
4 7.03517  7.65386 7.69733
5 4.58575  5.66389 4.93499
6 9.04116  9.24175 9.89727
> data.col <- 6
> track.num <- 5 #以防上一步標(biāo)記的基因名太長,所以這個(gè)熱圖畫在基因組內(nèi)的第5個(gè)圈
> side <- "in"
> RCircos.Heatmap.Plot(RCircos.Heatmap.Data, data.col,
                         + track.num, side)
(二)加散點(diǎn)圖
> data(RCircos.Scatter.Data)
> head(RCircos.Scatter.Data)
  chromosome   start     stop num.mark seg.mean
1       chr1   61735   228706       18  -0.4459
2       chr1  228729   356443       10   0.5624
3       chr1  356542   564621        4  -0.9035
4       chr1  603590  1704138      227   0.3545
5       chr1 1709023  1711414        6   1.2565
6       chr1 1714558 12862252     6276   0.4027
> data.col <- 5  #scatter.Data表格有5列
> track.num <- 6 #從圓圈最外面數(shù),這一層是第6層
> side <- "in"
> by.fold <- 1 #0或者正數(shù),如果大于這個(gè)數(shù),就標(biāo)記成紅色;如果小于這個(gè)數(shù),標(biāo)記為藍(lán)色;否則標(biāo)記為黑色
> RCircos.Scatter.Plot(RCircos.Scatter.Data, data.col,
                      + track.num, side, by.fold)
(三)加線圖
#這里我用了一個(gè)病人的segment文件來畫線圖,這個(gè)文件是之前分析CNV數(shù)據(jù)得到的
> head(sample)
  Chromosome     Start       End Num_Probes Segment_Mean
1       chr1   3301765  45555044      22823      -0.0412
2       chr1  45555884  45555958          2      -2.1898
3       chr1  45561065 114571841      41867      -0.0540
4       chr1 114581540 117173654       1772      -0.4083
5       chr1 117176111 117176157          2      -1.7948
6       chr1 117176175 146716041       1645      -0.3947
> data.col <- 5
> track.num <- 7
> side <- "in"
> RCircos.Line.Plot(sample, data.col,
                    + track.num, side)
因?yàn)槲疑厦姘丫€圖的參數(shù)(顏色)改了,所以這個(gè)線圖畫出來是紫色的,默認(rèn)是黑色的
(四)加柱形圖
> data(RCircos.Histogram.Data)
> head(RCircos.Histogram.Data)
  Chromosome chromStart chromEnd     Data
1       chr1   45000000 49999999 0.070859
2       chr1   55000000 59999999 0.300460
3       chr1   60000000 64999999 0.125421
4       chr1   70000000 74999999 0.158156
5       chr1   75000000 79999999 0.163540
6       chr1   80000000 84999999 0.342921
> data.col <- 4
> track.num <- 8
> side <- "in"
> RCircos.Histogram.Plot(RCircos.Histogram.Data,
                         + data.col, track.num, side)
(五)加連線
#這一步是加兩個(gè)短距離基因組位置的連線
> data(RCircos.Link.Data)
> head(RCircos.Link.Data)
  Chromosome chromStart  chromEnd Chromosome.1 chromStart.1 chromEnd.1
1       chr1    8284703   8285399         chr1      8285752    8286389
2       chr1   85980143  85980624         chr7    123161313  123161687
3       chr1  118069850 118070319         chr1    118070329  118070689
4       chr1  167077258 167077658         chr1    169764630  169764965
5       chr1  171671272 171671550         chr1    179790879  179791292
6       chr1  174333479 174333875         chr6    101861516  101861840
> track.num <- 9
> RCircos.Link.Plot(RCircos.Link.Data, track.num, TRUE)
#這一步是加兩個(gè)長距離的連線,比如chr5和chr13的粗線
> data(RCircos.Ribbon.Data)
> head(RCircos.Ribbon.Data)
  chromA chromStartA chromEndA chromB chromStartB chromEndB
1   chr1    28000000  84900000  chr18    19000000  56200000
2   chr1   214500000 236600000  chr10     3800000  17300000
3   chr5    62900000 104500000  chr13    79000000 104800000
4   chr8    73900000 139900000  chr17           0  22200000
> track.num <- 9
> side <- "in"
> RCircos.Ribbon.Plot(ribbon.data=RCircos.Ribbon.Data,
                      + track.num, by.chromosome=FALSE, twist=FALSE)
這就是把上面所有代碼運(yùn)行一遍后得到的圖。散點(diǎn)圖、線圖以及柱形圖的背景色都是小麥色,你可以修改RCircos.Get.Plot.Parameters()的參數(shù)進(jìn)行調(diào)整
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容