library(Matrix)
library(MASS)
library(coxmeg)
## build a block-diagonal relatedness matrix
n_f <- 600
mat_list <- list()
size <- rep(5,n_f)
offd <- 0.5
for(i in 1:n_f)
{
mat_list[[i]] <- matrix(offd,size[i],size[i])
diag(mat_list[[i]]) <- 1
}
sigma <- as.matrix(bdiag(mat_list))
## Example data files
pheno.file = system.file("extdata", "ex_pheno.txt", package = "coxmeg")
cov.file = system.file("extdata", "ex_cov.txt", package = "coxmeg")
bed = system.file("extdata", "example_null.bed", package = "coxmeg")
bed = substr(bed,1,nchar(bed)-4)
## Read phenotype and covariates
pheno <- read.table(pheno.file, header=FALSE, as.is=TRUE, na.strings="-9")
cov <- read.table(cov.file, header=FALSE, as.is=TRUE)
## SNPRelate GDS object
gdsfile <- tempfile()
SNPRelate::snpgdsBED2GDS(bed.fn=paste0(bed,".bed"),
fam.fn=paste0(bed,".fam"),
bim.fn=paste0(bed,".bim"),
out.gdsfn=gdsfile, verbose=FALSE)
gds <- SNPRelate::snpgdsOpen(gdsfile)
## Estimate variance component under a null model
re <- coxmeg_gds(gds,pheno,sigma,type='bd',cov=cov,detap='diagonal',order=1)
re
SNPRelate::snpgdsClose(gds)
unlink(gdsfile)
## SeqArray GDS object
gdsfile <- tempfile()
SeqArray::seqBED2GDS(bed.fn=paste0(bed,".bed"),
fam.fn=paste0(bed,".fam"),
bim.fn=paste0(bed,".bim"),
out.gdsfn=gdsfile, verbose=FALSE)
gds <- SeqArray::seqOpen(gdsfile)
## Estimate variance component under a null model
re <- coxmeg_gds(gds,pheno,sigma,type='bd',cov=cov,detap='diagonal',order=1)
re
SeqArray::seqClose(gds)
unlink(gdsfile)
Run the code above in your browser using DataLab