Matrix eQTL results match those from other software

Agreement with linear regression (lm(), anova()) in R

Matrix eQTL calculations are based on the linear regression model. The following R code samples confirm that for various scenarios and randomly generated data the estimates, statistics, and p-values produced by Matrix eQTL match those produced by the existing linear regression function lm in R. All five test code files are also available via R command:

demo( package="MatrixEQTL" )

Agreement with other eQTL software

The artificial dataset used in performance testing is generated to have a strongly correlated first gene-SNP pair. Both R and Matlab version of Matrix eQTL produce for following results for it:

no covariates10 covariates
Additive modelt = 23.816pv = 3.768e-096 t = 23.927pv = 1.386e-096
ANOVA modelF = 284.479pv = 5.423e-095F = 287.112pv = 2.031e-095


We ran the analysis in Plink with and without covariates. The output file for the first gene (Assoc.txt.P1.qassoc) shows results matching those above.


The output for the model with covariates (Linear.txt.P1.assoc.linear) also agrees with the output of Matrix eQTL.



The analysis with no covariates was performed using the following command in R:

snpMatrix::snp.rhs.estimates( d ~ 1, family = "Gaussian", = snps1 )

The output for the first SNP agrees with the previous results (although the statistic is called z-value, not t-statistic).


The analysis with 10 covariates was performed using a similar command:

snpMatrix::snp.rhs.estimates( d ~ cvrt, family = "Gaussian", = snps1 )

Again, the results agree with those presented before.



Although FastMap does not support covariates, it can estimate both additive and ANOVA models. It output files contain -log10(p-value).

For the additive linear model, the p-value is 10 -95.423908 = 3.76784E-96.

For the ANOVA model, the p-value is 10 -94.265731 = 5.42337E-95.

Other packages

R/qtl and Merlin use other models so I can not directly match their output.

Back to Matrix eQTL page.

By Andrey Shabalin