Skip to content

Installation Guide for HyPhy ​

Note: HyPhy is not currently available for Windows.

MP and MPI Versions ​

HyPhy can be built in two main flavors:

  1. Multi-threaded (MP): Requires a compiler that supports OpenMP.
  2. MPI-enabled (MPI): Designed for execution on clusters and requires an MPI-supported build and execution environment (e.g., OpenMPI).

Both multi-threading and MPI environments can significantly improve the performance of HyPhy analyses, especially for common analyses like FEL, MEME, FUBAR, and GARD.

Building from Source ​

To install HyPhy after downloading or cloning the repository, follow these steps:

Dependencies ​

Ensure you have the following dependencies before building from source:

  • CMake (>= 3.12)
  • GCC (>= 4.9)
  • Libraries:
    • libcurl
    • libpthread
    • openmp (Install on macOS using: brew install libomp)

Step 1: Navigate to HyPhy Directory ​

bash
cd hyphy

Step 2: Configure HyPhy Using CMake ​

Run the following command:

bash
cmake .
  • By default, HyPhy will be installed in /usr/local/. To specify a custom installation path, use:

    bash
    cmake -DCMAKE_INSTALL_PREFIX=/location/of/choice .
  • To use a different build system (supported by CMake), such as XCode, configure HyPhy using the generator (-G) option:

    bash
    cmake -G Xcode .
  • If you need to specify a particular C/C++ compiler (must support C++14), use:

    bash
    cmake -DCMAKE_CXX_COMPILER=/path/to/C++-compiler -DCMAKE_C_COMPILER=/path/to/C-compiler .

Step 3: Build HyPhy ​

You can build HyPhy with one of the following commands:

  • To create the HYPHYMP executable:

    bash
    make hyphy

    For faster builds, utilize multiple processors:

    bash
    make -j hyphy
  • To create the HYPHYMPI executable:

    bash
    make MPI

Note on building:

  • hyphy: Builds a HyPhy executable (hyphy) that supports symmetric multiprocessing via OpenMP. If OpenMP is not supported, the executable will be single-threaded. You can check if OpenMP is enabled in the output from CMake.

  • MPI: Builds a HyPhy executable (HYPHYMPI) for parallel execution using the Message Passing Interface (MPI). Ensure that an MPI library (e.g., OpenMPI) is installed and available in your path.

Step 4: Install HyPhy ​

Run the following command to install HyPhy:

bash
make install

HyPhy will be installed either in its default path (/usr/local/) or the custom path specified during the CMake configuration.

  • HYPHYMP(I) will be installed at /location/of/choice/bin.
  • libhyphy_mp will be installed at /location/of/choice/lib.
  • HyPhy's standard library of scripts/batch files will be installed at /location/of/choice/lib/hyphy.

Environment Options ​

To specify the path HyPhy searches for its library sources, you can do one of the following:

  1. Set LIBPATH Argument:

    bash
    hyphy LIBPATH=/usr/local/lib/hyphy
  2. Set Environment Variable:

    bash
    export HYPHY_LIB_PATH=/usr/local/lib/hyphy/
    hyphy

Additional Notes ​

The CMake script will build HyPhy with all available features on the host system (e.g., AVX and AVX-2 instructions). If you plan to execute HyPhy in a heterogeneous cluster environment where not all nodes support these instructions, use the following command to avoid AVX-related issues:

bash
cmake -DNOAVX=ON ./

Benchmarks ​

For benchmarks of common HyPhy methods using mpirun with an escalating number of processors, refer to the link here.

Released under the MIT License.