教你画基因组环形图
背景我们研究一个基因集发表sci时,多想展示这些基因在人基因组上的位置信息。这个时候一个环形图的想法就诞生了,环形图可以在一个狭小的空间内储存较多的信息,散点图、条形图、柱状图等,升级版的还可以画相关性的线。语言描述我大致做到这里,今天教大家的没有这么高级,我们从基础的学起,先画出框架来。"展示这些基因在人基因组上的位置信息"。主要是R语言来实现,下面就放出代码和图。
代码
rm(list = ls())####魔幻操作,一键清空~
getwd()
setwd('/home/xhs/tmp/circos/')
library(RCircos)
# BiocManager::install("RCircos",ask = F,update = F)
# 绘制人染色体圈图 ------------------------------------------------------
# 导入人类染色体数据
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()
#修改图形参数,基因文本大小
params1 <- RCircos.Get.Plot.Parameters()
params1$text.size <- 1
RCircos.Reset.Plot.Parameters(params1)
#绘制基因
# 添加基因名称与连线 -----------------------------------------------------
# 加载数据集
data(RCircos.Gene.Label.Data);
head(RCircos.Gene.Label.Data)#要画的基因数据格式,有192行
#模拟画10个基因吧
#随机取
set.seed(123)
RCircos.Gene.Label.Data <- RCircos.Gene.Label.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) #导出pdf/png
# ?RCircos.Gene.Name.Plot
出图
页:
[1]