Skip to content

Commit

Permalink
version 1.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
leeshawn authored and cran-robot committed May 18, 2017
1 parent 7ad9dc4 commit e2dee1e
Show file tree
Hide file tree
Showing 31 changed files with 1,200 additions and 396 deletions.
8 changes: 4 additions & 4 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Package: SKAT
Type: Package
Title: SNP-Set (Sequence) Kernel Association Test
Version: 1.2.1
Date: 2016-06-03
Version: 1.3.0
Date: 2017-05-12
Author: Seunggeun (Shawn) Lee, with contributions from Larisa Miropolsky and Michael Wu
Maintainer: Seunggeun (Shawn) Lee <leeshawn@umich.edu>
Description: Functions for kernel-regression-based association tests including Burden test, SKAT and SKAT-O. These methods aggregate individual SNP score statistics in a SNP set and efficiently compute SNP-set level p-values.
License: GPL (>= 2)
Depends: R (>= 2.13.0)
NeedsCompilation: yes
Packaged: 2016-06-06 13:28:18 UTC; LEE7801
Packaged: 2017-05-17 20:55:04 UTC; LEE7801
Repository: CRAN
Date/Publication: 2016-06-28 20:16:35
Date/Publication: 2017-05-18 04:04:27 UTC
57 changes: 29 additions & 28 deletions MD5
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
837e0764a229a221d0f545d3a478ca8d *DESCRIPTION
f6bcea5be096168d444c67c51d3254cc *NAMESPACE
4de6a15dda86cba0b5474ea76875a3d9 *DESCRIPTION
be8e9d2327569a5b7bb6904892ce802e *NAMESPACE
c44a76349594ace62702f5859d959567 *R/Binary_Etc.R
a1f62d77032ecc42dabf9cd6920970a0 *R/Binary_Function.R
8470a09f109264da7e6d77d4c8b89f97 *R/Binary_Function1.R
476fb5d3853f9f4d4d2aa2d74800fd8a *R/Binary_MAIN.R
1afc4a4f6fcbb6743b1a3341c1548be7 *R/Binary_MAIN.R
bf1e757e3db16e7b56cabd5a68531edc *R/Binary_MAIN_ExactBin.R
aa705c59c7cd0ff31dacf366a250b803 *R/Binary_Result_Calibration.R
3bf018e03e14b45f76e36f74eac2b5c7 *R/Binary_single.b.firth.R
112a098007343e057e918a9f09400d3f *R/Function.R
048612b41b8efe9ea34d8cd9d8d2553c *R/Function_Power_Resampling.R
f8a25552f06cc09395ccd01326d76dab *R/Joint_CommonRare.R
caefe49c768c1f8081540627ea5a5ea8 *R/Joint_CommonRare.R
a270d1f8802d88edb99d9e9ed343d164 *R/Kernel.R
53c74af32e5257988fc79154626b2119 *R/MAIN.R
44b321bee7f8bc260414c85a3202c6d5 *R/MAIN.R
9d71e777940a97b4215101cef8beac5a *R/MK_SSD_All_Output.R
5879923ea0d8a54b140c475c8d5ce44a *R/Main_SSD.R
bd974b5196769ecb0e39952cbd904899 *R/Main_SSD.R
99d3d304000ec9fd1ce2f5637964add6 *R/Null_Model.R
9e511cede46a7537cffef953dd302247 *R/Power.R
d2e084f5648696600b31e629ffe01786 *R/Power_Corr.R
192e270bf689a25409a2b16e5aaaab5e *R/SKAT_CompQuadForm.R
7bf6ebc103a7fce7ee12d4b167d8e4b8 *R/SKAT_EMMAX.R
c641553ad9a5ea32916f087e7c2df25b *R/SKAT_Linear.R
3c93c2ab6405a64e7ce9d324890dd3de *R/SKAT_Logistic.R
f53e1169ef28f3b98a1b3e547ba862c9 *R/SKAT_EMMAX.R
0aa5511625e87a6989d0f7a210d3653f *R/SKAT_Linear.R
405616965ae7b43906768dfdb37dc4ed *R/SKAT_Logistic.R
7e81c6dccd195469f146648b9a031c48 *R/SKAT_Logistic_VarMatching.R
27e70f89dc6f3f3d3f1b8598168a4f0a *R/SKAT_Meta_Optimal.R
f09679c113a09080d20502b217466495 *R/SKAT_Optimal.R
185c9f95f9b6dbe980d623dc65abaec5 *R/SKAT_Optimal_VarMatching.R
157325325a8fda972f11f6addf94bd48 *R/SSD.R
f0df7e1420445a0b21b8260a39aa972e *R/X_Chrom.R
804841249a04dd08370d0f2544b7cdb8 *build/vignette.rds
3b8938afe69c355cdc7de1149c8ab22d *data/SKAT.example.ChrX.rda
bd0fee9cc7910f770aba4edd81ef7648 *data/SKAT.example.rda
d7e6c7c3035c73487432ea8f52a566a9 *data/SKAT.fam.example.rda
16a308dd6e2d2da748a95a8386e5b41d *data/SKAT.haplotypes.rda
978c6f9b2070a314e58d6381cbc75845 *data/SKATBinary.example.rda
69906e5368fb1f8403ee5831cbbe5a00 *build/vignette.rds
603b05a1ee5015dfb46b54ace31429b1 *data/SKAT.example.ChrX.rda
2d1c3cb3ea8f1d2d824e6bf60aa09dee *data/SKAT.example.rda
dd7bcef7707deb615f904068009da3cb *data/SKAT.fam.example.rda
a83d519c5d2dd6c0dae61d92350b245e *data/SKAT.haplotypes.rda
d1b8270810d4b7de83e4d1e6f7068874 *data/SKATBinary.example.rda
6daf2405b55d75521ac6cdbfd13f441d *data/datalist
c2e8806fb028822a5d517a317ed2aa55 *inst/doc/SKAT.R
811d306ed8b9317490b44a4aa6e1d828 *inst/doc/SKAT.Rnw
37ab9d6f048720c3f018f25091e2567c *inst/doc/SKAT.pdf
3d721110d2a6c159096b13c243858e31 *inst/doc/SKAT.R
b9337695f20403481c544334074caed8 *inst/doc/SKAT.Rnw
a0d0f8b4aefda5ae8ed35a086115a8b7 *inst/doc/SKAT.pdf
70bfc72058b01b3dca52f5e99eec5b04 *man/Close_SSD.rd
4f24d4ddd05f88a294a14f0a0d662ec7 *man/Generate_SSD_SetID.rd
30336c24e6f274be4e7392a7a015eaec *man/Get_ENT.rd
Expand All @@ -55,13 +56,13 @@ a8bdcee5138ffcae92c0ef5435b3df2d *man/SKAT.SSD.All.rd
8d815f91cd850341802b9ecc334a1569 *man/SKAT.example.rd
4c665d009528437a28381f4d2c208c53 *man/SKAT.fam.example.rd
9d453b59b6c82076ca126baf7f6da767 *man/SKAT.haplotypes.rd
d2f7c23693b21d907d1b161d72a64f3f *man/SKAT.rd
0ecacabdd45f7222503e1f62a3522918 *man/SKAT.rd
3e7305ff691a66f8422af861e4489f69 *man/SKATBinary.example.rd
be348455eb93ecf8c38abc420c3fb817 *man/SKATBinary.rd
48e5d020d872ae68017df2838dd2be01 *man/SKATBinary_Single.rd
576176332837b35155dad4082b95ff31 *man/SKAT_ChrX.rd
d71c43d583dc44b2f3cda81d52228424 *man/SKAT_ChrX.rd
6a0cdac4e49b4c543d9a3b54571fd857 *man/SKAT_CommonRare.rd
3295762f833991e39c5e0543082d18a1 *man/SKAT_NULL_emmaX.rd
502921f1891af311583d2b05f2392d2e *man/SKAT_NULL_emmaX.rd
7bfe04feee060ba2912d508016d53a07 *man/SKAT_Null_Model.rd
13f68737273583b021121a984c161788 *man/SKAT_Null_Model_MomentAdjust.rd
4006d5fee5b0ca253c6416825d1a5753 *man/SSD_FILE_OPEN.rd
Expand All @@ -74,21 +75,21 @@ ddf907473f0e90a91c43f404f13040e0 *src/Binary_ComputeExactSKATO.cpp
6c43997ba2c7b07b7b91bc571c14e687 *src/Binary_HyperGeo.h
a815f9bd5aca02a2540754d019b99c23 *src/Binary_Permu_SKAT.cpp
381085bdcd6c68edc569947ed7c0d914 *src/Binary_Permu_SKAT.h
9ca34afa3125789d36404222b323fd2c *src/Binary_global.cpp
7fdec286841854360ac2f77d12d59620 *src/Binary_global.h
460e5e3c45c795db72dba56aa88c41f7 *src/Binary_resampling.c
34d0a02509ff78199834c7d96e7944dc *src/Binary_global.cpp
23a18e9e64f6f1f8a650636bc50f115a *src/Binary_global.h
bf81784834275c2a754f2dec814f3985 *src/Binary_resampling.cpp
c026767413f7c44c9eb102f2b06adc6f *src/DArray.h
eff07e87bdbbbb8fa621f68f976d187f *src/NPsort.h
ab1044cc76ea685ab11ced9de38e8b8e *src/bed_reader.cpp
d050bfaba6289fdfca86949d592b9417 *src/bed_reader.h
9091165a4cc0956ddc29647f56a22c02 *src/error_messages.h
7634c0bbb2c0f9397646ed10cfb77024 *src/interface.cpp
68718b07664f0a065a03f8949c038a01 *src/interface_new.cpp
e0f031f07e05f477e33cc92d0f6aca1e *src/interface_to_R.cpp
37349c021e2c58865e1aaa4c5b6d5b80 *src/interface_to_R.h
b39ebcd0aeca75723efa44c21cfb5e0e *src/kernel_func.c
25905f9b5954deffbe75a33b59f35a7e *src/kernel_func.cpp
5dc28d2a006bfa9d4130998ec78da176 *src/mwo_reader.cpp
58dde4e98b1e162f3ac738edc3bc82ed *src/mwo_reader.h
55329168ddfec3c1bae4a17c33b8373d *src/qfc.cpp
dd3d814ef398b50510fd12d79494b8c6 *src/qfc.cpp
76a70bb0719c6cec3b16ff90a37cbe87 *src/setid_bim_index.cpp
95666a26e51f0f803e4e5f9dc4cb9ede *src/setid_bim_index.h
cff473f152929cc171a7235ce40dac8c *vignettes/Example1.Cov
Expand All @@ -101,7 +102,7 @@ a4fe8d43443b9b642487766e6a00edb1 *vignettes/Example1_NoHeader.Cov
254951838363388801b833770db0d905 *vignettes/Example1_Ord.Cov
712467feaf10611efb83979a19542d68 *vignettes/Example1_Weight.txt
9a8d91e7b3c8d88b3d465b2c5ee5e614 *vignettes/Example1_old.fam
811d306ed8b9317490b44a4aa6e1d828 *vignettes/SKAT.Rnw
b9337695f20403481c544334074caed8 *vignettes/SKAT.Rnw
aed3b04aca9252ca2304426184f124ad *vignettes/SKATBinary.example.SetID
8bc37f067620cb3e10ad29809ec1ae4b *vignettes/SKATBinary.example.bed
6dd7c3002b63f683e32131e75b2d4cb8 *vignettes/SKATBinary.example.bim
Expand Down
2 changes: 1 addition & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export(SKAT, Get_Logistic_Weights_MAF, Get_Logistic_Weights,
"pchisq", "predict", "qchisq", "qqplot", "quantile",
"rbinom", "rmultinom", "rnorm", "runif", "sd",
"smooth.spline", "uniroot", "var")
importFrom("utils", "data", "read.delim", "read.table", "write.table")
importFrom("utils", "data", "read.delim", "read.table", "write.table", "txtProgressBar", "setTxtProgressBar")

