Download QTLtools

QTLtools releases available for download:

Version 1.3.1 Description
v1.3.1 (Source code) Major bug fix regarding missing genotypes in cis, correct, gwas, pca, rep, trans, rtc-union. Multiple new modes. Other minor bug fixes and many improvements.
Version 1.2 Description
v1.2 (Source code) The mode quan is not compatible with the previous versions . Updated Eigen library to version 3.3.7. Many bug fixes.
v1.2 (Binary Ubuntu16.04) Compiled binary on Ubuntu16.04/x86_64 using g++ 5.4.0, glibc 2.23, HTSlib 1.9, and R 3.6.1
v1.2 (Binary Ubuntu14.04) Compiled binary on Ubuntu14.04/x86_64 using g++ 4.8.4, glibc 2.19, HTSlib 1.9, and R 3.6.1
v1.2 (Binary Ubuntu12.04) Compiled binary on Ubuntu12.04/x86_64 using g++ 4.6.3, glibc 2.15, HTSlib 1.9, and R 3.6.1
v1.2 (Binary CentOS 7.8) Compiled binary on CentOS7.8/x86_64 using g++ 4.8.5, glibc 2.17, HTSlib 1.9, and R 3.6.1
Version 1.1 Description
v1.1 (Source code) The mode match is now called mbv. Lots of bugs were fixed the following modes: quan, trans, fenrich & fdensity.
v1.1 (Binary Ubuntu16.04) Compiled binary on Ubuntu16.04/x86_64 using g++ 5.4.0 and glibc 2.23
v1.1 (Binary Ubuntu14.04) Compiled binary on Ubuntu14.04/x86_64 using g++ 4.8.4 and glibc 2.19
v1.1 (Binary Ubuntu12.04) Compiled binary on Ubuntu12.04/x86_64 using g++ 4.6.3 and glibc 2.15

Version 1.0 Description
v1.0 (Source code) This is the first stable version of the code.
v1.0 (Binary Ubuntu16.04) Compiled binary of the first stable version of the code on Ubuntu16.04/x86_64 using g++ 5.4.0 and glibc 2.23
v1.0 (Binary Ubuntu14.04) Compiled binary of the first stable version of the code on Ubuntu14.04/x86_64 using g++ 4.8.4 and glibc 2.19
v1.0 (Binary Ubuntu12.04) Compiled binary of the first stable version of the code on Ubuntu12.04/x86_64 using g++ 4.6.3 and glibc 2.15
v1.0 (Binary CentOS6.8) Compiled binary of the first stable version of the code on CentOS6.8/x86_64 using g++ 4.7.2 and glibc 2.12
v1.0 (Binary MacOSx10.11.5) Compiled binary of the first stable version of the code on MacOSX 10.11.5 (El Capitan) using Apple LLVM version 7.3.0 (clang-703.0.31)

Important changes in version 1.3.1

Important changes in version 1.2

For best performance it is highly recommended that you compile from source rather than using the precompiled binaries.

The quan mode in version 1.2 and above is not compatible with the quantifications generated by the previous versions. This due to bug fixes and slight adjustments to the way we quantify. DO NOT MIX QUANTIFICATIONS GENERATED BY EARLIER VERSIONS OF QTLTOOLS WITH QUANTIFICATIONS FROM VERSION 1.2 AND ABOVE AS THIS WILL CREATE A BIAS IN YOUR DATASET.

The Eigen library is upgraded to version 3.3.7. We have observed that this results in the principal components produced by the pca mode to be ever so slightly different from the previous versions. This could also impact any analysis where the --cov option is used, however in our internal testing we have not encountered this issue. Thus for ongoing analyses it is recommended that you do not upgrade your QTLtools version.

Testing if QTLtools runs on your machine

To test if QTLtools can run on your plateform, run:

QTLtools --help

If it does not complain for missing libraries, you're good to go. Otherwise, first check your glibc version by running:

locate libc.so.6

This is going to tell you where is the library. Assuming it is in /lib/x86_64-linux-gnu/, then check glibc version by running:

/lib/x86_64-linux-gnu/libc.so.6

...which gives:

GNU C Library (Ubuntu EGLIBC 2.19-0ubuntu6.9) stable release version 2.19, by Roland McGrath et al.
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
...

Given this, you can then choose the appropriate binary by picking up one based on an older or identical glibc version. If your version of glibc is older than 2.12, it is very likely that you need to recompile QTLtools following the instructions below:

Compiling QTLtools

