fitqtl                  package:qtl                  R Documentation

_F_i_t _a _m_u_l_t_i_p_l_e-_Q_T_L _m_o_d_e_l

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

     fitqtl(cross, pheno.col=1, qtl, covar=NULL, formula, method=c("imp", "hk"),
            dropone=TRUE, get.ests=FALSE, run.checks=TRUE)

_A_r_g_u_m_e_n_t_s:

   cross: An object of class 'cross'. See 'read.cross' for details.

pheno.col: Column number in the phenotype matrix which should be used
          as the phenotype.  One may also give a character string
          matching a 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.

     qtl: An object of class 'qtl', as output from 'makeqtl'.

   covar: A matrix or data.frame of covariates.  These must be strictly
          numeric.

 formula: An object of class 'formula' indicating the model to be
          fitted.  (It can also be the character string representation
          of a formula.)  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 multiple imputation or Haley-Knott
          regression.

 dropone: If TRUE, do drop-one-term analysis.

get.ests: If TRUE, return estimated QTL effects and their estimated
          variance-covariance matrix.

run.checks: If TRUE, check the input formula and check for individuals
          with missing phenotypes or covariates.

_D_e_t_a_i_l_s:

     The formula is used to specified the model to be fit. In the
     formula, use 'Q1', 'Q2', etc., or 'q1', 'q2', etc., to represent
     the QTLs, and the column names in the covariate data frame to
     represent the covariates.

     We enforce a hierarchical structure on the model formula: if a QTL
     or covariate is in involved in an interaction, its main effect
     must also be included.   

     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.

     *The part to get estimated QTL effects is fully working only for
     the case of autosomes in a backcross or intercross. In other cases
     the values returned are based on a design matrix that is
     convenient for calculations but not easily interpreted.*

_V_a_l_u_e:

     An object of class 'fitqtl'. It may contains as many as four
     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.  'lod' is the LOD score from the fit of the full model.

        3.  '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.

        4.  'ests' contains the estimated QTL effects and standard
           errors.  

           *The part to get estimated QTL effects is fully working only
           for the case of autosomes in a backcross or intercross. In
           other cases the values returned are based on a design matrix
           that is convenient for calculations but not easily
           interpreted.*

_A_u_t_h_o_r(_s):

     Hao Wu; Karl W Broman, kbroman@biostat.wisc.edu

_R_e_f_e_r_e_n_c_e_s:

     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, \'S. and Churchill, G. A. (2001) A statistical framework for
     quantitative trait mapping.  _Genetics_ *159*, 371-387.

_S_e_e _A_l_s_o:

     'summary.fitqtl', 'makeqtl', 'scanqtl', 'refineqtl', 'addtoqtl' ,
     'dropfromqtl', 'replaceqtl', 'reorderqtl'

_E_x_a_m_p_l_e_s:

     data(fake.f2)

     # 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 <- calc.genoprob(fake.f2, step=2, err=0.001)
     qtl <- makeqtl(fake.f2, qc, qp, what="prob")

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

     ## Not run: 
     # fit an additive QTL model
     lod.add <- fitqtl(fake.f2, pheno.col=1, qtl, formula=y~Q1+Q2+Q3, method="hk")
     summary(lod.add)

     # fit the model including sex as an interacting covariate
     Sex <- data.frame(Sex=pull.pheno(fake.f2, "sex"))
     lod.sex <- fitqtl(fake.f2, pheno.col=1, qtl, formula=y~Q1*Q2*Q3*Sex,
                       cov=Sex, method="hk")
     summary(lod.sex)

     # fit the same with an additive model
     lod.sex.add <- fitqtl(fake.f2, pheno.col=1, qtl, formula=y~Q1+Q2+Q3+Sex,
                           cov=Sex, method="hk")
     summary(lod.sex.add)
     ## End(Not run)

