Iteratively scan the positions for QTL in the context of a multiple QTL model, to try to identify the positions with maximum likelihood, for a fixed QTL model.
refineqtl(cross, pheno.col=1, qtl, chr, pos, qtl.name, covar=NULL, formula,
method=c("imp","hk"), model=c("normal", "binary"), verbose=TRUE, maxit=10,
incl.markers=TRUE, keeplodprofile=TRUE, tol=1e-4,
maxit.fitqtl=1000, forceXcovar=FALSE)
An object of class qtl
, with QTL placed in their new positions.
If keeplodprofile=TRUE
, LOD profiles from the last pass through
the refinement algorithm are retained as an attribute,
"lodprofile"
, to the object. These may be plotted with
plotLodProfile
.
An object of class cross
. See
read.cross
for details.
Column number in the phenotype matrix to be used as the phenotype. One may also give a character string matching the phenotype name. 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.
A QTL object, as produced by makeqtl
,
containing the positions of the QTL. Provide either qtl
or
the pair chr
and pos
.
Vector indicating the chromosome for each QTL; if qtl
is provided, this should not be.
Vector indicating the positions for each QTL; if qtl
is provided, this should not be.
Optional user-specified name for each QTL. If
qtl
is provided, this should not be.
A matrix or data.frame of covariates. These must be strictly numeric.
An object of class formula
indicating the model to be fitted. (It can also be the character
string representation of a formula.) QTLs are indicated as Q1
,
Q2
, etc. Covariates are indicated by their names in covar
.
Indicates whether to use multiple imputation or Haley-Knott regression.
The phenotype model: the usual model or a model for binary traits
If TRUE, give feedback about progress. If
verbose
is an integer > 1, further messages from
scanqtl
are also displayed.
Maximum number of iterations.
If FALSE, do calculations only at points on an evenly spaced grid.
If TRUE, keep the LOD profiles from the last iteration as attributes to the output.
Tolerance for convergence for the binary trait model.
Maximum number of iterations for fitting the binary trait model.
If TRUE, force inclusion of X-chr-related covariates (like sex and cross direction).
Karl W Broman, broman@wisc.edu
QTL positions are optimized, within the context of a fixed QTL model, by a scheme described in Zeng et al. (1999). Each QTL is considered one at a time (in a random order), and a scan is performed, allowing the QTL to vary across its chromosome, keeping the positions of all other QTL fixed. If there is another QTL on the chromosome, the position of the floating QTL is scanned from the end of the chromosome to the position of the flanking QTL. If the floating QTL is between two QTL on a chromosome, its position is scanned between those two QTL positions. Each QTL is moved to the position giving the highest likelihood, and the entire process is repeated until no further improvement in likelihood can be obtained.
One may provide either a qtl
object (as produced by
makeqtl
), or vectors chr
and pos
(and, optionally, qtl.name
) indicating the positions of the
QTL.
If a qtl
object is provided, QTL that do not appear in
the model formula
are ignored, but they remain part of the QTL
object that is output.
Zeng, Z.-B., Kao, C.-H., and Basten, C. J. (1999) Estimating the genetic architecture of quantitative traits. Genet. Res. 74, 279--289.
Haley, C. S. and Knott, S. A. (1992) A simple regression method for mapping quantitative trait loci in line crosses using flanking markers. Heredity 69, 315--324.
Sen, Ś. and Churchill, G. A. (2001) A statistical framework for quantitative trait mapping. Genetics 159, 371--387.
fitqtl
, makeqtl
,
scanqtl
, addtoqtl
,
dropfromqtl
, replaceqtl
,
plotLodProfile
data(fake.bc)
fake.bc <- subset(fake.bc, chr=c(2,5))
fake.bc <- calc.genoprob(fake.bc, step=2)
qtl <- makeqtl(fake.bc, chr=c(2,5), pos=c(32.5, 17.5), what="prob")
rqtl <- refineqtl(fake.bc, qtl=qtl, method="hk")
Run the code above in your browser using DataLab