% my $url_root = $m->comp("SELF:url_root");
Circos is a software package for visualizing data and information. It visualizes data in a circular layout — this makes Circos ideal for exploring relationships between objects or positions.
Circos is ideally suited for creating publication-quality illustrations and infographics with a high data-to-ink ratio, richly layered data and pleasant symmetries. You, as the designer of the figure, have detailed control over the placement and format of every element in the figure.
Circos is flexible. Although originally designed for visualizing genomic data, it can create figures from data in any field.
Circos can be automated. It is controlled by plain-text configuration files, which makes it easily incorporated into data acquisition, analysis and reporting pipelines (a data pipeline is a multi-step process in which data is analyzed by multiple, typically independent, tools, each feeding their output as the input of the next step).
Creation of images is controlled through a plain-text configuration file — there is no interactive user interface. This approach to configuration should be very famililar to you if you have UNIX experience.
If you're used to pointing (and clicking), you're in for both a surprise and a treat. Maybe initially, also a little bit of frustration. Although Circos' barrier to entry is higher than most applications you may have used, once you become comfortable with Circos and gain experience in its use, you will see benefits from Circos' approach.
Image creation can be wholly automated — you can write scripts to generate both data and configuration file and make a call to Circos to generate the image — making Circos suitable for incorporation into data analysis pipelines and applications. In this way, Circos is similar to gnuplot.
Most aspects of the output image can be adjusted using dynamic rules, which format elements of the figure based on data values. This feature allows a variety of images to be created without changing the input data or configuration file.
This feature is extremely powerful and uniquely suited for visual analytics. For example, for a given data track (e.g. histogram) you can ask that all bins with values > 10 are colored blue. Later in the rule chain, you can ask for any blue bins that fall within a range of positions are hidden.
If you are a researcher, analyst, data geek, art director, illustrator or visual artist who is seeking to explore or communicate a data set, or to think outside the box (and inside a circle), Circos is worth looking into.
My images created with Circos have appeared in a variety of publications. Wired, New York Times, Conde Nast Portfolio, and American Scientist.
In genomics, scientific journals like Science, Nature, PLoS, Genome Research and others have published papers that used Circos images (Circos citations).
Circos can be used to display any kind of information. It's particularly suitable for layering different data sets to create highly informative infographics with texture and visual appeal. Circos can make low-resolution bitmaps, suitable for basic web-based reporting, as well as publication-quality images with a lot of bling.
Circos was initially designed for displaying genomic data (particularly cancer genomics and comparative genomics) and molecular biology. It has /intro/features">specific features that address typical challenges in drawing these kind of data, which tend to be very sparse and encompass a large number of length scales.
Data is data. Circos is flexible. There is nothing about Circos that is specific to genomics — it just happens that I work in genomics and therefore the tool has been applied to this field.
Circos can illustrate genomic rearrangements, where a relationship between two elements (genomic positions) represents a structural fusion. Circos can also visually represent the flow of refugees, where a relationship between two elements (countries) represents the extent of ingress and egress.
To name a few, Circos has been used to visualize customer flow in the auto industry, volume of courier shipments, database schemas, and presidential debates.
My purpose in creating Circos was not as much to create yet another way to draw data, but rather to create a tool which can help make data look beautiful. The compactness of the /intro/circular_approach">circular form is inherently more appealing than a linear layout. Although some figures are ideally suited for a square layout, most of the time a circular figure can match or exceed efficiency in delivering information, have a higher ink-to-data ratio and sit more tightly on the page.
It is easy to plot, format and layer your data with Circos. A large variety of plot and feature parameters are customizable, helping you make the image that best communicates your data. You supply your data to Circos as plain-text files, tell Circos what you want plotted using the configuration file, and then create the image.
How do you know whether Circos can be useful to you? First, look at published images and see what others are doing with Circos (for other images, see /images/samples">sample image archive). For examples of Circos' capabilities, see the tutorial images. These image setse will give you an idea of the types of data visualizations that Circos can create.
For quick exposure to Circos, try the online tableviewer, which is a deployment of Circos designed to visualize tabular data. You can upload a table (e.g. exported from a spreadsheet) and have it drawn a-la-Circos. If you don't have any data (who these days doesn't?), you can choose to use pre-generated or random data.
To learn how Circos can be used in specific applications, browse the /guide">walkthrough guides which spend some time telling you about features and applications, use in genomics and application to table visualization.
To get your feet wet and hands dirty, download Circos and a /tutorials/lessons">read the tutorials.
Circos was originally conceived for visualizing genomic data such as alignments and structural variation. Over time, support was added for 2D data tracks such as line, scatter, heatmap and histogram plots.
As Circos' popularity grew — sparked by a New York Times full-page infographic — it started to be used for visualizing other data, not just genomics.
I work on Circos in a passive-aggressive manner - sometimes passive sometimes aggressive. I welcome your comments.
Visit the Circos forum or contact Martin Krzywinski if you would like to report a bug, request a feature or share the ways in which you are using, or hope to use, Circos.
Circos is free software, licensed under GPL.
Circos is written in Perl, can be deployed on any operating system for which Perl is available (e.g. Windows, Mac OS X, Linux and other UNIX flavours) and produces bitmap (PNG) and vector (SVG) images using plain text configuration and input files.