Code Monkey home page Code Monkey logo

trifusion's Introduction

TriFusion

Making life easier for phylogenomic data gathering, processing and visualization

Website: http://odiogosilva.github.io/TriFusion/

๐Ÿ“ข ANNOUNCING: TriFusion 1.0.0 is live! ๐ŸŽ‰ ๐ŸŽˆ

Build Status Documentation Status Codacy Badge codecov PyPI PyPI AUR Join the chat at https://gitter.im/TriFusion-dev/Lobby DOI

What is TriFusion?

TriFusion is a modern GUI and command line application designed to make the life of anyone with proteome and/or alignment sequence data easier and more pleasurable. Regardless of your experience in bioinformatics, TriFusion is easy to use and offers a wide array of powerfull features to help you deal with your data. At the same time, it was developed to handle the enormous amount of data that is generated nowadays.

TriFusion is an open source, cross-platform application written in Python 2.7 and using the Kivy framework to build the graphical interface.

What can TriFusion do for you?

Here is an overview of what it can do for you across its three main modules.

Orthology - Search and explore orthologs across proteomes

  • Searches for ortholog sequences across multiple species.
  • Filters ortholog sequences according to the gene copy number and/or number of taxa present.
  • Graphical visualization of ortholog data.
  • Exports your orthologs as protein or nucleotide sequences.

Find out more

Process - Blazing fast processing of alignment files

  • Conversion or concatenation of alignment files into several popular formats (check supported formats).
  • Collapse identical sequences into the same haplotype.
  • Create consensus sequences for each alignment with several options on how to handle sequence variation.
  • Filter either alignments (according to whether they contain or exclude certain taxa, to a minimum proportion of taxa, and/or variable sites) or alignment columns (according to codon position, missing data and gaps).
  • Code indel patterns of your alignments into a binary matrix that is appended to the alignment.
  • Revert concatenated alignments or export sub-regions into individual files
  • Set gene and codon partitions as well as substitution models (Nexus format)
  • Create file/taxa groups to quickly perform operations on different sets of data.
  • It's fast and memory efficient. Converting 3,093 files with 376 taxa can be performed in just 30 seconds and using less than 90Mb of RAM memory (check the benchmarks table).

Find out more

Statistics - Effortless visual exploration of your data

  • Provides instant information on overall and per gene summary statistcs.
  • TriFusion offers dozens of graphical and statistical options to explore your data:
    • General information plots.
    • Polymorphism and sequence variation plots.
    • Missing data plots.
    • Outlier plots.
  • Publication ready figures

Find out more

Installation

Executables binaries (GUI version only)

The latest stable release of TriFusion can be installed as a standalone application using one of the following installers. This only includes the GUI component of TriFusion. If you also want the command line version, see Installation from source.

Linux

MacOS

Windows

Note for Windows 8.x and 10 users:

Executing the TriFusion installer may generate a warning from SmartScreen. To continue with the installation, click the "More info" label and then "Run anyway".

Installation from source

TriFusion is on PyPi and can be easily installed with pip.

# Install locally, without sudo permissions, using the --user flag
pip install trifusion --user

Note that TriFusion is a python2 application, so make sure that your pip is from the correct python version. If python3 is the default installation on your machine, you may need to run pip2 instead.

By itself, this command will only install the command line version of TriFusion. If you want to install the complete TriFusion package with the GUI libraries, follow these instructions according to your operating system.


If you are unconvinced that a terminal version would be useful/pratical, check out how easy and fast it is to use TriFusion to process 614 Fasta alignments into phylip and nexus output formats :-):

How to use

Tutorials on how to use TriFusion for its many tasks can be perused here.

Documentation

You can download TriFusion User Guide here.

Citation

When using OrthoMCL to find ortholog clusters, please cite the original software:

Fischer, S., Brunk, B. P., Chen, F., Gao, X., Harb, O. S., Iodice, J. B., Shanmugam, D., Roos, D. S. and Stoeckert, C. J. Using OrthoMCL to Assign Proteins to OrthoMCL-DB Groups or to Cluster Proteomes Into New Ortholog Groups Current Protocols in Bioinformatics. 2011 35:6.12.1-6.12.19.

We're working on a manuscript for TriFusion now.

trifusion's People

Contributors

fernandoblalves avatar gitter-badger avatar odiogosilva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trifusion's Issues

Add collapse method to AlignmentList

The AlignmentList object is missing a wrapper for the collapse method of the Alignment object. This would be important, since AlignmentList is intended to have as much functionality of the Alignment object as possible to perform downstream procedures.

Check reverse concatenation

The current implementation of reverse complementation lacks a checking step that ensures the length of the alignment and of the partition matches

overing popups

Overing popups might be helpful for certain options of the app, for example when setting sequence filter options in the "process menu". Overing popups in the file/taxa names (when larger than the their buttons) are also useful.

unselect app menu

The side menu could be unselected by clicking somewhere else in the app, instead of just in the side menu button.

Improve substitution model handling

The handling of substitution models in TriFusion could be improved, probably by creating an appropriate class that contains the substitution models for popular softwares such as PhyML, RAxML, MrBayes, etc. This can be simple in RAxML, where only the name of the model needs to be specified, but in cases such as MrBayes where models are specified using certain commands it is a bit more complex. Nevertheless, when creating a Nexus file, the user should be able to select a model and that model should be written in the nexus file.

