large numbers of traits and markers have to be tested for association, efficient matrix multiplication methods can be employed to calculate all test statistics at once, leading to a dramatic reduction in computation time compared to calculating these statistics one-by-one for every pair using traditional methods. Matrix multiplication is a basic mathematical operation which has been purposely studied and optimized for tens of years [@golub1996]. Highly efficient packages, such as **BLAS** (<http://www.netlib.org/blas/>) and **LAPACK** (<http://www.netlib.org/lapack/>), are available for use on generic CPUs, and are indeed employed in most mainstream scientific computing softwares and programming languages, such as Matlab and R. In recent years, Graphics Processor Unit (GPU)-accelerated computing, such as CUDA, has revolutionised scientific calculations that involve repetitive operations in parallel on bulky data, offering even more speedup than the existing CPU-based packages. The first applications of GPU computing in eQTL analysis have already appeared (e.g. [@hemani2014detection]), and more can be expected in the future.

Lastly, for pairs exceeding a pre-defined threshold on the test statistic, a $p$-value can be computed from the corresponding test distribution, and these $p$-values can then be further corrected for multiple testing by common procedures [@shabalin2012matrix; @qi2014].

Co-expression networks and modules
==================================

Co-expression gene networks\[sec-coex\]
