生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

331

主题
发表于 2022-12-29 08:48:25 | 查看: 2992| 回复: 0
背景
       我们研究一个基因集发表sci时,多想展示这些基因在人基因组上的位置信息。这个时候一个环形图的想法就诞生了,环形图可以在一个狭小的空间内储存较多的信息,散点图、条形图、柱状图等,升级版的还可以画相关性的线。语言描述我大致做到这里,今天教大家的没有这么高级,我们从基础的学起,先画出框架来。"展示这些基因在人基因组上的位置信息"。主要是R语言来实现,下面就放出代码和图。
代码
  1. rm(list = ls())  ####  魔幻操作,一键清空~
  2. getwd()
  3. setwd('/home/xhs/tmp/circos/')
  4. library(RCircos)
  5. # BiocManager::install("RCircos",ask = F,update = F)
  6. # 绘制人染色体圈图 ------------------------------------------------------
  7. # 导入人类染色体数据
  8. data(UCSC.HG19.Human.CytoBandIdeogram)

  9. # 设置染色体数据
  10. cyto.info <- UCSC.HG19.Human.CytoBandIdeogram
  11. # 设置不显示的染色体
  12. chr.exclude <- NULL
  13. # 设置内部环形数
  14. tracks.inside <- 10
  15. # 设置外部环形数
  16. tracks.outside <- 0

  17. # 导入上面四个基本参数
  18. RCircos.Set.Core.Components(cyto.info,
  19.                             chr.exclude,tracks.inside, tracks.outside)

  20. # 列出所有绘图参数
  21. RCircos.List.Plot.Parameters()

  22. # 绘制染色体图形,默认方法显示染色体名称。
  23. RCircos.Set.Plot.Area()
  24. RCircos.Chromosome.Ideogram.Plot()
  25. #修改图形参数,基因文本大小
  26. params1 <- RCircos.Get.Plot.Parameters()
  27. params1$text.size <- 1
  28. RCircos.Reset.Plot.Parameters(params1)
  29. #绘制基因
  30. # 添加基因名称与连线 -----------------------------------------------------

  31. # 加载数据集
  32. data(RCircos.Gene.Label.Data);
  33. head(RCircos.Gene.Label.Data)#要画的基因数据格式,有192行
  34. #模拟画10个基因吧
  35. #随机取
  36. set.seed(123)
  37. RCircos.Gene.Label.Data <- RCircos.Gene.Label.Data[sample(1:192,10),]
  38. RCircos.Gene.Label.Data
  39. # 设置在内环绘制
  40. side <- "in";
  41. # 设置在第一内环绘制
  42. track.num <- 1;

  43. # 绘图
  44. RCircos.Gene.Connector.Plot(RCircos.Gene.Label.Data, track.num, side);

  45. # 在染色体上添加基因名称
  46. name.col <- 4;
  47. track.num <- 2;

  48. # 绘图
  49. RCircos.Gene.Name.Plot(RCircos.Gene.Label.Data, name.col,track.num, side) #导出pdf/png
  50. # ?RCircos.Gene.Name.Plot
复制代码

出图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-12-21 22:21 , Processed in 0.072751 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表