Skip to main content

Hybridization detection using phylogenetic invariants

Project description

Build Status Documentation PyPI Badge

HyDe: hybridization detection using phylogenetic invariants

HyDe Preprint:

Blischak, P. D., J. Chifman, A. D. Wolfe, and L. S. Kubatko. 2017. HyDe: a Python package for genome-scale hybridization detection. bioRxiv doi: 10.1101/188037.

Read the Docs

HyDe is a software package that detects hybridization in phylogenomic data sets using phylogenetic invariants. The primary interface for HyDe is a Python module called phyde (Pythonic Hybridization Detection). phyde provides a suite of tools for performing hypothesis tests on triples of taxa to detect hybridization. It also has built in functions to wrap calls to the pure C++ version of HyDe, hyde_cpp. We have provided a Makefile that will compile the hyde_cpp C++ executable and will then install the phyde Python package using the setup.py file. To ensure that the necessary dependencies are available, we suggest using a Python distribution such as Miniconda.

To facilitate analyses using the Python module, three scripts are provided to conduct hybridization detection analyses directly from the command line:

  • run_hyde.py: runs a standard hybridization detection analysis on all triples in all directions. Results are also filtered based on whether there is significant evidence for hybridization.

  • individual_hyde.py: tests each individual within a putative hybrid population using a list of specified triples specified.

  • bootstrap_hyde.py: conducts bootstrap resampling of the individuals within the putative hybrid lineages for each specified triple.

These last two scripts need to be given a three column table of triples (P1, Hybrid, P2) that you wish to test:

sp1 sp2 sp3
sp1 sp3 sp4
sp3 sp4 sp5
.
.
.

You can also use a results file from a previous analysis as a triples file. For example, you can use the filtered results from the run_hyde.py script so that you only run analyses on triples that have significant levels of hybridization. If you only have a few hypotheses that you want to test, then you can also pass a triples file to run_hyde.py and it will only test those hypotheses rather than testing everything.

Multithreaded versions of these scripts are also available (run_hyde_mp.py, individual_hyde_mp.py, and bootstrap_hyde_mp.py). Make sure you have the multiprocess module installed before you use them: pip install multiprocess.

Getting help

If you have questions about running HyDe, please feel free to use the gitter chatroom to get help:

Gitter

If you have a problem while running HyDe and you think it may be a bug, please consider filing an issue:

HyDe Issues

Installation

Requirements:

  • Python 2.7

  • Python Modules:

    • Cython

    • Numpy

    • Scipy

    • Pandas

    • Matplotlib

    • Seaborn

  • C++ compiler (g++ >= v4.8)

# To install dependencies
pip install cython numpy scipy pandas matplotlib seaborn

# Clone HyDe repository from GitHub
git clone https://github.com/pblischak/HyDe.git
cd HyDe

# Compile hyde_cpp using `make`
make

# Now install phyde module
python setup.py install

# Test the installation
make test

The phyde module is also hosted on the Python Package Index (PyPI), and can be installed directly using pip.

# Install from PyPI with pip
pip install phyde

Documentation for analyzing data using HyDe can be found here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phyde-0.3.3.tar.gz (431.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page