stephenslab / mashr

An R package for multivariate adaptive shrinkage.
https://stephenslab.github.io/mashr
Other
88 stars 19 forks source link

mashr posterior mean and SD all equal to 0 on sc eQTL results #85

Closed resztak closed 4 years ago

resztak commented 4 years ago

I'm running mash on FastQTL eQTL mapping results (chr10 for simplicity) following the workflow at https://stephenslab.github.io/mashr/articles/intro_mash.html but no matter if I'm using canonical or data-driven covariance matrices (or both), I get all posterior mean and SD equal to 0 (and all local false sign rate = 1). Here's my code and preprocessed input data (removed all lines with any NAs/Inf) for two conditions: http://genome.grid.wayne.edu/SCAIP_mashr_github/

gaow commented 4 years ago

@resztak are the input summary data also zero for betahat and sebetahat values -- could you verify that is not the case?

resztak commented 4 years ago
 > summary(data$Bhat)
    Tcell_CTRL        Tcell_PHA.EtOH
  Min.   :-0.882812   Min.   :-1.0828800
  1st Qu.:-0.072281   1st Qu.:-0.0893518
  Median : 0.003624   Median :-0.0000078
  Mean   : 0.003505   Mean   :-0.0003451
  3rd Qu.: 0.080291   3rd Qu.: 0.0894630
  Max.   : 0.784327   Max.   : 1.0646300
> summary(data$Shat)
    Tcell_CTRL     Tcell_PHA.EtOH
  Min.   :0.1366   Min.   :0.1357
  1st Qu.:0.3099   1st Qu.:0.3250
  Median :0.3624   Median :0.3973
  Mean   :0.3514   Mean   :0.3829
  3rd Qu.:0.4017   3rd Qu.:0.4451
  Max.   :0.6692   Max.   :0.7237
pcarbo commented 4 years ago

@resztak Plotting the z-scores, at first glance it looks very much like "null" data:

load("mashr_chr10_sample_data.Rd")
slopes <- as.matrix(slopes)
SEs    <- as.matrix(SEs)
hist(slopes/SEs,n = 100)
histogram
resztak commented 4 years ago

QQ_Tcell_CTRL_PC1-4 Maybe chr10 is not representative..? This is a QQplot for all tests for one of the conditions in the example. I'll investigate on my end.

rpique commented 4 years ago

@pcarbo I think we may have a problem on how we try to get the SE. fastQTL wasn't providing them, and we calculated them manually, and we may have done something wrong. I will go over this with Justyna.

resztak commented 4 years ago

Okay, so rpique was right - we calculated the SE wrong (it was sqrt of SE instead) :sweat_smile: Now I'm getting mean, sd and lfsr estimates from mash (some significant). Sorry I have bothered you!