scanPhyloQTL {qtl} | R Documentation |
Jointly consider multiple intercrosses with a single diallelic QTL model, considering all possible partitions of the strains into the two QTL allele groups.
scanPhyloQTL(crosses, partitions, chr, pheno.col=1, model=c("normal", "binary"), method=c("em", "imp", "hk"), addcovar, maxit=4000, tol=0.0001, useAllCrosses=TRUE, verbose=FALSE)
crosses |
A list with each component being an intercross, as an object of class
cross (see read.cross for details). The names
(of the form "AB") indicate the strains in the cross. |
partitions |
A vector of character strings of the form "AB|CD" or "A|BCD" indicating the set of paritions of the strains into two allele groups. If missing, all partitions should be considered. |
chr |
Optional vector indicating the chromosomes for which LOD
scores should be calculated. This should be a vector of character
strings referring to chromosomes by name; numeric values are
converted to strings. Refer to chromosomes with a preceding -
to have all chromosomes but those considered. A logical (TRUE/FALSE)
vector may also be used. |
pheno.col |
Column number in the phenotype matrix which should be
used as the phenotype. This can be a vector of integers; for methods
"hk" and "imp" this can be considerably faster than doing
them one at a time. One may also give a character strings matching
the phenotype names. Finally, one may give a numeric vector of
phenotypes, in which case it must have the length equal to the number
of individuals in the cross, and there must be either non-integers or
values < 1 or > no. phenotypes; this last case may be useful for studying
transformations. |
model |
The phenotype model: the usual normal model or a model for binary traits |
method |
Indicates whether to use the EM algorithm, imputation, or Haley-Knott regression. |
addcovar |
Optional set of additive covariates to include in the
analysis, as a list with the same length as crosses . They
must be numeric vectors or matrices, as for scanone . |
maxit |
Maximum number of iterations for method "em" . |
tol |
Tolerance value for determining convergence for method
"em" . |
useAllCrosses |
If TRUE, use all crosses in the analysis of all partitions, with crosses not segregating the QTL included in the estimation of the residual variance. |
verbose |
If TRUE, print information about progress. |
The aim is to jointly consider multiple intercrosses to not just map QTL but to also, under the assumption of a single diallelic QTL, identify the set of strains with each QTL allele.
For each partition (of the strains into two groups) that is under consideration, we pull out the set of crosses that are segregating the QTL, re-code the alleles, and combine the crosses into one large cross. Crosses not segregating the QTL are also used, though with no QTL effects.
Additive covariate indicators for the crosses are included in the analysis, to allow for the possibility that there are overall shifts in the phenotypes between crosses.
A data frame, as for the output of scanone
, though with
LOD score columns for each partition that is considered. The result
is given class "scanPhyloQTL"
.
Karl W Broman, kbroman@biostat.wisc.edu
Broman, K. W., Kim, S., An\'e, C. and Payseur, B. A. Mapping quantitative trait loci to a phylogenetic tree. In preparation.
plot.scanPhyloQTL
,
summary.scanPhyloQTL
, max.scanPhyloQTL
,
inferredpartitions
,
simPhyloQTL
# example map; drop X chromosome data(map10) map10 <- map10[1:19] # simulate data x <- simPhyloQTL(4, partition="AB|CD", crosses=c("AB", "AC", "AD"), map=map10, n.ind=150, model=c(1, 50, 0.5, 0)) # run calc.genoprob on each cross x <- lapply(x, calc.genoprob, step=2) # scan genome, at each position trying all possible partitions out <- scanPhyloQTL(x, method="hk") # maximum peak max(out, format="lod") # approximate posterior probabilities at peak max(out, format="postprob") # all peaks above a threshold for LOD(best) - LOD(2nd best) summary(out, threshold=1, format="lod") # all peaks above a threshold for LOD(best), showing approx post'r prob summary(out, format="postprob", threshold=3) # plot results plot(out)