Question: Drawing Chromosome Ideogams With Data
28
gravatar for Yuri
4.1 years ago by
Yuri1.1k
Bethesda, MD
Yuri1.1k wrote:

What software do you use to draw chromosomes with G-banding pattern and plot data alongside each chromosome? I'm interested in different kind of plots - lines, points, bars, etc - and high customization.

I have used coloredChromosomes.pl and chromosomeplot in MATLAB, but there are not enough features. What would you recommend to try?

UPDATE: I need something like this: chromosome plot example

ADD COMMENTlink modified 2.7 years ago by Irsan3.5k • written 4.1 years ago by Yuri1.1k
30
gravatar for Jan Oosting
4.1 years ago by
Jan Oosting650
Leiden, NL
Jan Oosting650 wrote:

The quantsmooth Bioconductor package also has chromosome plotting functionality in the prepareGenomeplot(), paintCytobands() functions

Some Examples Digital Karyogram

Copynumber plots

EDIT: The code for these plots is quite involved, and depends a lot on the genomic data.

The supplementary data for Genome Res. 2007 17: 368-376, doi:10.1101/gr.5686107 contains the data and script to produce the figures for the paper, which also contain some of these ideograms

A quick example leads to the following plot

# prepareGenomePlot example
library(quantsmooth)
# construct genomic positions
CHR<-sample(22,40,replace=TRUE)  # Chromosomes
MapInfo<-lengthChromosome(CHR,"bases")*runif(length(CHR)) # position on chromosome
chrompos<-prepareGenomePlot(data.frame(CHR,MapInfo),paintCytobands = TRUE, organism="hsa")
# Chrompos returns a matrix with the positions of the elements on the plot
# You can use all kinds of base graphics functions to annotate the chromosomes
points(chrompos[,2],chrompos[,1]+0.1,pch="x",col="red")
# Show connection between 3rd and 4th element
segments(chrompos[3,2],chrompos[3,1],chrompos[4,2],chrompos[4,1],col="blue",lwd=2)

PrepareGenomePlot Example

ADD COMMENTlink modified 4.1 years ago • written 4.1 years ago by Jan Oosting650

this looks very promising, can you give the source code for your plots, please?

ADD REPLYlink written 4.1 years ago by Michael Dondrup27k

Looks good. I will explore it further. Thanks a lot, Jan.

ADD REPLYlink written 4.1 years ago by Yuri1.1k

Is it possible that I am missing something? When I use points() command from above, it does not seem to place the points to the correct locations.

ADD REPLYlink written 3.9 years ago by Barjaron40

The position of the points in the example is random, so they will change with any new execution of the script.

ADD REPLYlink written 3.9 years ago by Jan Oosting650

Just a quick note, quantsmooth seems to use ISCN coordinates (with human, at least) so if you are using UCSC or EnsEMBL coordinates you may have to remap to avoid telomeric overruns.

ADD REPLYlink written 2.0 years ago by hurfdurf410
18
gravatar for Michael Dondrup
4.1 years ago by
Bergen
Michael Dondrup27k wrote:

The GenomeGraphs package in Bioconductor allows to draw (human) chromosome ideograms with R. The package can be used to depict genome tracks of coverage, microarray measurements and genes together with the ideograms. See the user guide for an overview of different types of graphics. For the ideogram, the example looks like this (also in the GenomeGraphs paper):

Example

Here is the code that makes something like this (from the user guide):

library(GenomeGraphs)
library(biomaRt)
data("exampleData", package = "GenomeGraphs")
mart <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
minbase <- 180292097
maxbase <- 180492096
genesplus <- makeGeneRegion(start = minbase,
                            end = maxbase, strand = "+", chromosome = "3",
                            biomart = mart)
genesmin <- makeGeneRegion(start = minbase,
                           end = maxbase, strand = "-", chromosome = "3",
                           biomart = mart)
seg <- makeSegmentation(segStart, segEnd,
                        segments, dp = DisplayPars(color = "black",
                                    lwd = 2, lty = "solid"))
cop <- makeGenericArray(intensity = cn,
                        probeStart = probestart, segmentation = seg,
                        dp = DisplayPars(size = 3, color = "seagreen",
                          type = "dot"))
