Giter Site home page Giter Site logo

s-andrews / redotable Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 1.0 397 KB

A dotplot application for DNA/RNA sequence

License: GNU General Public License v3.0

Java 87.14% C# 4.59% Perl 4.21% HTML 4.06%
visualization sequence-to-sequence sequence-alignment genome-sequencing desktop-application

redotable's Introduction

Redotable logo

Re-dot-able is a dot-plotting application allowing for the visual comparisons of two sets of sequences. It can work interactively, functioning as a desktop application, or can be run as a command line tool.

Redotable screenshot

We developed this initially to allow for the comparison of assembled bacterial sequences with reference genomes, but it can be applied to any comparison which involves large sequences.

Installation

You can download binary distributions of redotable from the project site at:

www.bioinformatics.babraham.ac.uk/projects/redotable/

Windows

You will need to install the Oracle Java Runtime Environemnt from java.com

Once you have this installed you can download the redotable zip file from the project web site, and uncompress it somewhere on your machine.

To start the program just double click on re-dot-able.exe.

OSX

To allow redotable to run on OSX you will need to install the Oracle Java Development Kit which you should be able to get from here

Once that is installed you can download the redotable DMG file from the project web page. If you double click on this it will open as a virtual disk and you will see the redotable application icon. To install the program simply drag this icon out of the redotable virtual disk to a location on your computer (for example your Applications folder). You can then run the program by double clicking on the application.

Linux

You will need a full java runtime environment installed on the machine you want to run redotable on. Some distributions will install this by default, others install a cut-down version which can't run graphical applications.

To install a full JRE you can use:

Ubuntu / Debian sudo apt install default-jre

CentOS / Redhat sudo yum install java-1.8.0-openjdk

Once this is done you can download and uncompress the windows/linux zip file from the project web page.

You can then launch the program by using the redotable launch script in the root folder of the installation.

If you want to add this script to a folder in your path so you can launch the program from anywhere on your system then you will need to do this by creating a symlink to the launch script, not by copying it.

For example if you installed redotable into /opt/redotable, then to put the program into your path you would do:

sudo ln -s /opt/redotable/redotable /usr/local/bin/

redotable's People

Contributors

s-andrews avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

inambioinfo

redotable's Issues

Improve zoom behaviour

Our behaviour when zooming is not ideal. Specifically the cases below aren't handled well.

  1. When we remove a sequence we rescale to show the remainder, but when we add it back it can display offscreen and require a zoom out operation to become visible.

  2. If we are zoomed in on a sequence region and we hide a sequence in another part of the view it can shift the view we are looking at, even though the region we were looking at hasn't changed.

Some things which would be nice to help with this.

  1. Making it obvious when we are zoomed in rather than looking at the whole plot.

  2. Having a separate mode for when we aren't zoomed in so that we always display everything

  3. Changing how we store zoom conditions. We could either store percentiles of the current view, or we could store anchor positions within specific sequences.

Feature Request: Outputting Alignment Coordinates

Dear Simon,

Thank you for developing this useful tool. I find it particularly valuable for visualizing alignments of highly repetitive sequences and their mutational patterns, such as those in centromeres. Given the challenges posed by the highly repetitive nature of such sequences, traditional alignment tools like minimap2, mummer, or the recently developed Unialigner may not perform optimally. However, the word-based alignment strategy employed by redotable appears to address this issue effectively.

While the current version of redotable lacks the ability to display specific coordinate positions of a diagonal line, I'm wondering if it's feasible to include a feature that allows the software to output alignment coordinates.

Best regards,
Xiao

Add project saving/loading

We should be able to save the full state of the project including:

  1. Sequences
    2, Ordering
  2. Hiding/Revcomp etc.
  3. Display preferences

Add sequence saving

We should have options to:

  1. Ignore hidden sequences
  2. Respect revcomp settings
  3. Concatenate into a single sequence, adding N blocks if required.

Improve numbering when zoomed in

When we zoom in on a plot the axis scale still uses the increment of the whole range. We should make it use the visible range instead so we get sensible graduations of values.

One alignment segment wrongly oriented

In our test data when we rearrange the contigs one of the sequences ends up oriented the wrong way around. We should find out why and fix it. It's a pretty obviously wrong answer.

"Could not find Java" with openJDK

Hi,

I have OpenJDK 14.0.2.12 installed in Windows 10, however when I try to start the .exe there is the error message that it can't find Java on my System. Other Java programs seem to work, do I need to set an additonal env variable or something? I have JAVA_HOME set. Or can I start redotable on the command line as a workaround?

Cheers

Add help

A proper help manual would be nice...

java.lang.OutOfMemoryError: Java heap space

Hi,

I am using redotable for visualizing the alignment between two sharks.
After calling redotable, I open the files but I get the following error:

(base) admin_bi@GSYMK2:/media/admin_bi/DATA/Files_Esther/redotable_v1.1$ ./redotable
CLASSPATH is : /media/admin_bi/DATA/Files_Esther/redotable_v1.1
Memory ceiling is 5120
Raw physical memory is 31977
Correcting for VM actual requested allocation for 5120 is 5120
Command is: java -Xmx2048m -Xmx5120m uk.ac.babraham.redotable.RedotableApplication
Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
at uk.ac.babraham.redotable.utilities.ByteVector.makeLonger(ByteVector.java:96)
at uk.ac.babraham.redotable.utilities.ByteVector.add(ByteVector.java:44)
at uk.ac.babraham.redotable.datatypes.Sequence.addSequence(Sequence.java:82)
at uk.ac.babraham.redotable.datatypes.SequenceCollection.addSequence(SequenceCollection.java:156)
at uk.ac.babraham.redotable.parsers.SequenceParser.run(SequenceParser.java:74)
at java.base/java.lang.Thread.run(Thread.java:829)

Is there a way to pass more memory into redotable?

Kind regards,
Esther

Add sequence names and properties

We should be able to see the overall sequence names in the main view. Maybe the sub-names as an option (possibly only for y sequences?).

We should have an expanded view where we can see all of the details (maybe the sequence properties suffices)?

Add non-interactive mode

We should be able to add enough information on the command line to make this work non-interactively.

Auto-arrange contigs

It would be really nice if we could auto arrange the contigs based on the relationship between the two sets of sequences.

Update redotable for Catalina

Redotable has been hit by the same issue we've seen in other java projects, namely that disk permissions on OSX Catalina mean that it can't read outside of its home directory.

The fix will be to take the launcher and packaging code we developed for seqmonk and apply it to redotable and rebuild the binaries. This will also mean that installation is simpler as we won't need the user to install java. They'll still need to add full disk permissions manually, but there's no way around that without going through the app store.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.