From Rost Lab Open
Revision as of 07:48, 22 April 2014 by Lkajan (talk | contribs) (Building FreeContact: Linux)

Welcome to FreeContact

FreeContact is a protein residue contact predictor optimized for speed. Its input is a multiple sequence alignment. FreeContact can function as an accelerated drop-in for the published contact predictors EVfold-mfDCA of DS. Marks (2011) and PSICOV of D. Jones (2011).

FreeContact is accelerated by a combination of vector instructions, multiple threads, and faster implementation of key parts. Depending on the alignment, 8-fold or higher speedups are possible.

A sufficiently large alignment is required for meaningful results. As a minimum, an alignment with an effective (after-weighting) sequence count bigger than the length of the query sequence should be used. Alignments with tens of thousands of (effective) sequences are considered good input.

jackhmmer(1) from the hmmer package, or hhblits(1) from hhsuite can be used to generate the alignments, for example.

FreeContact in Debian and Derivatives

FreeContact and the Perl and Python modules are available in Debian, and are or will soon be available in derivative operating systems such as Ubuntu, Bio-Linux and CloudBioLinux.



Open source code for FreeContact and its Perl and Python modules is available at

Building FreeContact

On a Linux cluster with Intel compilers

Contributed by João Rodrigues:

I managed to compile freecontact and the python interface correctly (tests passing). I am on a 64-bits cluster with the intel compilers. I tried compiling OpenBLAS and using GCC but ran into many problems while linking.. (undefined symbols). Since we have ICC available, I gave it a try.

I modified the following bits:

Standard C program

lib/freecontact.cpp (Line 23)
//#include <cblas.h>
#include <mkl_cblas.h>

Python Interface
added 'mkl_rt', 'mkl_avx', 'mkl_def' to the libraries variable.

Thank you João!


FreeContact: fast and free software for protein contact prediction from residue co-evolution