ideog <- makeIdeogram(chromosome = 3)
expres <- makeGenericArray(intensity = intensity,
                           probeStart = exonProbePos,
                           dp = DisplayPars(color = "darkred",
                             type = "point"))
genomeAxis <- makeGenomeAxis(add53 = TRUE,
                             add35 = TRUE)
gdPlot(list(a = ideog, b = expres, c = cop,
            d = genesplus, e = genomeAxis, f = genesmin),
       minBase = minbase, maxBase = maxbase,
       labelCex = 2)

Edit: It supports multiple ideograms in one plot like this:

 ideog <- makeIdeogram(chromosome = 1)
 ideog2 <- makeIdeogram(chromosome = 2)
 ideog3 <- makeIdeogram(chromosome = 3)
 ideog4 <- makeIdeogram(chromosome = 4)
 gdPlot(list("1"= ideog, "2" = ideog2, "3" =ideog3, "4"=ideog4 ), 
 minBase = minbase, maxBase = maxbase)

If you plot data below the chromosomes using a base track, take care of the minbase, maxbase parameters because the chromosomes have different length!

ADD COMMENTlink modified 4.1 years ago • written 4.1 years ago by Michael Dondrup27k
1

Hi,

It wouldn't work for me initially, so I had to edit the following lines:

seg <- makeSegmentation(segStart[[1]], segEnd[[1]],
                        segments[[1]], dp = DisplayPars(color = "black",
                        lwd = 2, lty = "solid"))                                  
cop <- makeGenericArray(intensity = cn, trackOverlay=seg,
                        probeStart = probestart, 
                        dp = DisplayPars(size = 3, color = "seagreen",
                        type = "dot"))

/sean

ADD REPLYlink modified 17 months ago • written 17 months ago by sean.d.hooper10

Thanks. Do you know if it supports multiple chromosomes?

ADD REPLYlink written 4.1 years ago by Yuri1.1k

I second the use of GenomeGraphs. It should support as many chromosomes (and other features) as you like. The figure shown is composed of several "tracks", rendered in the order given by the code. All you would need to do is add more makeIdeogram() lines, with the code to plot the data under each one.

ADD REPLYlink written 4.1 years ago by Neilfws41k

Although it can plot multiple chromosomes, you can specify only one genomic region with minBase/maxBase. So the same region is selected on all chromosomes. Also all chromosomes plotted with the same size and I didn't find a way to change it. So I don't think it's appropriate package. Anyway it will be useful for other cases, thank you.

ADD REPLYlink written 4.1 years ago by Yuri1.1k

I see the downside and I never used this option before, actually it came to my mind that the graphics you show in the Qu. is most likely made by putting together individual images in a graphics program. I don't want to recommend to do this manually but if you are e.g. writing an article or a book this might look much more professional than any automatic result.

ADD REPLYlink written 4.1 years ago by Michael Dondrup27k

One approach might be to generate a PNG for each chromosome, then stitch the PNGs together with e.g. imagemagick: "convert -append *.png all.png". But that won't solve the chromosome size problem.

ADD REPLYlink written 4.1 years ago by Neilfws41k

Another way would be to hack a bit in the gdPlot code in GenomeGraphs. GenomeGraphs uses the Grid package for plotting, so it would be possible to change it a bit to support multiple gdPlots in one graphics window, but that would need some (of possibly my ) time ;)

ADD REPLYlink written 4.1 years ago by Michael Dondrup27k

what about non-model organisms? (not yet in ensembl)

ADD REPLYlink written 2.6 years ago by Yannick Wurm1.8k

they won't work. In GenomeGraphs that only works for human, in ggplot it works with genomes that have a cytogenic bands track, e.g. human, mouse. and not if there is no such information e.g. c. elegans.

ADD REPLYlink written 18 months ago by Michael Dondrup27k

arg thats a pity - thanks

ADD REPLYlink written 17 months ago by Yannick Wurm1.8k
10
gravatar for Jeremy Leipzig
4.1 years ago by
Philadelphia, PA
Jeremy Leipzig12k wrote:

Circos is very popular these days http://mkweb.bcgsc.ca/circos/

ADD COMMENTlink written 4.1 years ago by Jeremy Leipzig12k

I heard about Circos, it's very interesting. Thanks. Had some trouble with GD library while installing it on Mac, but will try again. Anyway, I need a classical plot for now.

ADD REPLYlink written 4.1 years ago by Yuri1.1k

