admixMap {GENESIS} | R Documentation |
Run admixture analyses
admixMap(admixDataList, null.model, verbose=TRUE)
admixDataList |
named list of |
null.model |
A null model object returned by |
verbose |
Logical indicator of whether updates from the function should be printed to the console; the default is TRUE. |
admixDataList
should have one value for each ancestry. See the example for how one might set up this object. List names will propagate to the output file.
data frame with admixture mapping results
Matthew P. Conomos, Lisa Brown, Stephanie M. Gogarten, Tamar Sofer, Ken Rice, Chaoyu Yu
Brown, L.A. et al. (2017). Admixture Mapping Identifies an Amerindian Ancestry Locus Associated with Albuminuria in Hispanics in the United States. J Am Soc Nephrol. 28(7):2211-2220.
GenotypeIterator
, fitNullModel
, assocTestSingle
library(GWASTools) library(gdsfmt) # create file with multiple ancestries gdsfile <- system.file("extdata", "HapMap_ASW_MXL_geno.gds", package="GENESIS") tmpfile <- tempfile() file.copy(gdsfile, tmpfile) gds <- openfn.gds(tmpfile, readonly=FALSE) nsnp <- objdesp.gdsn(index.gdsn(gds, "snp.id"))$dim nsamp <- objdesp.gdsn(index.gdsn(gds, "sample.id"))$dim samp <- read.gdsn(index.gdsn(gds, "sample.id")) dosage_eur <- sample(0:2, nsnp*nsamp, replace=TRUE) dosage_afr <- ifelse(dosage_eur == 2, 0, sample(0:1, nsnp*nsamp, replace=TRUE)) dosage_amer <- 2 - dosage_eur - dosage_afr add.gdsn(gds, "dosage_eur", matrix(dosage_eur, nrow=nsamp, ncol=nsnp)) add.gdsn(gds, "dosage_afr", matrix(dosage_afr, nrow=nsamp, ncol=nsnp)) add.gdsn(gds, "dosage_amer", matrix(dosage_amer, nrow=nsamp, ncol=nsnp)) closefn.gds(gds) # generate a phenotype set.seed(4) pheno <- rnorm(nsamp, mean = 0, sd = 1) covar <- sample(0:1, nsamp, replace=TRUE) # make ScanAnnotationDataFrame scanAnnot <- ScanAnnotationDataFrame(data.frame(scanID = samp, covar, pheno, stringsAsFactors=FALSE)) # read in GDS data gds <- openfn.gds(tmpfile) genoDataList <- list() for (anc in c("eur", "afr", "amer")){ gdsr <- GdsGenotypeReader(gds, genotypeVar=paste0("dosage_", anc)) genoDataList[[anc]] <- GenotypeData(gdsr, scanAnnot=scanAnnot) } # iterators genoIterators <- lapply(genoDataList, GenotypeBlockIterator) # fit the null mixed model null.model <- fitNullModel(scanAnnot, outcome = "pheno", covars = "covar") # run the association test myassoc <- admixMap(genoIterators, null.model) close(genoDataList[[1]]) unlink(tmpfile)