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

Plink

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.

CHRSNPBPNMISSBETASER2TP
1Snp_0000118401.0060.042240.403623.823.768e-096

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

CHRSNPBPA1TESTNMISSBETASTATP
1Snp_000011CADD8401.00623.931.386e-096

snpMatrix

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

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

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

ModelY-variableParameterEstimateS.E.z-value
Snp_00001dSnp_000011.0060.04224223.816

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

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

Again, the results agree with those presented before.

ModelY-variableParameterEstimateS.E.z-value
Snp_00001dSnp_000011.00630.04205723.927

FastMap

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