# variables
#export(SSD_FILE_OPEN.isOpen,SSD_FILE_OPEN.FileName)
Expand Down
10 changes: 6 additions & 4 deletions R/Binary_MAIN.R
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,7 @@ SKATBinary.SSD.All = function(SSD.INFO, obj, ..., obj.SNPWeight=NULL){
}


pb <- txtProgressBar(min=0, max=N.Set, style=3)
for(i in 1:N.Set){
Is.Error<-TRUE
try1<-try(SKATBinary.SSD.OneSet_SetIndex(SSD.INFO, i, obj, ..., obj.SNPWeight=obj.SNPWeight) ,silent = TRUE)
Expand All @@ -406,13 +407,14 @@ SKATBinary.SSD.All = function(SSD.INFO, obj, ..., obj.SNPWeight=NULL){
OUT.Pvalue.Resampling[i,]<-re$p.value.resampling
}
}
if(floor(i/100)*100 == i){
cat("\r", i, "/", N.Set, "were done");
}
#if(floor(i/100)*100 == i){
# cat("\r", i, "/", N.Set, "were done");
#}
setTxtProgressBar(pb, i)

}


close(pb)
out.tbl<-data.frame(SetID=SSD.INFO$SetInfo$SetID, P.value=OUT.Pvalue
, N.Marker.All=OUT.Marker, N.Marker.Test=OUT.Marker.Test
, MAC=OUT.MAC, m=OUT.m
Expand Down
12 changes: 7 additions & 5 deletions R/Joint_CommonRare.R
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ SKAT_CommonRare.SSD.All = function(SSD.INFO, obj, ...){
}
}


