fitqtl {qtl}R Documentation

Fit a multiple QTL model


Fits a user-specified multiple QTL model. If specified, a drop-one-term analysis will be performed.


fitqtl(pheno, qtl, covar=NULL, formula, method=c("imp"),


pheno Phenotype data (a numeric vector).
qtl An object of class qtl, as output from makeqtl).
covar A data.frame of covariates
formula An object of class formula indicating the model to be fitted. QTLs are referred to as Q1, Q2, etc. Covariates are referred to by their names in the data frame covar.
method Indicates whether to use the EM algorithm or imputation. (Only imputation is implemented at this point.)
dropone If TRUE, do drop-one-term analysis.


In the drop-one-term analysis, for a given QTL/covariate model, all submodels will be analyzed. For each term in the input formula, when it is dropped, all higher order terms that contain it will also be dropped. The comparison between the new model and the full (input) model will be output.


An object of class fitqtl. It may contains two fields:

  1. result.full is the ANOVA table as a matrix for the full model result. It contains the degree of freedom (df), Sum of squares (SS), mean square (MS), LOD score (LOD), percentage of variance explained (%var) and P value (Pvalue).
  2. result.drop is a drop-one-term ANOVA table as a matrix. It contains degrees of freedom (df), Type III sum of squares (Type III SS), LOD score(LOD), percentage of variance explained (%var), F statistics (F value), and P values for chi square (Pvalue(chi2)) and F distribution (Pvalue(F)).

    Note that the degree of freedom, Type III sum of squares, the LOD score and the percentage of variance explained are the values comparing the full to the sub-model with the term dropped. Also note that for imputation method, the percentage of variance explained, the the F values and the P values are approximations calculated from the LOD score.


Hao Wu,


Sen, S. and Churchill, G. A. (2001) A statistical framework for quantitative trait mapping. Genetics 159, 371–387.

See Also

summary.fitqtl, makeqtl, scanqtl



# take out several QTLs and make QTL object
qc <- c(1, 8, 13)
qp <- c(26, 56, 28)
fake.f2 <- subset(fake.f2, chr=qc)

fake.f2 <- sim.geno(fake.f2, n.draws=8, step=2, err=0.001)
qtl <- makeqtl(fake.f2, qc, qp)

# fit model with 3 interacting QTLs interacting
# (performing a drop-one-term analysis)
lod <- fitqtl(fake.f2$pheno[,1], qtl, formula=y~Q1*Q2*Q3)

## Not run: 
# fit an additive QTL model
lod.add <- fitqtl(fake.f2$pheno[,1], qtl, formula=y~Q1+Q2+Q3)

# fit the model including sex as an interacting covariate
Sex <- data.frame(Sex=fake.f2$pheno$sex) <- fitqtl(fake.f2$pheno[,1], qtl, formula=y~Q1*Q2*Q3*Sex, cov=Sex)

# fit the same with an additive model <- fitqtl(fake.f2$pheno[,1], qtl, formula=y~Q1+Q2+Q3+Sex, cov=Sex)
## End(Not run)

[Package qtl version 0.98-57 Index]