ivy: interactive visual phylogenetics
ivy is a Python module for the analysis and exploration of
phylogenetic trees and comparative data, based on IPython, matplotlib,
scipy, and numpy.
Warning
This project is in very early stages of development, and has bugs,
an unstable API, and incomplete documentation. Address questions
to Rick Ree <rree@fieldmuseum.org>.
Motivation
- Phylogenetics and comparative analysis is fun and rewarding.
- Simple and common tasks should be easy, and complex tasks should be
possible.
- Data exploration is aided by interactive visual tools, but data
analysis is better accomplished by scripts that can be reused and
modified.
Objectives
To provide the following components for users:
- A hybrid user interface consisting of
- a magic command prompt providing dynamic autocompletion and
on-the-fly Python programming, and
- interactive visual tools for exploring phylogenetic trees,
data, and comparative methods.
- A clean library API making it easy to create
- custom scripts for data analysis
- custom modules implementing comparative methods and
visualization tools.
- Wrapper modules for additional libraries such as Biopython and
DendroPy, including support for R packages (e.g. diversitree,
geiger, laser, etc.) using RPy.
- Examples and tutorials (e.g., using IPython’s interactive demo
module) for teaching phylogenetics.
Design principles
- Good user interfaces are discoverable, intuitive, and predictable.
- Well-documented and self-documenting code makes learning and
extending an API easier.
- Readable code is better than fast code (most of the time).