R/f.sep.data0.R

Defines functions f.sep.data0

f.sep.data0 <- function(data, info){
##
## SPLIT GENETIC DATA FROM VARIABLES.
## RESHAPE GENETIC DATA INTO COMPLETE HAPLOTYPE DATA
##
design <- info$model$design
xchrom <- info$model$xchrom
n.vars <- info$filespecs$n.vars
.alleles <- info$haplos$alleles
#
if(n.vars > 0){
	.data.gen <- data[,-(1:n.vars), drop = F] # SELECTS GENETIC DATA
	attr(.data.gen, "alleles") <- .alleles # MAKE SURE TO KEEP ATTRIBUTES
	#
	.data.vars <- data[,1:n.vars, drop = F] # SELECT VARIABLES
	attr(.data.vars, "variables") <- attr(data, "variables")
}else{
	.data.gen <- data # NO CHANGE
	.data.vars <- NULL
}
#
## TEST FOR HWE
if(!xchrom){
	.HWE.res <- f.HWE.design0(.data.gen, design = design) 
}
if(xchrom){
	.HWE.res <- f.HWE.design0(.data.gen, design = design, sex = data[, info$variables$sex]) 
}
#
## RESHAPE GENETIC DATA
#
## TRIAD + CC.TRIAD DESIGN (NO X-CHROM):
if((design %in% c("triad", "cc.triad")) & !xchrom){
	.data.gen <- f.sort.alleles.new0(.data.gen)
}
#
## TRIAD + CC.TRIAD DESIGN (ON THE X-CHROM):
if((design %in% c("triad", "cc.triad")) & xchrom){
	.data.gen <- f.sort.alleles.new0(.data.gen, xchrom = T, sex = data[, info$variables$sex])
}
#
## CASE-CONTROL DESIGN (NO X-CHROM):
if((design == "cc") & !xchrom){
	.data.gen <- f.sort.alleles.cc0(.data.gen)
}
#
## CASE-CONTROL DESIGN (ON THE X-CHROM):
if((design == "cc") & xchrom){
	.data.gen <- f.sort.alleles.cc0(.data.gen, xchrom = T, sex = data[, info$variables$sex])
}
#
#
return(list(data.gen = .data.gen, data.vars = .data.vars, HWE.res = .HWE.res))
}

Try the Haplin package in your browser

Any scripts or data that you put into this service are public.

Haplin documentation built on May 20, 2022, 5:07 p.m.