My Vote goes to Circos as well. Quite painless to install on Ubuntu / Redhat. Will try to install on Mac / XP next. I do find the tutorials a little hard to catch BUT they are extensive!

ADD REPLYlink written 2.2 years ago by Kevin440
6
gravatar for Pierre Lindenbaum
4.1 years ago by
France
Pierre Lindenbaum58k wrote:

I found this bookmark in my del.icio.us

"Idiographica: a general-purpose web application to build idiograms on-demand for human, mouse and rat"

doi:10.1093/bioinformatics/btm455

http://www.ncrna.org/idiographica/

idiographica

There is also gff2ps

Or you can use the custom tracks in the UCSC genome Browser.

ADD COMMENTlink written 4.1 years ago by Pierre Lindenbaum58k

Thanks, Pierre. But none of these will work for me. I need all (or several) chromosomes, so cannot use GB style. Ideographica is the closest, but you can only annotate some genomic locations (cannot show variable data).

ADD REPLYlink written 4.1 years ago by Yuri1.1k

Pierre, Yuri : have you tried Ideographica ? I have submitted input files a couple of times over the last week. But I didn't get any reply from the server #fail. Thanks Pierre for the gff2ps and UCSC suggestion.

ADD REPLYlink written 4.0 years ago by Khader Shameer14k
5
gravatar for Maximilian Haeussler
2.4 years ago by
UCSC
Maximilian Haeussler790 wrote:

This is exactly what UCSC genome graphs does: http://genome.ucsc.edu/cgi-bin/hgGenome

ADD COMMENTlink written 2.4 years ago by Maximilian Haeussler790

@maximilianh: Thanks! Sounds interesting. But i couldn't find any examples of the graphs. Do you know any?

ADD REPLYlink written 2.4 years ago by Yuri1.1k

Click import, select "known genes". Click OK. Select "known genes" from drop down menu and play around with the settings.

ADD REPLYlink written 2.4 years ago by Maximilian Haeussler790
4
gravatar for Irsan
18 months ago by
Irsan3.5k
Amsterdam
Irsan3.5k wrote:

One more for people comfortable with R/BioC and looking for ways to plot various kinds of genomic data is ggbio. It extends the popular and powerful ggplot2 package from Hadley Wickham. It is highly flexible, integrates well with common Bioconductor objects like Granges, GenomicFeaures and has a great tutorial to get you started

ADD COMMENTlink modified 18 months ago • written 18 months ago by Irsan3.5k
2
gravatar for Fred Fleche
4.1 years ago by
Fred Fleche3.7k
Paris, France
Fred Fleche3.7k wrote:

You can try Flash GViewer. [?]I found it so nice that I tried to do a SVG version of it but not enough spare time to finish it.[?]

ADD COMMENTlink written 4.1 years ago by Fred Fleche3.7k

Thank you, I didn't know about it. Still it does not do what I need and I think Flash will have memory problems with a lot of points.

ADD REPLYlink written 4.1 years ago by Yuri1.1k
0
gravatar for Peri4N
2.4 years ago by
Peri4N1.2k
German
Peri4N1.2k wrote:

I am currently working on a project to visualize chromosomes.

Features:

  1. annotate features with a very high resolution (up to nucleotide sized)
  2. features are near in the sequence are near in the plot
  3. exchangeable colormappings

I wonder if anyone sees an application?

Chromosome 12

ADD COMMENTlink modified 2.4 years ago • written 2.4 years ago by Peri4N1.2k

it's interesting, but can you explain more what's going on?

ADD REPLYlink written 2.2 years ago by brentp17k

I think there is not enough space here but in short: We draw genomic features mapped to a hilbert curve.

ADD REPLYlink written 2.2 years ago by Peri4N1.2k
0
gravatar for Nima
2.1 years ago by
Nima0
Nima0 wrote:

Dear all, I would like to plot ideogram of zebrafish or stickleback. I tried some of your suggestions here. But they are mainly in human. Do you have any other suggestions? Regards, Nima

ADD COMMENTlink written 2.1 years ago by Nima0
1

Nima - please post this as a new question.

ADD REPLYlink written 2.1 years ago by Casey Bergman15k
Please log in to add an answer.

Help
Access
  • RSS
  • Stats
  • API

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.0.0
Traffic: 533 users visited in the last hour