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.
The text label track associates a text string with a genomic span. The text is placed radially and, as for scatter plots, positioned with its center line at the middle of the span.
Format of labels data files is analogous to other 2D data tracks
... hs1 225817866 225910748 ZNF678 hs1 26560711 26571853 ZNF683 hs1 40769819 40786426 ZNF684 color=red hs1 149521414 149531004 ZNF687 ...
The fourth field is the text label, with optional format parameters specific to the label defined in the last field.
The basic text track definition is shown below,
<plots> <plot> type = text color = black file = data/6/text.genes.znf.txt r0 = 0.4r r1 = 0.8r show_links = yes link_dims = 4p,4p,8p,4p,4p link_thickness = 2p link_color = red label_size = 24p label_font = condensed padding = 0p rpadding = 0p </plot> </plots>
Like all tracks, text tracks have default parameter values defined in etc/tracks/text.conf
.
label_font = default label_size = 12 color = black r0 = 0.85r r1 = 0.95r show_links = no link_dims = 2p,4p,8p,4p,2p link_thickness = 1p link_color = red padding = 0p rpadding = 0p label_snuggle = no max_snuggle_distance = 1r snuggle_sampling = 1 snuggle_tolerance = 0.25r snuggle_refine = no snuggle_link_overlap_test = no snuggle_link_overlap_tolerance = 2p
Some of these correspond to features covered in other text tutorials.
To undefine a default value set the corresponding parameter to undef
. Undefining values makes sense for other tracks, but you shouldn't have to do this with text.
# undefine color, if you must
color = undef
To turn off all defaults altogether, undefine track_defaults
<<include etc/housekeeping.conf>>
track_defaults* = undef
or to remove defaults just for text tracks you can remove (or move) the file that contains the defaults.
Labels are confined in the annulus of inner radius r0
and outer
radius r1
. If a label cannot be fit within this annulus, it is not drawn.
This will happen if you have a very narrow track definition and large labels.
r0 = 1.05r r1 = 1.1r label_size = 100p
To check whether labels are being placed, run Circos with -debug_group textplace
. Lines that show not_placed
indicates that labels did not fit.
> circos ... -debug_group textplace ... debuggroup textplace 2.06s not_placed hs1 10000 20000 gene1 debuggroup textplace 2.06s not_placed hs1 30000 40000 gene2 ...
To make labels fit, the easiest thing to do is make r1
larger. Here's where a combination of both relative and absolute position is useful.
r0 = 1.05r r1 = 1.05r+300p label_size = 100p
Labels are drawn so that they do not overlap. If a label's position results in overlap with another label, the label is drawn at the same angular position but is radially shifted out. If snuggling is turned on, the label's radial position may be slightly adjusted to reduce the number of layers of text. This is covered in the next tutorial.
The link_dims
parameter specifies the dimensions of the lines that
link the label to its genomic position. Because labels may be shifted
(snuggling, covered in next tutorial), these link lines are
necessary. Each link line has five dimensions: outer padding, outer
line length (drawn at new position), connecting line length (connects
old to new position), inner line length (drawn at old position) and inner
padding. If snuggling is not used, then distinction between line
lengths is not made.
At the moment, labels can only be oriented outwards — their link lines point into the circle and the labels are left-aligned at the track radius.
You can choose to not rotate the labels by setting
label_rotate=no
(by default, the labels will be rotated to have their
baseline oriented radially). The non-rotated option works best when
labels are very short (e.g. one character).
<plot> ... label_rotate = no </plot>
By setting the label radius to r0 = 1r
, labels are drawn at the
position of ticks. Remember that a relative radius of 1r
is at the
outer ideogram radius.
<plot> ... r0 = 1r r1 = 1r+200p show_links = yes link_dims = 0p,0,50p,0p,10p link_thickness = 2p link_color = red </plot>
You need to adjust the link_dims
so that the link line is long
enough to move the label out of the region of the ticks. Circos does
not check overlap between elements in the label track and scale ticks.