Code Monkey home page Code Monkey logo

nickloman / ete Goto Github PK

View Code? Open in Web Editor NEW

This project forked from etetoolkit/ete

0.0 2.0 0.0 31.73 MB

ETE is a Python programming toolkit for building, comparing, annotating, manipulating and visualising trees. It provides both a comprehensive API and a collection of command line tools, including utilities to work with the NCBI taxonomy tree.

Home Page: http://etetoolkit.org

License: GNU General Public License v3.0

Python 99.68% Makefile 0.10% C 0.05% Shell 0.01% HTML 0.16%

ete's Introduction

https://travis-ci.org/jhcepas/ete.svg?branch=master Join the chat at https://gitter.im/jhcepas/ete

The Environment for Tree Exploration (ETE) is a Python programming toolkit that assists in the automated manipulation, analysis and visualization of phylogenetic trees. Clustering trees or any other tree-like data structure are also supported.

ETE is currently developed as a tool for researchers working in phylogenetics and genomics. If you use ETE for a published work, please cite:

Jaime Huerta-Cepas, Joaquín Dopazo and Toni Gabaldón. ETE: a python
Environment for Tree Exploration. BMC Bioinformatics 2010, 11:24.

CURRENT VERSION

Current stable version is ETE v2.3, which supports Python 2 only. Source code is in the following branch: https://github.com/jhcepas/ete/tree/2.3

ETE v3.0 is the development branch and should support Python 2.7 and Python 3.4. Although mostly functional, this version is currently under active development, so problems are still expected. The module name for ETE v3.0 has changed to "ete3", so both versions (ETE v2.3 and ETE v3.0) can co-exist.

CONTRIBUTING

BUGS and FEATURE REQUESTS

The preferred way to report a problem or request/disccuss new features is by opening a new issue at http://github.com/jhcepas/ete/issues. (Please, make sure there is no other issues pointing to the same topic)

PULL REQUESTS (either code or documentation)

Contributions to the main code, unit-tests and documentation are very welcome. ETE's main source code is hosted at http://github.com/jhcepas/ete. There are currently 2 active branches:

  • "2.3" is the latest stable. Only bug fixes are accepted.
  • "master" is the development branch, currently focused on the upcoming version 3.0. Bug fixes, new features, tests and documentation are accepted and highly appreciated.

Getting in touch:

  • There is no mailing list for developers, but you can open a new github issue for discussion or send me an email (jhcepas|gmail.com).
  • There is also chat room for developers:
Join the chat at https://gitter.im/jhcepas/ete

GETTING SUPPORT

  • There is a mailing list providing user support at https://groups.google.com/d/forum/etetoolkit. In order to avoid spam, messages from new users are moderated. Expect some delay until your first message and account is validated.
  • For general questions on how to use ETE in bioinformatic projects, the BioStars community (http://biostars.org) provides an excellent and broader help desk. Please feel free to raise any question there and tag it with the "etetoolkit" label.

MAIN ETE FEATURES

Python support

ETE v3 support python 2.7+ and 3.4+

Supported Tree Formats

Newick (including several sub-types), Extended Newick / New Hampshire Extended (NHX), PhyloXML and NeXML

Tree operations

Trees are loaded as a succession of TreeNode objects connected in a hierarchical way. Each TreeNode instance contains methods to operate with it independently. This is, although the top-most Tree node instance represents the whole tree structure, any child node can be used independently as a subtree instance.

Available (per node) operations include:

  • Iteration over descendant or leaf nodes.
  • Tree traversing: post-order, pre-order, level-order-
  • Search (descendant) nodes by their properties.
  • Root / Unroot
  • Calculate branch-length and topological distances among nodes.
  • Node annotation (add custom features and properties to nodes)
  • Automatic tree pruning
  • Tree structure manipulation (add/remove parent, children, sister nodes, etc.).
  • Newick and extended newick (including annotations) writing
  • shortcuts and checks: "len(Node)", "for leaf in Node", "if node in Tree", etc.
  • comparison and topology distances

Phylogenetic Trees

ETE provides specific methods to load, analyze and manipulate phylogenetic results. Thus, a PhyloTree instance is provided, which extends the standard Tree functionality with phylogenetics related methods. Most notably:

  • Link trees with Multiple Sequence Alignments (MSAs).
  • Automatic detection of species codes within family gene-trees
  • Node monophyly checks.
  • Orthology and paralogy detection based on tree reconciliation or species overlap.
  • Relative dating of speciation and duplication events.
  • Combined visualization of trees and MSA.
  • Duplication aware tree decomposition

Command line tools

ETE 2.3+ provides also a set of command line tools to perform common tasks. Most notably:

  • ete build: allows to build phylogenetic tree using a using a number of predefined built-in gene-tree and species-tree workflows.
  • ete mod: modify tree topologies directly from the command line. Allows rooting, sorting leaves, pruning and more
  • ete annotate: add features to the tree nodes by combining newick and text files.
  • ete view: visualize and generate tree images directly form the command line.
  • ete compare: compare tree topologies based on any node's feature (i.e. name, species name, etc) using the Robinson-Foulds distance and edge compatibility scores, even for trees of different size.
  • ete ncbiquery: query the ncbi taxonomy tree directly from the database.
  • ete generate: generate random trees, mostly for teaching and testing

Tree Visualization

A programmatic tree rendering engine is fully integrated with the Tree objects. It allows to draw trees in both rectangular and circular modes. The aspect of nodes, branches and other tree items are fully configurable and can be dynamically controlled (this is, certain graphical properties of nodes can be linked to internal node values).

http://etetoolkit.org/static/img/gallery/phylomedb_tree.png

http://etetoolkit.org/static/img/gallery/piechart400x400.png

More examples at http://etetoolkit.org/gallery

Trees can also be visualized interactively using a built-in Graphical User Interface (GUI) or exported as PNG images or SVG/PDF vector graphics images.

ete's People

Contributors

alexjironkin avatar fmaguire avatar fransua avatar jerryatmda avatar jhcepas avatar jincao1 avatar nickloman avatar sam-m888 avatar scapella avatar

Watchers

 avatar  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.