HyPhy - Hypothesis testing using Phylogenies
HyPhy is an open-source software package for the analysis of genetic sequences using techniques in phylogenetics, molecular evolution, and machine learning. It features a complete graphical user interface (GUI) and a rich scripting language for limitless customization of analyses. Additionally, HyPhy features support for parallel computing environments (via message passing interface (MPI)) and it can be compiled as a shared library and called from other programming environments such as Python and R.
- cmake >= 3.0
- gcc >= 4.9
Hyphy depends on CMake for its build system.
To install, make sure you have CMake >3.0 installed. Hyphy is dependent on other development libraries like libcurl and libpthread. Libcurl requires development libraries such as crypto++ and openssl ( or gnutls depending on your configuration) On Ubuntu these are libcurl-dev, libcrypto++-dev and libssl-dev.
You can download a specific release from this repository or if you prefer the master branch simply clone the repo with
git clone https://github.com/veg/hyphy.git
Change your directory to the newly cloned directory
Configure the project from the source directory using CMake.
If you prefer to use other build systems, such as Xcode, configure using the -G switch
cmake -G Xcode .
CMake supports a number of build system generators, feel free to peruse these and use them if you wish.
By default, HyPhy installs into
but it can be installed on any location of your system
by providing an installation prefix
For example, this configuration will install hyphy at /opt/hyphy
mkdir -p /opt/hyphy
cmake -DINSTALL_PREFIX=/opt/hyphy .
If building on a hetereogenous cluster with some nodes that do not support auto-vectorization
cmake -DNOAVX=ON ..
If you're on a UNIX-compatible system,
and you're comfortable with GNU make,
make with one of the following build targets:
- MAC - build a Mac Carbon application
- HYPHYGTK - HYPHY with GTK
- SP - build a HyPhy executable (HYPHYSP) without multiprocessing
- MP - build a HyPhy executable (HYPHYMP) using pthreads to do multiprocessing
- MPI - build a HyPhy executable (HYPHYMPI) using MPI to do multiprocessing
- HYPHYMPI - build a HyPhy executable (HYPHYMPI) using openMPI
- LIB - build a HyPhy library (libhyphy_mp) using pthreads to do multiprocessing
- GTEST - build HyPhy's gtest testing executable (HYPHYGTEST)
For example to create a MPI build of HYPHY using openMPI ensure that you
have openmpi installed and available on your path. You can check if this
is the case after running
cmake . you should see something similar to this in your output
-- Found MPI_C: /opt/scyld/openmpi/1.6.3/gnu/lib/libmpi.so;/usr/lib64/libibverbs.so;/usr/lib64/libdat.so;/usr/lib64/librt.so;/usr/lib64/libnsl.so;/usr/lib64/libutil.so;/usr/lib64/libm.so;/usr/lib64/libtorque.so;/usr/lib64/libm.so;/usr/lib64/libnuma.so;/usr/lib64/librt.so;/usr/lib64/libnsl.so;/usr/lib64/libutil.so;/usr/lib64/libm.so
-- Found MPI_CXX: /opt/scyld/openmpi/1.6.3/gnu/lib/libmpi_cxx.so;/opt/scyld/openmpi/1.6.3/gnu/lib/libmpi.so;/usr/lib64/libibverbs.so;/usr/lib64/libdat.so;/usr/lib64/librt.so;/usr/lib64/libnsl.so;/usr/lib64/libutil.so;/usr/lib64/libm.so;/usr/lib64/libtorque.so;/usr/lib64/libm.so;/usr/lib64/libnuma.so;/usr/lib64/librt.so;/usr/lib64/libnsl.so;/usr/lib64/libutil.so;/usr/lib64/libm.so
And then run make install to install the software
- HYPHYMP(I) will be installed at
- libhyphy_mp.(so/dylib/dll) will be installed at
- HyPhy's standard library of batchfiles will go into
HYPHYGTEST isn't installed normally, because it serves no utility outside of testing.
To test HyPhy, build with the GTEST target and run ./HYPHYGTEST from the source directory.