burden.mlogit {Ravages}R Documentation

Logistic or multinomial regression on a genetic score

Description

Performs a logistical or a non-ordinal multinomial regression on a genetic score

Usage

burden.mlogit(x, NullObject, genomic.region = x@snps$genomic.region, burden,
              maf.threshold = 0.5, get.effect.size = FALSE, alpha = 0.05, cores = 10)

Arguments

x

A bed matrix, only needed if burden="CAST" or burden="WSS"

NullObject

A list returned from NullObject.parameters

genomic.region

A factor containing the genomic region of each SNP, x@snps$genomic.region by default, only needed if burden="CAST" or burden="WSS"

burden

"CAST" or "WSS" to directly compute the CAST or the WSS genetic score; or a matrix with one row per individual and one column per genomic.region if another genetic score is wanted.

maf.threshold

The MAF threshold to use for the definition of a rare variant in the CAST score. Set at 0.5 by default

get.effect.size

TRUE/FALSE: whether to return OR values

alpha

The alpha threshold to use for the OR confidence interval

cores

How many cores to use for moments computation, set at 10 by default

Details

This function will return results from the regression of the phenotype on the genetic score for each genomic region.

If only two groups of individuals are present, a classical logistic regression is performed. If more than two groups of individuals are present, a non-ordinal multinomial regression is performed, comparing each group of individuals to the reference group indicated by the argument ref.level in NullObject.parameters. The choice of the reference group won't affect the p-values, but only the Odds Ratios. In both types of regression, the p-value is estimated using the Likelihood Ratio test.

If another genetic score than CAST or WSS is wanted, a matrix with one row per individual and one column per genomic.region containing this score should be given to burden. In this situation, no bed matrix x is needed.

Value

A dataframe with one row per genomic region and at least two columns:

p.value

The p.value of the regression

is.err

0/1: whether there was a convergence problem with the regression

If get.effect.size=TRUE, additional columns are present:

OR

The OR value(s) associated to the regression. If there are more than two groups, there will be one OR value per group compared to the reference group

l.lower

The lower bound of the confidence interval of each OR

l.upper

The upper bound of the confidence interval of each OR

References

Bocher O, et al. DOI: 10.1002/gepi.22210. Rare variant associationtesting for multicategory phenotype. Genet.Epidemiol. 2019;43:646–656.

See Also

NullObject.parameters, CAST, WSS, burden.weighted.matrix

Examples

#Import data in a bed matrix
x <- as.bed.matrix(x=LCT.matrix.bed, fam=LCT.matrix.fam, bim=LCT.snps)

#Add population
x@ped[,c("pop", "superpop")] <- LCT.matrix.pop1000G[,c("population", "super.population")]

#Select EUR superpopulation
x <- select.inds(x, superpop=="EUR")
x@ped$pop <- droplevels(x@ped$pop)

#Group variants within known genes
x <- set.genomic.region(x)

#Filter of rare variants: only non-monomorphic variants with
#a MAF lower than 2.5%
#keeping only genomic regions with at least 200 SNP
x1 <- filter.rare.variants(x, filter = "whole", maf.threshold = 0.025, min.nb.snps = 200)

#Simulation of a covariate + Sex as a covariate
sex <- x1@ped$sex
set.seed(1) ; u <- runif(nrow(x1))
covar <- cbind(sex, u)
              
#run null model, using the 1000Genome population as "outcome"
#Null model with the covariate sex
x1.H0.covar <- NullObject.parameters(pheno = x1@ped$pop, ref.level = "CEU", 
                                     RVAT = "burden", pheno.type = "categorical",
                                     data = covar, formula = ~ sex)
#WSS test
burden.mlogit(x1, NullObject = x1.H0.covar, burden = "WSS", get.effect.size=TRUE, cores = 1)


[Package Ravages version 1.1.3 Index]