Sunday, 6 May 2012

[circos] Circos v0.60 released - large update

From: Martin <martin
Date: Sat, May 5, 2012 at 11:25 AM
Subject: [circos] Circos v0.60 released - large update
To: Circos <>

I've released v0.60, together with new tutorial and course files.

The online tutorials are still to be updated, in the next few days as
I prepare for the EMBO course in Naples next week, where I will be
teaching Circos.

This is a significant release. There are a large number of changes,
which will change your configuration files slightly, but for the

The primary changes are

- link input data files can now use one line, instead of two, using
the format

chr1 start1 end1 chr2 start2 end2 {options}

- <link> blocks no longer need to be named (e.g. <link mylink> is

- colors can be specified with r,g,b values, as well as names

- rules mechanics have changed: importance is optional (rules will be
evaluated in order of appearance) and multiple 'flow' parameters are
supported (stop, continue, restart, goto). Flow can be triggered on
rule pass, fail or always.

- reference to configuration parameters no longer requires __
$CONF{clunky}__ syntax. You can now use conf(param)

- reference to variables in rules no longer requires _START_ syntax.
You can now use var(start)

- tracks receive default values (see track_defaults in etc/
housekeeping.conf) and etc/tracks for these values.

Many of you asked for more options for text tracks, that allow label
rotation freely. This is experimental at the moment and these
parameters are supported

# label is parallel to circle
label_parallel = yes|no
# label is rotated for legibility
label_rotate = yes|no
# after placement, label can be freely rotated (useful for glyphs)
rotation = DEGREES

Auto layout for tracks and these features don't yet play well. For
glyphs, you should be ok. I will be setting up a tutorial for these


Added image_map_missing_parameter=ignoreparam to allow URL parameter
values with [].

Fixed bug in extend_bin which prevented extend_bin=no from being
correctly interpreted.

Fixed bug in testing z-depth for plots.

Fixed bug with angle_offset.

Links with transparency should now show up correctly in SVG.

Plot axes should now show up correctly in SVG.

Fixed a bug which made reversed chromosome segments created with
chromosomes_breaks show up in an unintuitive order.

Fixed behaviour of offset when drawing slices. This fixed a bug that
made some slice arcs curve the wrong way.

Configuration file syntax __$CONF{a}{b}__ can now be replaced with
conf(a,b). eval() is needed if the conf value is used in an
expression. For example eval(2*conf(a,b)) instead of __2*$CONF{a}{b}__

Wherever you would use a color name, you can now specify colors using
r,g,b or r,g,b,a values. Here 'a' is the alpha channel 0..127

 color = red
 color = 250,50,50

Added -randomcolor, just for fun.

Links can be specified on one line in input data file, instead of two

 chr1 start1 end1 chr2 start2 end2 {options}

<link> blocks no longer need to be named - they now behave like <plot>


Rules are now ordered in two phases. First, all rules with an
'importance' value are placed first, followed by rules that don't have
this parameter, in the order that they appear. For example, if the
following are rules' importance values ("-" means not defined)

 r1 -
 r2 0
 r3 15
 r4 -
 r5 20

the final order will be r5(20),r3(15),r2(0),r1(-),r4(-). Thus, rules
don't need the importance parameter at all, if you're happy with their
order of appearance.

Rule flow has been expanded. The flow parameter can now be one of

 flow = continue {if true|false}
 flow = restart {if true|false}
 flow = stop {if true|false}
 flow = goto TAG {if true|false}

By default, if the condition is not specified, a flow is always
triggered. This replaces the behaviour in which the flow triggered
only when the rule was passed.

 flow = stop          # always stops, regardless of whether rule is
 flow = stop if false # stops if rule is false

The TAG is assigned to a rule with 'tag'

 # define a tag for this rule
 tag = myrule

 # goto the rule with tag=myrule
 flow = goto myrule

You can have multiple flow tags to accomodate different if true/false

 flow = stop if false
 flow = goto otherrule if true

A rule may lack a condition if a flow directive exists. Thus,
shortcircuiting all rules can now be done with

 flow = stop

instead of

 condition = 1
 flow = stop

If you would like to always skip to a rule (e.g. to bypass rules you
don't want)

 flow = goto myrule

A rule or configuration may remove a parameter by setting its value to
'undef'. This is useful to remove default.

 condition = var(value) < 0.5
 fill_color = undef

Added normalized relative scale. Now you can set

 chromosomes_scale = /hs/=0.5rn

to make all /hs/ equally sized and take up 0.5 of the circle.
Previously, you had to do this

  chromosomes_scale = /hs/=0.2083r

assuming that /hs/ matched 24 chromosomes.

All tracks now have default settings, taken from etc/tracks.


For more options, visit this group at

No comments:

Post a Comment

Datanami, Woe be me