circos plot for genomic features
0
0
Entering edit mode
2 hours ago
Matteo Ungaro ▴ 130

Hi there,

I'm working on a Circos visualization of two haplotypes for a human sample.

So, far I could get the basic frame of the plot but I don't understand neither how to add genomic features (genes and other annotations and/or regions of the genome), nor the exact format... from the manual it appears everything should be a BED but genes GFF should be fine provided only the columns with chromosomes and coordinates are retained?

Also, it would be interesting to compare the syntenic regions between the two haplotypes; does this require a specific tool to generate such files plotted as circos.genomicLink; I'm aware SyRI does so but the output is not a standard BED and needs to be heavily edited. Below the code I'm using, thanks in advance!

library(circlize)

h9_1 <- data.frame(chr=c("chr1", "chr2", "chr3", "chr4", "chr5", "chr6", "chr7", "chr8", "chr9", "chr10", "chr11", 
                                        "chr12", "chr13", "chr14", "chr15", "chr16", "chr17", "chr18", "chr19", "chr20", "chr21", "chr22", "chrX"), 
                                  start=c(rep(1, time=23)), 
                                  end=c(250382078, 242438398, 200940782, 193253728, 186212366, 173051588, 161716607, 145465483, 135918162, 134385439, 133922055, 
                                        133376810, 107377685, 102710047, 96346030, 96215701, 86176721, 77553665, 69461520, 66775821, 44404722, 47079544, 155153153))
h9_1[ ,1] = paste0("hap1_", h9_1[, 1])
h9_2 <- data.frame(chr=c("chr1", "chr2", "chr3", "chr4", "chr5", "chr6", "chr7", "chr8", "chr9", "chr10", "chr11", 
                                             "chr12", "chr13", "chr14", "chr15", "chr16", "chr17", "chr18", "chr19", "chr20", "chr21", "chr22", "chrX"), 
                                       start=c(rep(1, time=23)), 
                                       end=c(243198671, 242142825, 202683022, 191171759, 182409348, 172871300, 161232845, 145868755, 135032811, 135648429, 136138868, 
                                             134127282, 112572639, 101767573, 96851046, 87971686, 83829559, 80564282, 61548830, 65603693, 42759301, 48623973, 153704768))
h9_2[ ,1] = paste0("hap2_", h9_2[, 1])
h9_comb <- rbind(h9_1, h9_2)

circos.clear()
circos.par("start.degree" = 90)
chromosome.index = c(paste0("hap1_chr", c(1:22, "X")), 
                     rev(paste0("hap2_chr", c(1:22, "X"))))
#circos.genomicInitialize(h9_comb, plotType = c("axis", "labels"), 
#                         major.by = 200000000, labels.cex = 0.5, chromosome.index = chromosome.index)
circos.initializeWithIdeogram(h9_comb, plotType = c("axis"), chromosome.index = chromosome.index,
                              major.by = 200000000, labels.cex = .5)


circos.track(ylim = c(0, 1), panel.fun = function(x, y) {
  chr = CELL_META$sector.index
  xlim = CELL_META$xlim
  ylim = CELL_META$ylim
  circos.rect(xlim[1], 0, xlim[2], 1, col = "white")
  circos.text(CELL_META$xcenter, CELL_META$ylim[1] + 3 + mm_y(2), 
              gsub("hap[1-2]_", "", CELL_META$sector.index), cex = .5, niceFacing = TRUE)
}, track.height = .05, bg.border = NA)
bed R plot track circos • 36 views
ADD COMMENT

Login before adding your answer.

Traffic: 3560 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6