三年成全在线观看大全,中文字幕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è)計文章思路方案。

 

 

最近文章
精品人一区二区三区伦蜜桃免费 | 污网站在线免费观看 | 亚洲一区二区久久哔哩哔哩 | 91麻豆娱乐在线 | 91在线精品无码秘 入口九色 | 欧美日韩国产在线观看 | 国产美女一级八A片免费 | 波多野结衣中文字幕无码 | 国产精品揄拍500视频 | 丰满人妻中文字幕无码 | 精产品99永久免费网页版 | 少妇与禽性A片免费观看 | 国产精品秘 久久久久久 | 国产一级婬片A片灌AVG | 91在线无精品入口动漫 | 全色黄大色黄大片爽一次 | 在线观看国产免费视频 | 一区二区三区日韩无码强奸 | 日韩午夜无码视频 | 少妇扒开小泬让我添视频 | av网站在线播放 | 国产片一区二区三区 | 亚洲国产精品无码久久久 | 国产69精品久久久久熟女白洁 | 密挑红桃视频在线观看网站! | 欧美做爰BBB性BBBBB8 | 亚洲色婷婷综合久久久久中文 | www.17c.com喷水少妇| 又大又长又粗又爽视频 | 亚洲蜜桃精久久久久久久久久久久 | 国产无码电影在线观看 | 亚洲一区二区三区无码久久 | 伊人久久精品一区二区三区 | 99精品久久久久久久 | 日本理论午午夜理论片 | 东北女人无套内谢毛片 | 無碼破解壊版无码网站 | 中文字幕一区二区三区乱码 | 91嫖妓站街按摩店老熟女 | 中文字幕乱码AV在线 | 欧美BBBB嗽BBB爽 |