Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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:
downloading the latest release (
.tar.gz, best solution for most people);
- or downloading the latest version of the "master" branch (
.zip, other branches are also available, but they can be less stable as they contain new, not yet published features);
- or cloning the whole repository (useful mostly if you want to contribute to the code).
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:
- 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
- by opening
doc/manual_eqtlbma.pdfwith any pdf viewer (after running
- by opening
doc/manual_eqtlbma.html/index.htmlwith any internet browser (after running
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.
- Timothée Flutre (University of Chicago, now INRA)
- Xiaoquan Wen (University of Chicago, now University of Michigan)
Please let us know if you want to substantially contribute to the code and fork the repository.