Test for association between a set of SNPS/genes and continuous or binary outcomes by including variant characteristic information and using (weighted) score statistics.
Note:
# Install MiSTr from CRAN:
install.packages("MiSTr")
# Or the the development version from GitHub:
# install.packages("remotes")
remotes::install_github("mcanouil/MiSTr")
library(MiSTr)
data(mist_data)
attach(mist_data)
#> The following objects are masked from mist_data (pos = 3):
#>
#> genotypes, phenotypes, variants_info
res <- mist(
y = phenotypes[, "y_taupi"],
X = phenotypes[, paste0("x_cov", 0:2)],
G = genotypes,
Z = variants_info[, 1, drop = FALSE]
)
#> [MiSTr] "y" seems to be "continuous", model is set to "continuous"!
#> [MiSTr] Linear regression is ongoing ...
str(res)
#> List of 2
#> $ estimate :'data.frame': 1 obs. of 8 variables:
#> ..$ SubClusters : chr "1"
#> ..$ term.pi.hat : chr "Mcluster1"
#> ..$ estimate.pi.hat : num 0.248
#> ..$ std.error.pi.hat: num 0.321
#> ..$ statistic.pi.hat: num 0.774
#> ..$ p.value.pi.hat : num 0.441
#> ..$ conf.low.pi.hat : num -0.389
#> ..$ conf.high.pi.hat: num 0.885
#> $ statistics:'data.frame': 1 obs. of 5 variables:
#> ..$ S.pi : num 0.601
#> ..$ p.value.S.pi : num 0.438
#> ..$ S.tau : num 1006
#> ..$ p.value.S.tau : num 0.0111
#> ..$ p.value.overall: num 0.0307
#> - attr(*, "class")= chr "mist"
print(res)
#>
#> MiSTr: Mixed effects Score Test
#> -------------------------------
#>
#> - (Raw) Estimates:
#>
#> SubClusters term.pi.hat estimate.pi.hat std.error.pi.hat statistic.pi.hat p.value.pi.hat conf.low.pi.hat conf.high.pi.hat
#> 1 1 Mcluster1 0.248 0.321 0.774 0.441 -0.389 0.885
#>
#> - Statistics:
#>
#> + Overall effect:
#> * P-value = 0.0307
#> + PI (mean effect):
#> * Score = 0.601
#> * P-value = 0.438
#> + TAU (heterogeneous effect):
#> * Score = 1006.125
#> * P-value = 0.0111
res <- mist(
y = phenotypes[, "y_binary"],
X = phenotypes[, paste0("x_cov", 0:2)],
G = genotypes,
Z = variants_info[, 1, drop = FALSE]
)
#> [MiSTr] "y" seems to be "binary", model is set to "binary"!
#> [MiSTr] Logistic regression is ongoing ...
str(res)
#> List of 2
#> $ estimate :'data.frame': 1 obs. of 8 variables:
#> ..$ SubClusters : chr "1"
#> ..$ term.pi.hat : chr "GZ"
#> ..$ estimate.pi.hat : num 3.58
#> ..$ std.error.pi.hat: num 0.344
#> ..$ statistic.pi.hat: num 3.7
#> ..$ p.value.pi.hat : num 0.000216
#> ..$ conf.low.pi.hat : num 1.94
#> ..$ conf.high.pi.hat: num 7.53
#> $ statistics:'data.frame': 1 obs. of 5 variables:
#> ..$ S.pi : num 17.5
#> ..$ p.value.S.pi : num 2.83e-05
#> ..$ S.tau : num 5.4
#> ..$ p.value.S.tau : num 0.175
#> ..$ p.value.overall: num 6.54e-05
#> - attr(*, "class")= chr "mist"
print(res)
#>
#> MiSTr: Mixed effects Score Test
#> -------------------------------
#>
#> - (Raw) Estimates:
#>
#> SubClusters term.pi.hat estimate.pi.hat std.error.pi.hat statistic.pi.hat p.value.pi.hat conf.low.pi.hat conf.high.pi.hat
#> 1 1 GZ 3.576 0.344 3.7 0 1.935 7.528
#>
#> - Statistics:
#>
#> + Overall effect:
#> * P-value = 6.54e-05
#> + PI (mean effect):
#> * Score = 17.527
#> * P-value = 2.83e-05
#> + TAU (heterogeneous effect):
#> * Score = 5.4
#> * P-value = 0.175