All Projects → genetics-statistics → faster_lmm_d

genetics-statistics / faster_lmm_d

Licence: GPL-3.0 license
A faster lmm for GWAS. Supports GPU backend.

Programming Languages

d
599 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to faster lmm d

Intermine
A powerful open source data warehouse system
Stars: ✭ 195 (+1525%)
Mutual labels:  bioinformatics, genomics
Miniasm
Ultrafast de novo assembly for long noisy reads (though having no consensus step)
Stars: ✭ 216 (+1700%)
Mutual labels:  bioinformatics, genomics
Sequenceserver
Intuitive local web frontend for the BLAST bioinformatics tool
Stars: ✭ 198 (+1550%)
Mutual labels:  bioinformatics, genomics
Ribbon
A genome browser that shows long reads and complex variants better
Stars: ✭ 184 (+1433.33%)
Mutual labels:  bioinformatics, genomics
Canvasxpress
JavaScript VisualizationTools
Stars: ✭ 247 (+1958.33%)
Mutual labels:  bioinformatics, genomics
Genometools
GenomeTools genome analysis system.
Stars: ✭ 186 (+1450%)
Mutual labels:  bioinformatics, genomics
Bedops
🔬 BEDOPS: high-performance genomic feature operations
Stars: ✭ 215 (+1691.67%)
Mutual labels:  bioinformatics, genomics
Roary
Rapid large-scale prokaryote pan genome analysis
Stars: ✭ 176 (+1366.67%)
Mutual labels:  bioinformatics, genomics
Biopython
Official git repository for Biopython (originally converted from CVS)
Stars: ✭ 2,936 (+24366.67%)
Mutual labels:  bioinformatics, genomics
Cyvcf2
cython + htslib == fast VCF and BCF processing
Stars: ✭ 243 (+1925%)
Mutual labels:  bioinformatics, genomics
Janggu
Deep learning infrastructure for bioinformatics
Stars: ✭ 174 (+1350%)
Mutual labels:  bioinformatics, genomics
qmplot
A Python package for creating high-quality manhattan and Q-Q plots from GWAS results.
Stars: ✭ 25 (+108.33%)
Mutual labels:  gwas, gwas-tools
Deep Rules
Ten Quick Tips for Deep Learning in Biology
Stars: ✭ 179 (+1391.67%)
Mutual labels:  bioinformatics, genomics
Deepvariant
DeepVariant is an analysis pipeline that uses a deep neural network to call genetic variants from next-generation DNA sequencing data.
Stars: ✭ 2,404 (+19933.33%)
Mutual labels:  bioinformatics, genomics
Wgsim
Reads simulator
Stars: ✭ 178 (+1383.33%)
Mutual labels:  bioinformatics, genomics
Minigraph
Proof-of-concept seq-to-graph mapper and graph generator
Stars: ✭ 206 (+1616.67%)
Mutual labels:  bioinformatics, genomics
Awesome Bioinformatics Benchmarks
A curated list of bioinformatics bench-marking papers and resources.
Stars: ✭ 142 (+1083.33%)
Mutual labels:  bioinformatics, genomics
Goleft
goleft is a collection of bioinformatics tools distributed under MIT license in a single static binary
Stars: ✭ 175 (+1358.33%)
Mutual labels:  bioinformatics, genomics
Bowtie
An ultrafast memory-efficient short read aligner
Stars: ✭ 221 (+1741.67%)
Mutual labels:  bioinformatics, genomics
Hap.py
Haplotype VCF comparison tools
Stars: ✭ 249 (+1975%)
Mutual labels:  bioinformatics, genomics

Faster_lmm_d

Build Status

A faster lmm for GWAS. It has multi-core and GPU support.

NOTICE: this software is under active development. YMMV.

Introduction

Faster_lmm_d is a lightweight linear mixed-model solver for use in genome-wide association studies (GWAS). The original is similar to FaST-LMM (an algorithm by Lippert et al.) and that code base can be found here. Prof. Karl Broman wrote a comparison with his R/lmmlite. Faster_lmm_d and pylmm are part of the Genenetwork2 project. faster_lmm_d can parse data in R/qtl2 format as input.

GPU Support

Faster_lmm_d has two GPU backends:

CUDA backend which helps it directly interact with CUBLAS libraries and runs only on Nvidia Hardware. For CUDA backend, Faster_LMM_D uses cuda_d (The D bindings I wrote for CUDA libraries).

ArrayFire backend which helps it run on all major GPU vendors(Nvidia, Intel, AMD) by calling CUDA, CuBLAS, OpenCL, clBLAS libraries using the ArrayFire library. For ArrayFire backend, Faster_LMM_D uses arrayfire-d (The D bindings I wrote for ArrayFire library).

Install

Requirements

faster_lmm_d is written in the fast D language and requires a D compiler. At the moment we also use openblas (>0.2.19), lapacke, gsl and a bunch of D libraries that are installed with the dub tool.

  • ldc D compiler for LLVM >= 1.10.0
  • dub >= 1.7.0

On Debian/Ubuntu

Install

sudo apt-get install libopenblas liblapacke libgsl2 gfortran

Install LDC

sudo apt-get install ldc2

On GNU Guix

guix package -i ldc dub openblas gsl lapack ld-wrapper gcc glibc

Get the source

Get the source-code

git clone https://github.com/prasunanand/faster_lmm_d
cd faster_lmm_d

Fetch dependencies using the dub tool (on a non-CUDA system you may get errors which can be ignored). Currently the versions are fixated, see the Makefile.

dub

and compile

CPU Backend:

make

CUDA Backend:

make CUDA=1

ARRAYFIRE Backend:

make ARRAYFIRE=1

or in the case of GNU Guix (because dub does not honour the LIBRARY_PATH):

export LIBRARY_PATH=~/.guix-profile/lib
env LD_LIBRARY_PATH=$LIBRARY_PATH dub --compiler=ldc2

Usage example

./faster_lmm_d --control=data/genenetwork/BXD.json --pheno=data/genenetwork/104617_at.json --geno=data/genenetwork/BXD.csv --cmd=rqtl

Testing

To run tests

time ./run_tests.sh

If you get an error (on GNU Guix)

./build/faster_lmm_d: error while loading shared libraries: libgsl.so.19: cannot open shared object file: No such file or directory

try

time env LD_LIBRARY_PATH=$LIBRARY_PATH ./run_tests.sh

Performance Profiling

Install google-perftools and graphviz

sudo apt-get install google-perftools libgoogle-perftools-dev graphviz

Install go and then install google-pprof.

go get github.com/google/pprof

To profile uncomment out the code import gperftools_d.profiler;, ProfilerStart() and ProfilerStop() in the main function in source/faster_lmm_d/app.d.

make run-gperf

Useful links:

Poster on Faster Linear Mixed Models (LMM) for online GWAS omics analysis​ at Complex Trait Community Conference 2017, Memphis, Tennessee, USA.

LICENSE

This software is distributed under the GPL3 license.

Copyright © 2016 - 2018, Prasun Anand and Pjotr Prins

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].