This python code can be used to benchmark or evaluate GWAS algorithms.
If you use this code, please cite:
* C. Widmer, C. Lippert, O. Weissbrod, N. Fusi, C. Kadie, R. Davidson, J. Listgarten, and D. Heckerman, Further Improvements to Linear Mixed Models for Genome-Wide Association Studies, _Scientific Reports_ **4**, 6874, Nov 2014 (doi:10.1038/srep06874).
See this website for related software:
Our documentation (including live examples) is available as ipython notebook:
(To start ipython notebook locally, type `ipython notebook` at the command line.)
This code contains the following modules:
* semisynth_experiments: the core module for generating synthetic phenotypes based on real snps, running different methods for GWAS and evaluating them all within one pipeline
* cluster_data: module to compute and visualize a hierarchical clustering of GWAS data to get an understanding of its structure (population structure, family structure)
* split_data_helper: helper module for splitting SNPs by chromosome
For testing purposes a small data set is provided at `data/mouse` (see the `README` file within that directory for the data license).
An example run to compute type I error rate on the mouse data using 10 causal SNPs can be executed by running `python run_simulation.py`.
We recommend running this example on a cluster computer as this simulation is computationally demanding. An example result plot (of type I error) is provided in the results directory.
Further, we use the ipython-notebook to demonstrate some of the functionality of the hierarchical clustering module:
### Quick install:
If you have pip installed, installation is as easy as:
pip install GWAS_benchmark
### Detailed Package Install Instructions:
fastlmm has the following dependencies:
* scikit.learn (sklearn)
* optional: [statsmodels -- install only required for logistic-based tests, not the standard linear LRT]
#### (1) Installation of dependent packages
We highly recommend using a python distribution such as
or Enthought (https://www.enthought.com/products/epd/free/).
Both these distributions can be used on linux and Windows, are free
for non-commercial use, and optionally include an MKL-compiled distribution
for optimal speed. This is the easiest way to get all the required package
#### (2) Installing from source
Go to the directory where you copied the source code for fastlmm.
At the shell, type:
sudo python setup.py install
At the OS command prompt, type
python setup.py install
### For developers (and also to run regression tests)
When working on the developer version, just set your PYTHONPATH to point to the directory
above the one named GWAS_benchmark in the source code. For e.g. if GWAS_benchmark is
in the [somedir] directory, then in the unix shell use:
Or in the Windows DOS terminal, one can use:
(or use the Windows GUI for env variables).
#### Running regression tests
From the directory tests at the top level, run:
This will run a
series of regression tests, reporting "." for each one that passes, "F" for each
one that does not match up, and "E" for any which produce a run-time error. After
they have all run, you should see the string "............" indicating that they
all passed, or if they did not, something such as "....F...E......", after which
you can see the specific errors.
Note that you must set your PYTHONPATH as described above to run the
regression tests, and not "python setup.py install".
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.