Circos > Documentation > Tutorials > Scaling > Combining Scales

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.

8 — Axis Scaling

7. Combining Scales

In this final example, I combine all the scale adjustments discussed in this tutorial section into one image. I've added a histogram plot, in addition to the heat map, that shows the scale across the ideograms. The histogram y-axis is graduated every 0.5 from 0x to 10x. The y-axis labels were added in post-processing (Circos does not know how to do this - yet).

Chromosomes 1, 2 and 3 are displayed, with chromosome 2 split into three ideograms. Two ranges on chromosome 2 are defined 0-100 and 150-), as well as an axis break 40-60Mb. Chromosomes 1 and 3 have a baseline scale of 1x and chromosome 2 has a baseline scale of 2x (first two ideograms) and 0.5x (third ideogram).

Notice how the three ideograms on chromosome two are defined. First, Circos is told to draw two regions 0-100 (ideogram id "a") and 150-) (ideogram id "b"). Scale factors of 2x and 0.5x are then assigned to these ideograms. Finally, an axis break is introduced at 40-60Mb, which breaks the "a" ideogram into two. However, the global scale is still 2x across the two new pieces, which are still internally labeled as "a", and therefore the ideogram label is 2a for both pieces.

At the moment, you cannot define a different global scale for ideograms that contain an axis break. If you needed the same regions drawn, each with a different global scale, you would define them as follows, for example

chromosomes: hs2[a]:0-40;hs2[b]:60-100;hs2[c]:150-)
chromosomes_scale: a:2;b:3;c:0.5

There are several local scale adjustments in this example. On chromosome 1, there are two zoom regions that are smoothed and their smoothing regions overlap. Recall the rule that for a given region the scale factor is taken to be the largest absolute zoom level for any zoom region that overlaps with it. As the smoothing of the 10x and 0.2x regions run into each other, the is a sudden scale shift (marked by red arrot in the vicinity of chr1:140Mb). Currently, scale smoothing is not iterative - there is no additional smoothing applied between adjacent smoothing regions.

On chromosome 2 there is a 5x zoom region at the start of the first ideogram. Its smoothing region runs off the edge of the ideogram.

On chromosome 3 there are two nested zoom regions. The outer region is 0.5x 25-150Mb and the inner region is 10x 72-73Mb. Both are smoothed, but their smoothing does not overlap.

Currently, a region is smoothed by gradually adjusting its scale from that defined in the configuration file to the ideogram's base scale. In the last case, where one region (10x) was nested inside another (0.5x), the inner region is still smoothed between 10x and 1x, the latter being the ideograms' base scale. Keep this in mind when nesting regions.

Finally, a word about tick marks and scale adjustment. Experiment with the tick mark parameters label_separation, tick_separation and min_label_distance_to_edge. If you are going to be significantly expand the scale in some regions, define tick marks with sufficiently small spacing to cover the expanded region in ticks. Set the tick_separation to avoid tick mark crowding in regions with a lower scale.

If you are going to change scale, make sure that this fact is made clear in your figure. You can mark this fact by using highlights or a heatmap. Circos will produce a report of zoom regions as it's drawing the image, and you can use this output to create data files to annotate the figure (you need to run Circos twice — once to generate the file and again to plot it).

...
zoomregion ideogram 1 chr hs2  17000001  18000001 scale  2.82 absolutescale  2.82
zoomregion ideogram 1 chr hs2  18000001  19000001 scale  2.55 absolutescale  2.55
zoomregion ideogram 1 chr hs2  19000001  20000001 scale  2.27 absolutescale  2.27
zoomregion ideogram 1 chr hs2  20000001  40000000 scale  2.00 absolutescale  2.00
zoomregion ideogram 2 chr hs2  59999999  60000001 scale  1.83 absolutescale  1.83
zoomregion ideogram 2 chr hs2  60000001  61000001 scale  1.75 absolutescale  1.75
zoomregion ideogram 2 chr hs2  61000001  62000001 scale  1.67 absolutescale  1.67
zoomregion ideogram 2 chr hs2  62000001  63000001 scale  1.58 absolutescale  1.58
zoomregion ideogram 2 chr hs2  63000001  64000001 scale  1.50 absolutescale  1.50
zoomregion ideogram 2 chr hs2  64000001  65000001 scale  1.42 absolutescale  1.42
zoomregion ideogram 2 chr hs2  65000001  66000001 scale  1.33 absolutescale  1.33
zoomregion ideogram 2 chr hs2  66000001  67000001 scale  1.25 absolutescale  1.25
...

The absolute scale is max(scale,1/scale).