三年成全在线观看大全,中文字幕av一区二区,免费看的黄色视频,中文字幕无码在线
 分類: 文獻解讀

Circos圖是在基因組相關(guān)的分析結(jié)果展示中非常常見的一類圖型。由于Circos圖中展示的信息量大,圖形十分美觀,很多文章中都會繪制類似的圖形。從圖形的內(nèi)容來看,Circos圖實際是將多個類型的圖片,包括散點圖、直方圖、折線圖、熱圖等,經(jīng)過變形以后疊加顯示在染色體上。本質(zhì)上是多個圖形的組合。

在R語言中,RCircos這個軟件包可以實現(xiàn)快速生成Circos圖片。接下來,我們就來看看怎樣用R來繪制圈圖。

1、基礎(chǔ)繪圖

# 加載RCicos,如果第一次使用,需要先安裝 install.packages('RCircos')# 讀取R包 library(RCircos)# 導(dǎo)入內(nèi)建人類染色體數(shù)據(jù) data(UCSC.HG38.Human.CytoBandIdeogram)

# 數(shù)據(jù)內(nèi)容如上圖;第一列?染色體編號;第二列?染色體片段起始位點;第三列?染色體片段結(jié)束位點;第四列?染色體片段編號;第五列?染色體片段顏色
# 這個數(shù)據(jù)是RCicos內(nèi)置的人類染色體信息,第四列和第五列信息用于展示染色體的核型??梢允÷浴?/span>

#?設(shè)置染色體數(shù)據(jù) cyto.info?<-?UCSC.HG38.Human.CytoBandIdeogram

RCircos.Set.Core.Components(cyto.info,?chr.exclude=NULL,tracks.inside=10,?tracks.outside=0?)
# chr.exclude=NULL;??設(shè)置不顯示的染色體,如?c(1,3)??????????
# tracks.inside=10;??設(shè)置內(nèi)部環(huán)形個數(shù)
# tracks.outside=0;???設(shè)置外部環(huán)形個數(shù)??

#?繪制染色體圖形,默認方法顯示染色體名稱。 RCircos.Set.Plot.Area()????? RCircos.Chromosome.Ideogram.Plot()?

這樣僅包含染色體的圈圖就生成了:

2、繪制包含數(shù)據(jù)的圖形

#?導(dǎo)入內(nèi)建人類染色體數(shù)據(jù) data(UCSC.HG19.Human.CytoBandIdeogram); #設(shè)置不顯示的染色體,如?c(1,3)??? chr.exclude?<-?NULL;? #設(shè)置染色體數(shù)據(jù) cyto.info?<-?UCSC.HG19.Human.CytoBandIdeogram;? #設(shè)置內(nèi)部環(huán)形個數(shù) tracks.inside?<-?10;? #設(shè)置外部環(huán)形個數(shù) tracks.outside?<-?0;? #?導(dǎo)入上面四個基本參數(shù) RCircos.Set.Core.Components(cyto.info,?chr.exclude,?tracks.inside,?tracks.outside); #?列出所有繪圖參數(shù) RCircos.List.Plot.Parameters() #?定義要生成的圖像文件 pdf(file="RCircosDemoHumanGenome",?height=8,?width=8,?compress=TRUE); RCircos.Set.Plot.Area(); #?height和width指定生成圖片的長和寬,compress指定生成的圖片是否需要壓縮 #?繪制染色體圖形 RCircos.Chromosome.Ideogram.Plot();

3、染色體上添加基因名稱與連線

# 加載內(nèi)置的RCircos.Gene.Label.Data數(shù)據(jù)集

data(RCircos.Gene.Label.Data); 

#?數(shù)據(jù)內(nèi)容如上圖,第一列?染色體編號,需要與第一步導(dǎo)入的染色體數(shù)據(jù)一致;第二列?基因在染色體片段起始位點;第三列?基因在染色體片段結(jié)束位點;第四列?基因名

#?指定內(nèi)容在內(nèi)側(cè)的環(huán)形還是外側(cè)的環(huán)形生成 side?<-?"in";#?指定內(nèi)容在第幾個環(huán)形生成 track.num?<-?1;#?繪圖 RCircos.Gene.Connector.Plot(RCircos.Gene.Label.Data,?track.num,?side); #?在染色體上添加基因名稱,?指定內(nèi)容在第幾個環(huán)形生成 name.col?<-?4;#?指定基因名在數(shù)據(jù)的第幾列 track.num?<-?2;#?繪圖 RCircos.Gene.Name.Plot(RCircos.Gene.Label.Data,?name.col,track.num,?side);

4、添加熱圖類型的環(huán)形

# 加載內(nèi)置的RCircos.Heatmap.Data數(shù)據(jù)集
data(RCircos.Heatmap.Data);

#?這個數(shù)據(jù)集中是6個不同樣本的基因表達量數(shù)據(jù),數(shù)據(jù)內(nèi)容如上圖,第一列?染色體編號,需要與第一步導(dǎo)入的染色體數(shù)據(jù)一致;第二列?基因在染色體片段起始位點;第三列?基因在染色體片段結(jié)束位點;第四列?基因名;第五列及以后?基因在不同樣本中的表達量

#?指定以第6列數(shù)據(jù)生成熱圖 data.col?<-?6; #?指定內(nèi)容在第5個環(huán)形生成 track.num?<-?5;#?指定內(nèi)容在內(nèi)側(cè)的環(huán)形生成 side?<-?"in";#?繪圖 RCircos.Heatmap.Plot(RCircos.Heatmap.Data,?data.col,?track.num,?side);