pb <- txtProgressBar(min=0, max=N.Set, style=3)
for(i in 1:N.Set){
Is.Error<-TRUE
try1<-try(Get_Genotypes_SSD(SSD.INFO, i),silent = TRUE)
Expand Down Expand Up @@ -197,13 +197,14 @@ SKAT_CommonRare.SSD.All = function(SSD.INFO, obj, ...){
OUT.Pvalue.Resampling[i,]<-re$p.value.resampling
}
}
if(floor(i/100)*100 == i){
cat("\r", i, "/", N.Set, "were done");
}
#if(floor(i/100)*100 == i){
# cat("\r", i, "/", N.Set, "were done");
#}
setTxtProgressBar(pb, i)

}


close(pb)
out.tbl<-data.frame(SetID=SSD.INFO$SetInfo$SetID, P.value=OUT.Pvalue, Q=OUT.Q
, N.Marker.All=OUT.Marker, N.Marker.Test=OUT.Marker.Test, N.Marker.Rare=OUT.nRare, N.Marker.Common=OUT.nCommon)
re<-list(results=out.tbl,P.value.Resampling=OUT.Pvalue.Resampling)
Expand Down Expand Up @@ -304,6 +305,7 @@ r.corr.rare=0, r.corr.common=0, CommonRare_Cutoff=NULL, test.type="Joint", is_do
re<-SKAT_1(Z.common, obj, weights.beta=weights.beta.common, weights = NULL, r.corr=r.corr.common
, is_check_genotype=is_check_genotype, is_dosage = TRUE, missing_cutoff=1, SetID = SetID1)


