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.
- FreeContact (command line tool and shared library): http://packages.debian.org/freecontact
- FreeContact for Perl: http://packages.debian.org/libfreecontact-perl
- FreeContact for Python: http://packages.debian.org/python-freecontact
Open source code for FreeContact and its Perl and Python modules is available at ftp://rostlab.org/free/.
On a Mac for a 64-bit 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 setup.py added 'mkl_rt', 'mkl_avx', 'mkl_def' to the libraries variable.
Thank you João!