In case the user wants to concatenate between dozens and thousands of files, specifying a model to each partition individually will not be possible. Therefore, perhaps there should be an option to provide a file mapping the partitions to their models or some other batch method to link partitions to their substitution models?

Inconsistency in Taxa/File popup

The popup generated for taxa and file buttons in the side panel should use the same attributes and methods of all other popups in the app, in order to gain consistency.

Automatic recognition of concatenated file

For nexus files, it would be possible to automatically recognize if the file is concatenated or not. This would have impact on the informative popup of the file and on some options of the process screen

Personalized checking dialogs

All check dialogs contain the same labeled text. I could be nice to personalize the text to the action that is being checked.

Operation queue issues

There is a bug where the output file does not show when main operation is concatenation.

Another suggestion is to move the information of additional output files from secondary operations to the output files.

Operation queue visualization

The opening of the treeview with the operations queue is not consistent. The tree should remain open, perhaps only for the active modules

Prevent process execution without input data

A common mistake may be to execute operations in Process without providing input data, which currently crashes the app. A warning dialogue should be presented instead, perhaps with a button redirecting to the input data file chooser.

File popup title

For files with large names, the title of the File informative popup tries to wrap the text instead of truncating it, creating a badly formated popup

Static active toggle buttons

Toggle buttons in the action bar, side bar and side menus that belong to specific groups should become static when active, that is, they should not toggle again when their state is down.

Taxa order in taxa group creation

As of now, there is no specific order of appearance for taxa buttons in the taxa group creation popup. Also, when moving taxa between the "selected taxa" and "all taxa" list, the original order is not maintained. Ideally, taxa should be ordered alphabetically and this order should be preserved when moving taxa buttons.

Clear options

Add possibility to clear all options from Process screen and reset them to the default values

Add keybindings

For certain actions such as open files, find/search, etc, provide keybindings.

merge loaded_screens and available_screens

available_screens is a list with the paths to the .kv files, and loaded_screens is a dictionary containing the paths to .kv files as a key and a respective None as value is the screen has never been loaded, or a screen object with the last state of that screen. These attributes may be merged to reduce the attribute load.

Better Taxa/File popups

One of the main requirements of the Taxa/File informative popups, is that the relevant text can be selected and copied, which is why the first implementation was a CodeInput widget. However, both CodeInput and TextInput lack formatting capabilities that would be usefull when presenting the data. An alternative would be to create a popup with a mix of Label and TextInput widgets, so that the descriptive text would be formatted in Labels and the informative text would be in TextInput fields.

Zorro support

Add support for concatenation of zorro files along with their respective alignments

Mexus format

In the output format popup (process menu) there is a typo where Nexus is written "Mexus".

Allow definition and selection of taxa groups

Users should be able to define multiple taxa groups that can be used for different operations. This could be done in one of the menus in the side panel. Also, in addition to manually select groups, users can also provide text files that map taxa to groups

Add taxa group button not working

The button in the second slide of the taxa panel encharged of opening the taxa group creation dialog is not responding. It appears to have something to do witht the scrollview in the third slide.

Side panel scrollview

The size of the scrollview for the files and taxa tabs in the side panel does not update perfectly with the addition of taxa/files buttons

Add dialog for execution button

Clicking the execution button should display a dialog containing information on the operations that will be executed and the number of output files that will be created. It should also display a progression bar and some information at the end stating whether the operations were successfully executed or not.

Reverse concatenation load dialog

The dialog for loading the partition file should be further enhanced with a find field, current directory label and perhaps another label with the currently selected/loaded partition file

Operation queue button

Using the view queue button in Process screen opens the side panel in the correct slide, but does not change the side panel button

Bookmark duplication issue

When adding bookmarks in the input data file chooser, it is possible to add duplicate bookmarks, even though it should not be so. This creates problemas when removing the bookmark button. Bookmark duplication should be prevented.

searching for files in open files menu

When browsing in the open files menu it might be handy to have some type of search like in a File Manager, such as ctrl + f or even by typing the first letter of the desired file. It would be nice if you implement this.

Closing file/taxon popups

Once opened the file/taxon popups can only be closed by clicking somewhere else in the app, however it would be fine to have a classical "close" button.

Close app

Rather than closing with alt + f4 or another keyboard shortcut, you can also add a close button for the app.

History/Schedule panel

Since multiple operations may be specified before executing the program, a panel with the scheduled operations would be helpful.

Drag and Drop input files

It could be worthwhile exploring the possibility of dragging input files to the app window and automatically open them, like when using the file chooser. This would create a workaround of the currently limited ability of kivy's filechooser to select a large number of files

Clear options button issue

Clear options button in the Process screen should not hide the additional options, if they are visible.

Concatenation without output file

Performing a concatenation without specifying an output file should issue a warning instead of trying to write the concatenate alignment in a file name with an empty string

part.File option in Phylip output format

When concatenating files into Phylip format, a part.File with the partitions is always created. However, there should be an option to prevent this behaviour.

Unsuitable charset when concatenating into Nexus format

When concatenating files into nexus format from the GUI app, the charset block will contain the full path of the individual input alignments, which is certainly not ideal since paths can be lengthy and might introduce some illegal characters. Therefore, in cases where the input alignment is provided with the full path, this should be trimmed before writing the charset block.

Handle invalid input files

As of now, providing invalid input files causes the app to crash due to an unhandled exception. Checks for input file validity should be made before creating the Alignment objects and to prevent the app from crashing.

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.