Given some genomic data in a well-known format (e.g. GFF) with gene models, what tool(s) do you use to visualize that data. What tools allow you to add your own tracks of data easily? I'm interested in both desktop and web-based tools--with preference to those that are customizable via some kind of API.
I like the Broad's IGV: http://www.broadinstitute.org/igv/ for genome browsing. It handles lots of common data formats, including SAM/BAM files if you're dealing with NGS-scale datasets. Apparently you can talk to it it via http, but you can't say anything very complicated: http://www.broadinstitute.org/igv/PortCommands
A bit different from the linear browsers listed above is the genome visualization tool circos. It can plot a wide range of different data types onto the radially displayed chromosomes. Everything can be customized and is quite easy to use.
It's interesting to see votes for the IGV; I've looked at it only recently and it does look very promising as a desktop viewer.
I'm a long-time user of the Generic Genome Browser, a Bioperl-based web application. It is extremely customizable and can act as both DAS server and client. Be prepared to spend quite a bit of time "munging" your GFF files into shape and working on the config file to get the desired results.
I've recently tried GenomeGraphs, an R Bioconductor package. It fetches annotations from Ensembl and plots them as tracks. It's a good way to overlay quantitative data onto genomic features: here is a sample plot.
I'm using the well-known UCSC Genome Browser http://genome.ucsc.edu/goldenPath/help/customTrack.html
I also wrote an experimental implementation of Jan Aerts' LocusTree based on BerkeleyDB (see http://plindenbaum.blogspot.com/2009/11/java-implementation-of-jan-aerts.html )
There's was a great review paper on genome visualization in Nature Methods last year: Visualizing genomes: techniques and challenges, by CB Nielsen, et al. It's part of a whole supplement on visualizing biological data.
also genometools wraps cairo to allow simple drawing of regions: here's the image from their home page. And they have bindings to a variety of scripting languages.
I would vote for IGB (Integrated Genome Browser). It can handle a large number of tracks and large genome scale data sets. It is highly configurable and very fast. You can also talk to it via some ports . I sometimes generate excel files with hyperlinks that make IGB jump to specific locations, which can be really useful. So you can have an excel sheet with a list of genes which you can click in one window and IGB jumps to that gene.
Another great feature is the ability to do data manipulation, such as merging tracks using logic, to get overlapping or unique features. You can also do things like log2 transformations.
Another one I found today: GView: https://www.gview.ca/wiki/GView/WebHome
GView is a java package used to display and navigate bacterial genomes. GView is useful for producing high-quality genome maps for use in publications and websites, or used as a visualization tool in a sequence annotation pipeline. Users can interact with the genome using a powerful pan-and-zoom interface, or GView can write static images of a genome to a file. GView can draw a genome using either circular or linear layouts, with additional layout types planned for future release.
I'll put in a plug for Genboree, which my lab develops. It's essentially a genome browser with personalized databases/wikis, access control, and integration with Galaxy. It can import UCSC tracks and you can add any data that maps to genomic coordinates. It also has a REST API that's fairly new.
Since I do a lot of copy-number work, I also do quite a bit of sanity-check visualization with R, often just using simple tweaks of the plot command, but sometimes pulling in packages to help.
Broad Institute's Integrative Genomics Viewer (IGV) will be my first choice, some other tools also to look at..
mVISTA software: Genome Alignment (AVID) and visualization (VISTA) programs.
GeneViTo is a JAVA-based computer application that serves as a workbench for genome-wide analysis through visual interaction.
BioViews: Java-Based Tools for Genomic Data Visualization
I like Argo from Broad Institute much more than IGV. It works well for visualizing and manually annotating whole genomes and it's reasonably fast. It can run standalone or as an applet/webstart (it's written in Java and distributed as a single jar file).
I'll throw another name into the ring - I've recently been using SeqMonk for some of this type of stuff: http://www.bioinformatics.bbsrc.ac.uk/projects/seqmonk/README.txt. I like its capabilities for doing quantitation over user-defined probes along your genome. There's lots of flexibility there for starting an exploratory enrichment-type analysis of your data.
Wow, there are lots of options to do this! One that hasn't been mentioned is the Ensembl Genome Browser. The positive would be the ability to compare your gene models to Ensembl annotation along the genome. For example, in this view.
Click 'Manage your data' at the left. Either upload a GFF file to Ensembl using the 'Upload data' option at the left of the menu, or use 'Attach URL' to attach your file without uploading it to Ensembl. In both cases, you will be able to view your gene models along the genome, and turn on or off other data tracks.
If you need any help with this option, give it a try or ask our helpdesk to guide you. helpdesk [at] ensembl [dot] org
Very late to join the party but here is an example of an API only viewer in R;
It is called genoplotR and its production/publication ready graphics can be generated within R. It is highly tunable.
Just a random example below;
There is one tool called Artemis which is developed by Sanger institute.
and one more tools called SeqVista
Hope this will help you.
One more via: https://twitter.com/klmr/status/227780333981028352
Another option is D3 Genome Browser (d3gb.usal.es). It supports the most popular genomic formats and you can easily add tracks with a single command in R or Python.
It is a multi-platform software for quick and in-browser visualization of genomic data and it is available as an R package, a Python module and a WordPress plugin.