Timothée Flutre edited this page Apr 16, 2018 · 48 revisions


The eQtlBma package implements Bayesian statistical methods to detect eQTLs jointly in multiple subgroups (e.g. tissues). Key features are to borrow information across subgroups, to explicitly model heterogeneity (qualitatively and quantitatively), and to borrow information across genes to estimate hyper-parameters from the data ("empirical Bayes"). Before using the package, you can have a quick look at the manual.


  • The statistical framework was developed by Xiaoquan (William) Wen in his PhD thesis with Matthew Stephens at the University of Chicago.
  • The article by Flutre et al (PLoS Genetics, 2013) applied this framework on a multiple-tissue eQTL data set. It assumed at most one eQTL per gene, but also used the hierarchical model borrowing information across genes, thereby allowing to estimate the amount of eQTL sharing between subgroups.
  • See the article by Wen & Stephens (Annals of Applied Statistics, 2014) for details on the computations of the Bayes factor as well as applications on GWAS meta-analysis (mesh software) and multi-population eQTL study (assuming at most one eQTL per gene).
  • See the article by Wen (Biometrics, 2014) for the model which still jointly analyzes several subgroups, but also allows for multiple eQTLs per gene (sbams software).


You can retrieve the code of the eQtlBma package by:


On a recent GNU/Linux operating system, it should be straightforward to install the package. For Mac OS X, refer also to these installation instructions.

Note that, most importantly, the package requires ZLIB >= v1.2.6 as well as the GSL <= 1.16 or >= 2.3 (the versions in between are not supported).

First, you always start with tar -xzvf eqtlbma-V.v.tar.gz; cd eqtlbma-V.v. Then, starting with version 1.3, you may have to launch the following commands: autoreconf --install --force --symlink in order to add build files specific to your system. And then, you can launch the usual commands: ./configure; make; make check; sudo make install (more details below).

If you have any trouble while doing this, it's likely not due to the package itself. Indeed, it uses the GNU Build System (Autotools) in order to be portable. Therefore, any error may rather be due to the fact that your system has versions of the Autotools that are a bit too old. For instance, installing eQtlBma works with GCC version >= 4.7, Autoconf version >= 2.69, Automake >= 1.13.1, Libtool >= 2.4.2 and Texinfo >= 4.8. Thus you may have to start by upgrading these softwares on your system. If you use a version of eQtlBma < 1.3, see also this patch.

Then, if you still get an error, it's maybe because you didn't provide enough options required for a successful compilation and linking of the code, e.g. when the GSL <= 1.16 or >= 2.3, and/or ZLIB >= v1.2.6, are not found. You can also read the INSTALL file, and look at the tips below:

  • If you don't have administrator rights on the machine, you can install the package in your own home: ./configure --prefix=$HOME.
  • If you installed a new version of ZLIB or GSL in a custom location (e.g. in /usr/local/lib), you can specify it during the installation: ./configure CXXFLAGS="-I$HOME/include" LDFLAGS="-L$HOME/lib -Wl,-rpath -Wl,$HOME/lib".
  • If you want to run all tests successfully with make check, you will need R > 3.2.1, and possibly R >= 3.3.0 (see issue #23).


The compilation and installation of the package should work well on any GNU/Linux system (say, a computer cluster under Red Hat, a laptop under Ubuntu, etc).

Starting with version 1.2.1, the C++ code can be compiled on Mac OS X (tested with version >= 10.6.8), but beforehand you need to install Xcode with gcc >= 4.1.2 and make >= 3.81, as well as all the other packages mentioned above (autoconf, automake, libtool, texinfo, gsl, zlib). These softwares can be installed manually or by using Homebrew. To use the bash scripts, you also need the GNU getopt for Mac OS X (which first requires installing GNU gettext).

The package has not been tested on Windows and we don't plan to do so in the near future, but let us know if you succeed.


Thanks to the GNU Build System, it's easy to access the manual of the package in different ways:

  • directly in a terminal via info eqtlbma (the "info" file is created when running make, and is installed when running make install);
  • by opening doc/manual_eqtlbma.pdf with any pdf viewer (after running make pdf);
  • by opening doc/manual_eqtlbma.html/index.html with any internet browser (after running make html).

The manual has a tutorial (simulating data with R >= 3.0), but doesn't describe the methods in details. Instead, read the articles cited on top.


For anything related to the package, be sure first to read the manual as well as its FAQ. If this doesn't solve your problem, you can add an issue on Github or send a question to the mailing list.


See the NEWS file for more details. Otherwise, the releases are available here.


Please let us know if you want to substantially contribute to the code and fork the repository.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.