使用RCircos软件包绘制基因组数据

时间:2018-11-12 20:50:02

标签: r circos

我正在尝试使用R中的RCircos包来可视化基因组位置之间的链接。我不熟悉此软件包,自2016年以来一直在使用CRAN存储库中提供的软件包文档。

我试图根据包装要求格式化数据。看起来像这样:

> head(pts3)
  Chromosome ChromStart ChromEnd Chromosome.1 ChromStart.1 ChromEnd.1
1       chr1         33       34         chr1          216        217
2       chr1         33       34         chr1          789        790
3       chr1         33       34         chr1         1716       1717
4       chr1         33       34         chr1         1902       1903
5       chr1         33       34         chr2         2538       2539
6       chr1         33       34         chr2         4278       4279

最终,我想制作一个图,其轨迹从ChromStart到ChromStart.1,每个基因都沿图的外部标记。我以为脚本看起来像这样:

RCircos.Set.Core.Components(cyto.info = pts3,
                        chr.exclude = NULL,
                        tracks.inside = 1,
                        tracks.outside = 2)
RCircos.Set.Plot.Area()
RCircos.Chromosome.Ideogram.Plot()
RCircos.Link.Plot(link.data = pts3,
                track.num = 3,
                by.chromosome = FALSE)

看来,要这样做,我首先必须使用RCircos.Set.Core.Components()函数进行初始化,该函数需要将每个基因的位置信息传递给RCircos.Chromosome.Ideogram.Plot()。因此,我创建了第二个数据框,其中包含传递给函数的所需信息,这是我得到的错误:

> head(genes)
  Chromosome ChromStart ChromEnd GeneName Band Stain
1       chr1          0     2342      PB2   NA    NA
2       chr2       2343     4683      PB1   NA    NA
3       chr3       4684     6917       PA   NA    NA
4       chr4       6918     8710       HA   NA    NA
5       chr5       8711    10276       NP   NA    NA
6       chr6      10277    11735       NA   NA    NA
> RCircos.Set.Core.Components(cyto.info = genes,
+                             chr.exclude = NULL,
+                             tracks.inside = 1,
+                             tracks.outside = 2)
Error in RCircos.Validate.Cyto.Info(cyto.info, chr.exclude) : 
  Cytoband start should be 0.

我实际上没有Band或Stain列的数据,也不了解它们的用途,但是将数据添加到这些列(例如1:8或chr1,chr2等)并不能解决问题。根据另一个论坛的建议,我还尝试使用以下功能重置RCircos的绘图参数,但无法解决该错误:

core.chrom <- data.frame("Chromosome" = c("chr1", "chr2", "chr3", "chr4", "chr5", "chr6", "chr7", "chr8"),
                         "ChromStart" = c(0, 2343, 4684, 6918, 8711, 10277, 11736, 12763),
                         "ChromEnd" = c(2342, 4683, 6917, 8710, 10276, 11735, 12762, 13666),
                         "startLoc" = c(0, 2343, 4684, 6918, 8711, 10277, 11736, 12763),
                         "endLoc" = c(2342, 4683, 6917, 8710, 10276, 11735, 12762, 13666),
                         "Band" = NA,
                         "Stain" = NA)
RCircos.Reset.Plot.Ideogram(chrom.ideo = core.chrom)

任何建议将不胜感激!

2 个答案:

答案 0 :(得分:0)

RCircos.Set.Core.Components()的初始化不需要任何基因信息。只需创建一个包含“染色体,ChrStart,CrEnd,带和污点”的data.frame就足够了。带和污点不一定要填充。由于您的染色体不是从0开始的事实而出现您的错误。我的意思是这样的:

  Chromosome ChromStart ChromEnd Band Stain
1       chr1          0     2342 
2       chr2          0     2341
3       chr3          0     2234
4       chr4          0     1793
5       chr5          0     1566
6       chr6          0     1459

(我希望我计算正确)。到目前为止,您的链接数据“ pts3”看起来不错。如果可视化效果未正确显示,则可能必须在RCircos::RCircos.Get.Plot.Parameters()中更改某些参数,例如base.per.unit

答案 1 :(得分:0)

我不确定您是否想出了这个或继续前进等等。我遇到了同样的问题,最终通过将每个染色体的起始位置重新设置为0而不是以前的chr来解决了这个问题。对您而言,它将是:

  Chromosome ChromStart ChromEnd GeneName Band Stain
1       chr1          0     2342      PB2   NA    NA
2       chr2          0     2340      PB1   NA    NA
3       chr3          0     2233       PA   NA    NA

...etc