This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Tool: FlexiDot: highly customizable, ambiguity-aware dotplots

We just released the first public version of FlexiDot:

FlexiDot is a cross-platform dotplot suite generating high quality self, pairwise and all-against-all visualizations. To improve dotplot suitability for comparison of consensus and error-prone sequences, FlexiDot harbors routines for strict and relaxed handling of mismatches and ambiguous residues. The custom shading modules facilitate dotplot interpretation and motif identification by adding information on sequence annotations and sequence similarities to the images. Combined with collage-like outputs, FlexiDot supports simultaneous visual screening of a large sequence sets, allowing dotplot use for routine screening.

Some FlexiDot features:

  • handling of error-prone SMRT reads and ambiguity-containing consensus sequences (e.g. derived by alignment or assembly).
  • integration of descriptive information on the analyzed sequences (e.g. gff3-type structural sequence annotation or pairwise identities)
  • similarity shading modes
  • high flexibility for customization and automation
  • output as vector and raster graphics
  • self, pairwise and all-against-all visualizations

See for example this tutorial on adding gff3-type annotation to a dotplot.

More:

Code, examples and documentation on github: http://github.com/molbio-dresden/flexidot

Publication: K. M. Seibt, T. Schmidt, and T. Heitkam (2018) "FlexiDot: Highly customizable, ambiguity-aware dotplots for visual sequence analyses". Bioinformatics, in press, http://doi.org/10.1093/bioinformatics/bty395

(Preprint: Latex version at Overleaf)


FlexiDot all-against-all example

dotplot visualization sequence-analysis

2 answers

New FlexiDot version released:

Annotation-based shading for all-to-all dotplots!

Previously only available for self dotplots, we added annotation-based shading to all-to-all dotplots, allowing for new visualizations. As before, annotation information is provided as general feature file (GFF3). These features are added to the middle diagonal (see our example below).

Code, examples and documentation on github: https://github.com/molbio-dresden/flexidot

FlexiDot all-to-all dotplot

Basic command:

python flexidot.py -i test-seqs.fas -g example2.gff3 -G gff_color.config -p 2

Command plus aesthetics as shown here (+ LCS shading, wordsize 10, change of subplot spacing and line width):

python flexidot.py -i test-seqs.fas -g example2.gff3 -G gff_color.config -p 2 -x y -k 10 -F 0.06 -A 1.5

The example files are available.

Thank you a lot for saying this. It makes us happy, since we also love this tool.

It would be great to have an option to display dotplots according to cartesian coordinate system (i.e., Y axis from bottom to top, rather than from top to bottom).

Thank you for the suggestion! Some tools as e.g. the EMBOSS polydot package handle plots just like you suggested. (And we even actually plotted like this in very early FlexiDot versions, but then changed this, because most use it the other way round.)

I spoke to Kathrin (who is first authoring FlexiDot), if we want to do implement this - and she told me that it is already done! She just couldn't resist. So... we will have to rigorously test that everything behaves well, and then you'll probably get your very own -M (mirror) parameter. ;)

Wow! That's great news. I'm looking forward to it. My best wishes to the entire FlexiDot team.

Thank you very much. This feature is very helpful. I'm already showing FlexiDot to my students.

We just released FlexiDot v1.04!

This is a graphic formatting update introducing two parameters, one of them suggested here. Thank you a.zielezinski for your sharing your thoughts!

As always, code, examples and documentation are on github at https://github.com/molbio-dresden/flexidot!

Mirror:

With -M/--mirror it is now possible to mirror the middle diagonal:

Mirror

Basic commands:

python flexidot.py -i test-seqs.fas -p 2 -M n
python flexidot.py -i test-seqs.fas -p 2 -M y

Command plus aesthetics as shown here (as described in version update 1.03):

python flexidot.py -i test-seqs.fas -p 2 -M n -g example2.gff3 -G gff_color.config -x y -k 10 -F 0.06 -A 1.5
python flexidot.py -i test-seqs.fas -p 2 -M y -g example2.gff3 -G gff_color.config -x y -k 10 -F 0.06 -A 1.5

Representation:

The -R/--representation parameter allows partial dotplotting, either printing the complete -R 0, the top -R 1, or the bottom dotplot -R 2:

enter image description here

Basic commands:

python flexidot.py -i test-seqs.fas -p 2 -R 0
python flexidot.py -i test-seqs.fas -p 2 -R 1
python flexidot.py -i test-seqs.fas -p 2 -R 2

Command plus aesthetics as shown here (as described in version update 1.03):

python flexidot.py -i test-seqs.fas -p 2 -R 0 -g example2.gff3 -G gff_color.config -x y -k 10 -F 0.06 -A 1.5
python flexidot.py -i test-seqs.fas -p 2 -R 1 -g example2.gff3 -G gff_color.config -x y -k 10 -F 0.06 -A 1.5
python flexidot.py -i test-seqs.fas -p 2 -R 2 -g example2.gff3 -G gff_color.config -x y -k 10 -F 0.06 -A 1.5


It is also possible to combine both parameters and to receive all kinds of dimensions... Happy dotplotting!

Log in to answer this question.