手把手教你画酷炫环形图(图文详解)

2020-07-24 09:48:08 浏览数 (1)

成品预览

环境需求

R 及 Rstudio 的安装配置

https://zhenglei.blog.csdn.net/article/details/102007737

RCircos安装
代码语言:javascript复制
  options()$BioC_mirror
  options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
  options()$BioC_mirror
  if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
  library(BiocManager)
  
  BiocManager::install("RCircos",ask = F,update = F)

绘制圈图

载入包
代码语言:javascript复制
  rm(list=ls())
  
  # 载入包
  library(RCircos)

1

绘制人染色体圈图

代码语言:javascript复制
  # 绘制人染色体圈图 ------------------------------------------------------
  # 导入人类染色体数据
  data(UCSC.HG19.Human.CytoBandIdeogram)
  
  # 设置染色体数据
  cyto.info <- UCSC.HG19.Human.CytoBandIdeogram
  # 设置不显示的染色体
  chr.exclude <- NULL
  # 设置内部环形数
  tracks.inside <- 10
  # 设置外部环形数  
  tracks.outside <- 0
  
  # 导入上面四个基本参数
  RCircos.Set.Core.Components(cyto.info, chr.exclude,tracks.inside, tracks.outside)  
 
  # 列出所有绘图参数
  RCircos.List.Plot.Parameters()
  
  # 绘制染色体图形,默认方法显示染色体名称。
  RCircos.Set.Plot.Area()    
  RCircos.Chromosome.Ideogram.Plot()

数据格式:

绘制:

2

绘制基因

代码语言:javascript复制
  # 添加基因名称与连线 -----------------------------------------------------
  
  # 加载数据集
  data(RCircos.Gene.Label.Data);
  
  # 设置在内环绘制
  side <- "in";
  # 设置在第一内环绘制
  track.num <- 1;
  
  # 绘图
  RCircos.Gene.Connector.Plot(RCircos.Gene.Label.Data, track.num, side);
  
  # 在染色体上添加基因名称
  name.col <- 4;
  track.num <- 2;
  
  # 绘图
  RCircos.Gene.Name.Plot(RCircos.Gene.Label.Data, name.col,track.num, side);

数据格式:

绘制:

3

绘制热图

代码语言:javascript复制
  # 添加热图类型的环形 ---------------------------------------------------------------
  # 加载数据集
  data(RCircos.Heatmap.Data);
  
  # 设置热图数据
  data.col <- 6;
  # 设置第5个环形生成
  track.num <- 5;
  #设置在内侧的环形生成
  side <- "in";
  
  # 绘图
  RCircos.Heatmap.Plot(RCircos.Heatmap.Data, data.col, track.num, side);

数据格式:

绘制:

4

绘制散点图

代码语言:javascript复制
  # 添加散点图类型的环形 -------------------------------------------------------------
  # 加载数据集
  data(RCircos.Scatter.Data);
  
  # 设置散点纵坐标
  data.col <- 5;
  # 设置图形在第6个环形生成
  track.num <- 6;
  # 设置图形在内侧环形生成
  side <- "in"
  # 设置数据大于1的点以红色显示,小于数据1的点以蓝色显示
  by.fold <- 1;
  
  # 绘图
  RCircos.Scatter.Plot(RCircos.Scatter.Data, data.col,track.num, side, by.fold);

数据格式:

绘制:

5

绘制折线图

代码语言:javascript复制

数据格式:

绘制:

6

绘制直方图

代码语言:javascript复制
  # 添加直方图类型的环形 --------------------------------------------------------------------
  # 加载内数据集
  data(RCircos.Histogram.Data);
  # 设置第4列为绘制数据
  data.col <- 4;
  # 设置在第7环绘制图形
  track.num <- 8;
  # 设置在内环绘制图形
  side <- "in";
  # 绘图
  RCircos.Histogram.Plot(RCircos.Histogram.Data, data.col, track.num, side);

数据格式:

绘图:

7

绘制网络图

代码语言:javascript复制
  # 添加网络图类型的环形 --------------------------------------------------------------------
  # 加载数据集
  data(RCircos.Tile.Data);
  # 设置图形在9环绘制
  track.num <- 9;
  # 设置图形在内环绘制
  side <- "in";
  # 绘图
  RCircos.Tile.Plot(RCircos.Tile.Data, track.num, side);

数据格式:

绘图:

8

添加和弦图

代码语言:javascript复制
  # 添加一个或多个基因间的联系曲线 ----------------------------------------------------------
  # 加载数据集
  data(RCircos.Link.Data);
  # 设置图形在11环绘制
  track.num <- 11;
  # 绘图
  RCircos.Link.Plot(RCircos.Link.Data, track.num, TRUE);

数据格式:

绘图:

导出PDF

点击 Export , 选择Save as PDF

修改导出大小,最好是正方形的,保存

会在根目录发现导出的圈图

0 人点赞