Please also see Compilation examples

If the provided binaries do not directly work, QTLtools needs to be re-compiled on your platform. For this, you may need to install few standard libraries required by QTLtools if you do not have them already installed. To do so, you need to update the path of the required libraries in the Makefile.


Prerequisites

The development versions of following libraries are required to compile QTLtools (you will also need the static versions of these libraries if you want to create a statically linked binary):

0. C++ compiler

Please make sure that the version of your g++ is above 4.6. To check this, use:

g++ --version

1. The GNU Scientific Library

This library is usually installed by default on most linux platforms, otherwise instructions to install it can be found here. This librry does not need any modification of the Makefile since it is dynamically linked.


2. The Boost C++ library

This collection of C++ libraries is also usually installed by default on most computers. Detailed instructions to install it can be found here. Once installed, you need to edit the Makefile and set the two following variables BOOST_INC and BOOST_LIB correctly.

First, find the file program_options.hpp where you installed the Boost libraries. For this, you can use the find command. Assuming that it is located here: /usr/include/boost/program_options.hpp, you can then set BOOST_INC in the Makefile as follows:

BOOST_INC=/sur/include

Here, do not forget to remove boost/program_options.hpp from the full path.

Then, look for the file libboost_program_options.a. If it is located here: /usr/lib/x86_64-linux-gnu/, set BOOST_LIB as follows:

BOOST_LIB=/usr/lib/x86_64-linux-gnu

3. The standalone Rmath library

This library provided by R contains all basic functions to simulate from standard probability distributions (ex: qnorm, pnorm, rnorm, etc ...). Instructions to install it can be found here. A pre-compiled version can be directly obtained by installing the package r-mathlib on Debian/Ubuntu or libRmath-dev on Fedora/RedHat. Otherwise, proceed as follows:

First download the R source code from here.

Then, move the tgz in the folder where you want to install the library (e.g. $(HOME)/Libraries), and run the following commands:

tar xzvf R-3.2.2.tar.gz
cd R-3.2.2/
./configure
cd src/nmath/standalone/
make

This generates a library file libRmath.a. If the file is located here: /home/me/Libraries/R-3.2.2/src/nmath/standalone/, then set up RMATH_INC and RMATH_LIB as follows:

RMATH_INC=/home/me/Libraries/R-3.2.2/src/include
RMATH_LIB=/home/me/Libraries/R-3.2.2/src/nmath/standalone

4. The HTSlib library

This library written in C allows reading and parsing efficiently VCF, BCF, BAM and BED file. This is used by widely used tools such as samtools or bcftools for example. Download the library from here. Then, move the tgz in the folder you want to install the library and run the following commands:

tar xjvf htslib-1.3.1.tar.bz2
cd htslib-1.3.1/
./configure
make

If you are using HTSlib version 1.4 or above make sure you have the zlib, bzip2, lzma libraries, omit the configuration step (./configure) and type make directly. This will avoid linking in the curl library. Alternatively you can modify the makefile to include this library.

This generates a library file libhts.a. If the file is located here: /home/olivier/Libraries/htslib-1.3.1/, then set up HTSLD_INC and HTSLD_LIB as follows:

HTSLD_INC=/home/olivier/Libraries/htslib-1.3.1
HTSLD_LIB=/home/olivier/Libraries/htslib-1.3.1

5. Compile QTLtools

Once the variables BOOST_INC, BOOST_LIB, RMATH_INC, RMATH_LIB, HTSLD_INC, HTSLD_LIB correctly set up, you should have something like this:

########################################################
# YOU NEED TO UPDATE THESE 6 PATHS TO COMPILE QTLTOOLS #
########################################################
BOOST_INC=/usr/include
BOOST_LIB=/usr/lib/x86_64-linux-gnu
RMATH_INC=/home/me/Libraries/R-3.2.2/src/include
RMATH_LIB=/home/me/Libraries/R-3.2.2/src/nmath/standalone
HTSLD_INC=/home/olivier/Libraries/htslib-1.3.1
HTSLD_LIB=/home/olivier/Libraries/htslib-1.3.1

Then, you can proceed with the compilation using:

make

This will generate the binary ./bin/QTLtools. And you're ready to go!

If you have root privileges, you can install QTLtools with:

make install

This will install the binary, man pages, scripts, and the bash autocomplete script.

If you do not have root privileges, then you can append ./bin/ to your $PATH and ./man/ to your $MANPATH variables.

Thursday 27th August 2020