九叔归来3魁蛊婴在线观看_男人躁女人到高潮AV_香港成人论坛_亚洲精品久久久久久偷窥_夜来香成人网_亚洲制服 视频在线观看_无毒黄站_国产传媒18精品A片一区_麻花豆传媒剧国产MV在线观看_东北60岁熟女露脸在线_国产高清视频在线观看97_一道本视频一二三区_yellow免费播放在线观看_浪漫樱花动漫在线观看官网_高清AV熟女一区_天堂在线www_亚洲第一成年人网站_黄色在线免费观看_av女优快播_久久精品99国产精品日本

English | 中文版 | 手機版 企業登錄 | 個人登錄 | 郵件訂閱
當前位置 > 首頁 > 技術文章 > 一文教您如何輕松繪制Circos圖——環形熱圖

一文教您如何輕松繪制Circos圖——環形熱圖

瀏覽次數:3286 發布日期:2021-11-25  來源:本站 僅供參考,謝絕轉載,否則責任自負

圈圖在生信分析可視化中十分常見,而circos軟件的使用較為復雜,在這里分享R包「circlize」[1]的circos.heatmap函數,用于繪制環形熱圖。

該包的詳細說明文件見:https://jokergoo.github.io/circlize_book/book/introduction.html#principle-of-design
 
 
無腦復制代碼繪圖

```

##代碼1(標準化圈圖)

##安裝包

install.packages("dendextend","circlize","openxlsx")

##加載包

library(circlize)

library(dendextend)

library(openxlsx)

##讀入數據

mat1 <- read.xlsx("C:\\Users\\user\\Desktop\\工作空間\\熱圖\\data.xlsx")##讀入xlsx表

#((C:\\Users\\xyf\\Desktop\user\工作空間\\熱圖\\data.xlsx)替換為你的數據的路徑)

row.names(mat1)<-mat1[,1]#修改行名

mat1<-mat1[,-1]##刪除第一列,使之變為數字矩陣,繪圖的數據要求為矩陣(也就是單一類型的數據矩陣,這里全為數字)

##繪圖

col_fun1 = colorRamp2(c(-2, 0, 2), c("blue", "white", "red"))##設置熱圖顏色

column_od = hclust(dist(t(mat1)))$order #對列聚類

circos.par(gap.after = c(10))##為添加列名留出空間

circos.heatmap(mat1[, column_od], ##將列聚類后重新排序的矩陣

               col = col_fun1, ##設置顏色

               dend.side = "inside",##樹狀圖在圈內

               rownames.side = "outside",##行名在圈外

               dend.track.height = 0.2,

               dend.callback = function(dend, m, si) {

                 # when k = 1, it renders one same color for the whole dendrogram

                 color_branches(dend, k = 4, col = 2:5)##對樹狀圖進行著色

               }

)

circos.track(track.index = 2, ##將列名添加在第二個軌道(就是熱圖所在的環形軌道)

             panel.fun = function(x, y) {

               if(CELL_META$sector.numeric.index == 1) { # the last sector

                 cn = colnames(mat1[, column_od])##取得列名

                 n = length(cn)

                 circos.text(rep(CELL_META$cell.xlim[2], n) + convert_x(1, "mm"), ##x軸坐標

                             1:n - convert_y(0.5, "mm"), ##y軸坐標

                             cn, ##輸入要展示的列名

                             cex = 0.25, ##列名的大小

                             adj = c(0, 0.5),

                             facing = "inside")

               }

             }, bg.border = NA)

 

circos.clear()

```

細致講解

第一步:準備輸入數據。
一般用熱圖展示基因在樣本中的表達變化,代碼中data.xlsx為輸入文件,格式圖1。
 

圖1

第二步:安裝軟件(R和Rstudio)和包("dendextend","circlize","openxlsx")。
從這兩個網址https://cran.r-project.org/bin/windows/base/R-4.1.2-win.exe和https://download1.rstudio.org/desktop/windows/RStudio-2021.09.1-372.exe(復制到瀏覽器即可打開)下載軟件,直接雙擊安裝,所有選項默認。

用下面的代碼2安裝三個包。

```

##代碼2

 

##安裝分析包

install.packages("dendextend","circlize","openxlsx")

##加載包

library(circlize)

library(dendextend)

library(openxlsx)

```

第三步:代碼參數調整。
1> 修改顏色,使用代碼3,結果見圖2
顏色編號("#26B9CB", "#FFFFFF", "#B72865")可以在該網址:https://htmlcolorcodes.com/ 隨意選擇。

