Giter Site home page Giter Site logo

tahirinadia / doublerecviz Goto Github PK

View Code? Open in Web Editor NEW

This project forked from udes-cobius/doublerecviz

0.0 1.0 0.0 21.61 MB

DoubleRecViz is a tool for visualizing and editing double reconciliations between phylogenetic trees at three levels: transcript, gene and species.

Home Page: https://doublerecviz.cobius.usherbrooke.ca/

Python 61.11% OpenEdge ABL 23.69% C++ 14.92% Makefile 0.28%

doublerecviz's Introduction

DoubleRecViz

DoubleRecViz is a tool for visualizing double reconciliations between phylogenetic trees at three levels: transcript, gene and species. It displays reconciled gene trees embedded in species trees and reconciled transcript trees embedded in gene trees, with annotations on the nodes of the trees corresponding to the underlying co-evolutionary events.

Esaie Kuitche, Yanchun Qi, Nadia Tahiri, Jack Parmer, Aïda Ouangraoua

Requirements

The program requires the following to be available

  • Plotly and Dash libraries
  • Python (2.7 and +)
  • ETE3
  • cStringIO if you use python2.7 or just IO if you use python3

A procedure for the installation of requirements can be found in file "Installation.txt".

Usage

python treeVisualisation.py

Input files

DoubleRecViz makes use of the doubleRecPhyloXML and recTransTreeXML grammars which are extensions of the recPhyloXML and recGeneTreeXML grammars inherited from phyloXML and designed to describe reconciled gene-species tree reconciliations (see https://github.com/WandrilleD/recPhyloXML/tree/master/xsd for a detailed description of the recPhyloXML and recGeneTreeXML grammars). A detailed description of the doubleRecPhyloXML and recTransTreeXML grammars can be found in https://doublerecviz.cobius.usherbrooke.ca/manual.html and in the "XSD" directory.

DoubleRecViz takes as input one the following types of object:

  • a doubleRecPhylo object containing 1 species tree (spTree object) followed by 1 to n sets such that each set is composed of 1 reconciled gene tree (recGeneTree object) followed by 0 to n reconciled transcript trees (recTranscriptTree object).

  • a recPhylo object containing 1 species tree (spTree object) followed by 1 to n reconciled gene trees (recGeneTree object)

  • a recPhylo object containing 1 gene tree (gnTree object) followed by 1 to n reconciled transcript trees (recTransTree object)

Examples input file data (doubleRecPhylo objects for a transcript-gene-species tree reconciliation, and recPhylo objects for a transcript-gene tree reconciliations and gene-species tree reconciliations) can be found in the "testData" directory.

Output

The reconciled trees are displayed in the browser.

Generation of test data from sequence data

Utility scripts to compute additional input data from real transcript sequence data of a gene family are provided in the "testData" directory. The script requires as parameter the name of a directory containing (1) a transcript sequence file at Fasta format, (2) a file indicating the correspondance between each transcript and its gene name, (3) a file indicating the correspondance between each gene and its species name, (4) a species tree at the Newick format. An input gene tree can also be provided optionnaly. The script first computes transcripts trees and gene trees using the TreeBest software (https://github.com/Ensembl/treebest) with different options (best and phyml), and then computes all transcript-gene and gene-species reconciliations, and store them in a doubleRecPhyloXML file. The locations of output files generated at each step are displayed on the standard output.

To run the script, the TreeBest software (https://github.com/Ensembl/treebest) must be installed.

Examples of command to generate input data from transcript sequence data:

python testData/generate_test_data.py testData/realData/ENSGT00390000015814

Conversion between the NHX and doubleRecPhyloXML formats

Utility scripts for conversion between the NHX and doubleRecPhyloXML formats are also provided in the "convertFormat" directory. Use -h option when running the scripts to display the description.

Examples of commands to convert from NHX to doubleRecPhyloXML:

python convertFormat/NHXtoDoubleRecPhyloXML.py -t double -s testData/realData/ENSGT00390000015814/Trees/ENSGT00390000015814_pruned_speciestree.nw -rgt testData/realData/ENSGT00390000015814_double.nhx 
python convertFormat/NHXtoDoubleRecPhyloXML.py -t genespecies -s testData/realData/ENSGT00390000015814/Trees/ENSGT00390000015814_pruned_speciestree.nw -rg testData/realData/ENSGT00390000015814_genespecies.nhx 
python convertFormat/NHXtoDoubleRecPhyloXML.py -t transcriptgene -g testData/realData/ENSGT00390000015814/Trees/ENSGT00390000015814_genetree_init.nw -rt testData/realData/ENSGT00390000015814_transcriptgene.nhx

doublerecviz's People

Contributors

aidayo avatar esaiekuitche avatar yanchuncobius avatar

Watchers

 avatar

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.