Use the latest version of Circos and read Circos best practices—these list recent important changes and identify sources of common problems.
If you are having trouble, post your issue to the Circos Google Group and include all files and detailed error logs. Please do not email me directly unless it is urgent—you are much more likely to receive a timely reply from the group.
Don't know what question to ask? Read Points of View: Visualizing Biological Data by Bang Wong, myself and invited authors from the Points of View series.
In the previous tutorial, I showed how to adjust the magnification of ideograms. There, you learned how to make an ideogram twice as large (or twice as small), as others.
However, sometimes it is useful to change the size of an ideogram in an image so that it fills a given fraction of the image. The first example image shows the full human and mouse genome, and the second image limits the display to human chromosomes 1, 2, 3 and mouse chromosomes 14-19. In this image human chromosome occupies about 20% of the image.
Now suppose you want to change the scale of human chromosome so that it fills exactly a quarter of the image (25%). You could compute the required magnification by requiring that
scale(hs1) * size(hs1) / size(all displayed ideograms) = 0.25
But there is a simpler way,
chromosomes_scale = hs1:0.25r
By using the
r suffix on scale, you indicate that the scale is relative to the circumference of the ideogram circle.
By using a regular expression you can adjust the scale of multiple ideograms. When this is combined with relative scale, you can make each ideogram have the same size on the image, regardless of its physical size.
For example, this will make each of the 6 mouse chromosomes on the image each occupy 10% of the image.
chromosomes_scale = /mm/:0.1r
You can mix relative and absolute scales, but be careful that your relative scales don't add up to more than 1.0. For example,
chromosomes_scale = hs1:0.75r;hs2:0.75r
will have a strange effect because you've asked that two ideograms each occupy 3/4 of the image. Circos doesn't check the sanity of your scale expressions.
Now suppose you wanted all the mouse chromosomes to occupy 50% of the image, as a group. You could to this by calculating the required relative scale for each (e.g. 0.5/6 = 0.0833)
chromosomes_scale = /mm/:0.0833r
But there's a better way. By using the
n suffix, you indicate that the fraction of the image should be divided evenly by the number of ideograms that match the regular expression. Thus,
chromosomes_scale = /mm/:0.5rn
scales all ideograms matching
/mm/ to occupy, as a group, 50% of the image.
Note that in this method each ideogram has the same size in the image.
Consider the image in which three genomes are shown (human, mouse, rat). The following limits the rat and mouse chromosomes to 1/4 of the image, regardless how many ideograms from these genomes are shown.
chromosomes_color = /hs/:green;/mm/:red;/rn/:blue chromosomes_scale = /mm/:0.25rn;/rn/:0.25rn
Note that in this method each rat and mouse ideogram has the same size in the image.