```

##代碼3

col_fun1 = colorRamp2(c(-2, 0, 2), c("#26B9CB", "#FFFFFF", "#B72865"))##設置熱圖顏色

column_od = hclust(dist(t(mat1)))$order #對列聚類

circos.par(gap.after = c(10))##為添加列名留出空間

circos.heatmap(mat1[, column_od], ##將列聚類后重新排序的矩陣

               col = col_fun1, ##設置顏色

               dend.side = "inside",##樹狀圖在圈內

               rownames.side = "outside",##行名在圈外

               dend.track.height = 0.2,

               dend.callback = function(dend, m, si) {

                 # when k = 1, it renders one same color for the whole dendrogram

                 color_branches(dend, k = 4, col = 2:5)##對樹狀圖進行著色

               }

)

circos.track(track.index = 2, ##將列名添加在第二個軌道(就是熱圖所在的環形軌道)

             panel.fun = function(x, y) {

               if(CELL_META$sector.numeric.index == 1) { # the last sector

                 cn = colnames(mat1[, column_od])##取得列名

                 n = length(cn)

                 circos.text(rep(CELL_META$cell.xlim[2], n) + convert_x(1, "mm"), ##x軸坐標

                             1:n - convert_y(0.5, "mm"), ##y軸坐標

                             cn, ##輸入要展示的列名

                             cex = 0.25, ##列名的大小

                             adj = c(0, 0.5),

                             facing = "inside")

               }

             }, bg.border = NA)

 

circos.clear()

```


圖2
 

2> 修改文字的大小(rownames.cex)。字體(rownames.font)和顏色(rownames.col),使用代碼4,結果見圖3。

 

```

##代碼4

col_fun1 = colorRamp2(c(-2, 0, 2), c("#26B9CB", "#FFFFFF", "#B72865"))##設置熱圖顏色

column_od = hclust(dist(t(mat1)))$order #對列聚類

circos.par(gap.after = c(15))##為添加列名留出空間

circos.heatmap(mat1[, column_od], ##將列聚類后重新排序的矩陣

               col = col_fun1, ##設置顏色

               dend.side = "inside",##樹狀圖在圈內

               rownames.side = "outside",##行名在圈外

               rownames.col = 1:nrow(mat1) %% 10 + 1,##行名添加顏色

               rownames.cex = runif(nrow(mat1), min = 0.3, max = 2),##行名的大小

               rownames.font = 1:nrow(mat1) %% 4 + 1,##行名字體

               dend.track.height = 0.2,

               dend.callback = function(dend, m, si) {

                 # when k = 1, it renders one same color for the whole dendrogram

                 color_branches(dend, k = 4, col = 2:5)##對樹狀圖進行著色

               }

)

circos.track(track.index = 2, ##將列名添加在第二個軌道(就是熱圖所在的環形軌道)

             panel.fun = function(x, y) {

               if(CELL_META$sector.numeric.index == 1) { # the last sector

                 cn = colnames(mat1[, column_od])##取得列名

                 n = length(cn)

                 circos.text(rep(CELL_META$cell.xlim[2], n) + convert_x(1, "mm"), ##x軸坐標

                             1:n - convert_y(0.5, "mm"), ##y軸坐標

                             cn, ##輸入要展示的列名

                             cex = 0.25, ##列名的大小

                             adj = c(0, 0.5),

                             facing = "inside")

               }

             }, bg.border = NA)

 

circos.clear()

```

圖3
 
發布者:上海百趣生物醫學科技有限公司
聯系電話:021-61531195
E-mail:chengyichun@biotree.cn

用戶名: 密碼: 匿名 快速注冊 忘記密碼
評論只代表網友觀點,不代表本站觀點。 請輸入驗證碼: 8795
Copyright(C) 1998-2025 生物器材網 電話:021-64166852;13621656896 E-mail:info@bio-equip.com
主站蜘蛛池模板: 盐山县| 新蔡县| 江源县| 海口市| 连城县| 南安市| 唐海县| 玛纳斯县| 文山县| 永川市| 金华市| 酉阳| 青神县| 庐江县| 汉中市| 井冈山市| 游戏| 龙山县| 原平市| 荔浦县| 林西县| 潮安县| 稷山县| 乳山市| 汾阳市| 宁阳县| 错那县| 句容市| 罗江县| 和林格尔县| 庐江县| 合江县| 舟曲县| 昆山市| 通许县| 贵阳市| 时尚| 抚松县| 桐乡市| 新乡市| 中山市|