is.run=TRUE

} else if (n.common == 0 && n.rare > 0){
Expand Down
43 changes: 33 additions & 10 deletions R/MAIN.R
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ SKAT = function(Z,obj, kernel = "linear.weighted", method="davies", weights.beta

}


if(class(obj) == "SKAT_NULL_Model_EMMAX"){

re = SKAT_emmaX(Z, obj, kernel = kernel, method=method, weights.beta=weights.beta, weights = weights, impute.method = impute.method, r.corr=r.corr, is_check_genotype=is_check_genotype, is_dosage = is_dosage, missing_cutoff=missing_cutoff, estimate_MAF=estimate_MAF)
Expand All @@ -36,7 +35,10 @@ SKAT = function(Z,obj, kernel = "linear.weighted", method="davies", weights.beta


SKAT_1 = function(Z,obj, ...){
if(class(obj) == "SKAT_NULL_Model_ADJ"){

if(class(obj) == "SKAT_NULL_Model_EMMAX"){
re<-SKAT_emmaX( Z, obj, ...)
} else if(class(obj) == "SKAT_NULL_Model_ADJ"){
re<-SKAT_With_NullModel_ADJ(Z,obj, ...)
} else if(class(obj) == "SKAT_NULL_Model"){
re<-SKAT_With_NullModel(Z,obj, ...)
Expand Down Expand Up @@ -323,17 +325,30 @@ SKAT_Check_RCorr<-function(kernel, r.corr){

}

SKAT_Check_Method<-function(method,r.corr){

SKAT_Check_Method<-function(method,r.corr, n=NULL, m=NULL){


IsMeta=FALSE

if(method != "liu" && method != "davies" && method != "liu.mod" && method != "optimal" && method != "optimal.moment"
&& method != "optimal.mod" && method != "adjust" && method != "optimal.adj" && method != "optimal.moment.adj"
&& method != "SKAT" && method != "SKATO" && method != "Burden" && method != "SKATO.m" ){
&& method != "SKAT" && method != "SKATO" && method != "Burden" && method != "SKATO.m"
&& method !="davies.M" && method != "optimal.adj.M" ){
stop("Invalid method!")
}

# Run Meta-code
if(method=="davies.M"){
IsMeta=TRUE
method="davies"
} else if(method=="optimal.adj.M"){
IsMeta=TRUE
method="optimal.adj"
}

if(method=="SKAT"){
method="davies"
r.corr=0
} else if(method == "SKATO"){
method="optimal.adj"
} else if(method =="SKATO.m"){
Expand All @@ -355,8 +370,16 @@ SKAT_Check_Method<-function(method,r.corr){
} else if (method =="optimal.moment") {
method="liu.mod"
}

# if # of r.corr > 1, m/n < 1 and n > 10000, use Meta
if(!is.null(n) && !is.null(m) && length(r.corr) > 1){
if(m/n < 1 && n > 5000){
IsMeta=TRUE
}
}


re<-list(method=method,r.corr=r.corr)
re<-list(method=method,r.corr=r.corr, IsMeta=IsMeta)
return(re)

}
Expand All @@ -372,11 +395,11 @@ SKAT_With_NullModel = function(Z, obj.res, kernel = "linear.weighted", method="d

n<-dim(Z)[1]
m<-dim(Z)[2]
out.method<-SKAT_Check_Method(method,r.corr)
out.method<-SKAT_Check_Method(method, r.corr, m=m, n=n)

method=out.method$method
r.corr=out.method$r.corr

IsMeta=out.method$IsMeta

SKAT_Check_RCorr(kernel, r.corr)

Expand Down Expand Up @@ -412,7 +435,7 @@ SKAT_With_NullModel = function(Z, obj.res, kernel = "linear.weighted", method="d
if( kernel =="linear" || kernel == "linear.weighted"){
re = SKAT.linear.Linear(obj.res$res,out.z$Z.test
,obj.res$X1, kernel, out.z$weights,obj.res$s2,method
,obj.res$res.out, obj.res$n.Resampling,r.corr=r.corr)
,obj.res$res.out, obj.res$n.Resampling,r.corr=r.corr, IsMeta=IsMeta)
} else {
re = SKAT.linear.Other(obj.res$res,out.z$Z.test
,obj.res$X1, kernel, out.z$weights,obj.res$s2,method
Expand All @@ -424,7 +447,7 @@ SKAT_With_NullModel = function(Z, obj.res, kernel = "linear.weighted", method="d
if( kernel =="linear" || kernel == "linear.weighted"){
re = SKAT.logistic.Linear(obj.res$res, out.z$Z.test
,obj.res$X1, kernel, out.z$weights, obj.res$pi_1,method
,obj.res$res.out, obj.res$n.Resampling,r.corr=r.corr)
,obj.res$res.out, obj.res$n.Resampling,r.corr=r.corr, IsMeta=IsMeta)
} else {
re = SKAT.logistic.Other(obj.res$res,out.z$Z.test
,obj.res$X1, kernel, out.z$weights, obj.res$pi_1, method
Expand Down
10 changes: 6 additions & 4 deletions R/Main_SSD.R
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ SKAT.SSD.All = function(SSD.INFO, obj, ..., obj.SNPWeight=NULL){
}
}


pb <- txtProgressBar(min=0, max=N.Set, style=3)
for(i in 1:N.Set){
Is.Error<-TRUE
try1 = try(SKAT.SSD.OneSet_SetIndex(SSD.INFO=SSD.INFO, SetIndex=i, obj=obj, ..., obj.SNPWeight=obj.SNPWeight))
Expand All @@ -316,11 +316,13 @@ SKAT.SSD.All = function(SSD.INFO, obj, ..., obj.SNPWeight=NULL){
}
}

if(floor(i/100)*100 == i){
cat("\r", i, "/", N.Set, "were done");
}
#if(floor(i/100)*100 == i){
# cat("\r", i, "/", N.Set, "were done");
#}
setTxtProgressBar(pb, i)

}
close(pb)


out.tbl<-data.frame(SetID=SSD.INFO$SetInfo$SetID, P.value=OUT.Pvalue, N.Marker.All=OUT.Marker, N.Marker.Test=OUT.Marker.Test)
Expand Down

0 comments on commit e2dee1e

Please sign in to comment.