SWAPHI is the first parallel algorithm to accelerate the Smith-Waterman protein database search on Intel Xeon Phi coprocessors (with affine gap penalty and only using Xeon Phis). By searching against the UniProtKB/TrEMBL database (comprising 13,208,986,710 amino acids in 41,451,118 sequences, with the longest sequence of 36,805 amino acids), SWAPHI achieves a performance of up to 58.8 billion cell updates per second (GCUPS) on a single coprocessor and up to 228.4 GCUPS on four coprocessors (B1PRQ-5110P/5120D) sharing the same host. In addition, we also developed its sister program SWAPHI-LS for the alignment of very long sequences on Intel Xeon Phi clusters.

NOTE: please tune the number of threads used according to the configuration of your Xeon Phi device. Typically #threads = 4 * (#processors - 1), but SWAPHI works best at full capacity, i.e. #threads = 4 * #processors through our evaluations.



Other related papers


We have integrated both the database indexing and the alignment subroutines into a single executable binary, and have given two commands, i.e. index and align, for the database indexing and Smith-Waterman alignment against the indexed database, respectively. The following list the parameters for both of the two commands:

Database indexing




Scoring scheme:


Installation and Usage


  1. Modify the "INTEL_DIR" macro in the "Makefile" to point to the correct Intel C++ compiler installation directory.
  2. Modify the "ZLIB_HEADER" macro in the "Makefile" to point to the correct ZLIB installation directory.
  3. Type "make" command to compile the software.

Typical Usage

This software works at two steps:

  1. Build the database indices using the command "swaphi index [options]".
  2. Perform the Smith-Waterman sequence alignment against the indexed database using the command "swaphi align [options]".

Typical command lines:

  1. command line "swaphi"

    Get the command line options

  2. command line "swaphi index"

    Get the database indexing command line options

  3. command line "swaphi align"

    Get the alignment against the indexed database command line options

  4. command line "swaphi index -x 2 -i database.fasta -o outBaseName"

    Build indices for the database for two Intel Xeon Phi coprocessors. The common base name of all index files are "outBaseName".

  5. command line "swaphi align -q query.fasta -d outBaseName -x 2"

    Perform the Smith-Waterman sequence alignment against the indexed database on two Intel Xeon Phi coprocessors.

Change Log


If any questions or improvements, please feel free to contact Liu, Yongchao.