5、添加散點圖類型的環(huán)形

#?加載內(nèi)置的RCircos.Scatter.Data數(shù)據(jù)集
data(RCircos.Scatter.Data);

#?這個數(shù)據(jù)集是拷貝數(shù)變異的數(shù)據(jù),數(shù)據(jù)內(nèi)容如上圖,第一列?染色體編號,需要與第一步導(dǎo)入的染色體數(shù)據(jù)一致;第二列?突變位點在染色體片段起始位點;第三列?突變位點在染色體片段結(jié)束位點;第四列?突變位點拷貝數(shù);第五列?突變平均置信度

#?指定以第5列數(shù)據(jù)圖形中散點縱坐標 data.col?<-?5;#?指定圖形在第6個環(huán)形生成 track.num?<-?6;#?指定圖形在內(nèi)側(cè)環(huán)形生成 side?<-?"in";#?指定數(shù)據(jù)大于1的點以紅色顯示,小于數(shù)據(jù)1的點以藍色顯示 by.fold?<-?1;#?繪圖 RCircos.Scatter.Plot(RCircos.Scatter.Data,?data.col,track.num,?side,?by.fold);

6、添加折線圖類型的環(huán)形

# 加載內(nèi)置的RCircos.Line.Data數(shù)據(jù)集
data(RCircos.Line.Data);

# 由于這個數(shù)據(jù)集的染色體編號與第一步導(dǎo)入的染色體數(shù)據(jù)不一致,需要在編號前添加chr
RCircos.Line.Data$chromosome?<-?paste(‘chr’,RCircos.Line.Data$chromosome,sep?=?)

#?指定以第5列數(shù)據(jù)做為圖形中拆線的縱坐標 data.col?<-?5;#?指定圖形在第7個環(huán)形生成 track.num?<-?7;#?指定圖形在內(nèi)側(cè)環(huán)形生成 side?<-?"in";#?繪圖 RCircos.Line.Plot(RCircos.Line.Data,?data.col,?track.num,?side);

7、添加直方圖類型的環(huán)形

# 加載內(nèi)置的RCircos.Histogram.Data數(shù)據(jù)集 data(RCircos.Histogram.Data);

#?這個數(shù)據(jù)集是染色體片段突變頻率的數(shù)據(jù),數(shù)據(jù)內(nèi)容如上圖,第一列?染色體編號;第二列?染色體片段起始位點;第三列?染色體片段結(jié)束位點;第四列?染色體片段突變頻率

#?指定以第4列數(shù)據(jù)做為圖形中直方的縱坐標 data.col?<-?4;#?指定圖形在第8個環(huán)形生成 track.num?<-?8;#?指定圖形在內(nèi)側(cè)環(huán)形生成 side?<-?"in";#?繪圖 RCircos.Histogram.Plot(RCircos.Histogram.Data,?data.col,?track.num,?side);

8、添加網(wǎng)絡(luò)圖類型的環(huán)形

# 加載內(nèi)置的RCircos.Tile.Data數(shù)據(jù)集 data(RCircos.Tile.Data);

#?數(shù)據(jù)內(nèi)容如上圖,第一列?染色體編號;第二列?需要繪制的網(wǎng)格在染色體片段的起始位點;第三列?需要繪制的網(wǎng)格在染色體片段的結(jié)束位點

#?指定圖形在第9個環(huán)形生成 track.num?<-?9;#?指定圖形在內(nèi)側(cè)環(huán)形生成 side?<-?"in";#?繪圖 RCircos.Tile.Plot(RCircos.Tile.Data,?track.num,?side);

9、添加一個或多個基因間的聯(lián)系曲線

# 加載內(nèi)置的RCircos.Link.Data數(shù)據(jù)集 data(RCircos.Link.Data);

#?數(shù)據(jù)內(nèi)容如上圖,第一列?染色體編號;第二列?聯(lián)系位點在染色體片段的起始位點;第三列?聯(lián)系位點在染色體片段的結(jié)束位點;第四列?聯(lián)系位點在所在的另一個染色體編號;第五列?聯(lián)系位點在所在的另一個染色體片段的起始位點;第六列?聯(lián)系位點在所在的另一個染色體片段的結(jié)束位點

#?指定圖形在第11個環(huán)形生成 track.num?<-?11;#?繪圖 RCircos.Link.Plot(RCircos.Link.Data,?track.num,?TRUE);

#?加載內(nèi)置的RCircos.Ribbon.Data數(shù)據(jù)集 data(RCircos.Ribbon.Data);

#?繪圖 RCircos.Ribbon.Plot(ribbon.data=RCircos.Ribbon.Data,?track.num=11,?by.chromosome=FALSE,?twist=FALSE); #?繪圖完成之后關(guān)閉圖形設(shè)備,保存圖片??梢栽诠ぷ髂夸浵抡业缴傻膱D片,默認是PDF格式? dev.off();

最終繪圖效果如下圖:

以上就是一個使用數(shù)據(jù)生成多個環(huán)形組合圖的過程。我們還可以根據(jù)自己的需要添加更多的類似圖形。只需要保證數(shù)據(jù)的結(jié)構(gòu)一致即可。同樣,也可以以上面的代碼為模板,把其它數(shù)據(jù)代換進去生成全新圖片。

 

如果您對這個繪圖還有其他問題,歡迎點擊下方按鈕聯(lián)系我們,我們將免費為您設(shè)計文章思路方案。

 

 

最近文章