R: General QTL scan

scanqtl {qtl} | R Documentation

## General QTL scan

### Description

Performs a multiple QTL scan for specified chromosomes and positions or intervals, with the possible inclusion of QTL-QTL interactions and/or covariates.

### Usage

    scanqtl(cross, pheno.col=1, chr, pos, covar=NULL, formula,
            method=c("imp","hk"), model=c("normal", "binary"),
            incl.markers=FALSE, verbose=TRUE, tol=1e-4, maxit=1000,
            forceXcovar=FALSE)

### Arguments

`cross` | An object of class `cross`. See `read.cross` for details.
`pheno.col` | Column number in the phenotype matrix to 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.
`chr` | Vector indicating the chromosome for each QTL. (These should be character strings referring to the chromosomes by name.)
`pos` | List indicating the positions or intervals on the chromosome to be scanned. Each element should be either a single number (for a specific position) or a pair of numbers (for an interval).
`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 indicated as `Q1`, `Q2`, etc. Covariates are indicated by their names in `covar`.
`method` | Indicates whether to use multiple imputation or Haley-Knott regression.
`model` | The phenotype model: the usual model or a model for binary traits
`incl.markers` | If FALSE, do calculations only at points on an evenly spaced grid. If `calc.genoprob` or `sim.geno` were run with `stepwidth="variable"` or `stepwidth="max"`, we force `incl.markers=TRUE`.
`verbose` | If TRUE, give feedback about progress.
`tol` | Tolerance for convergence for the binary trait model.
`maxit` | Maximum number of iterations for fitting the binary trait model.
`forceXcovar` | If TRUE, force inclusion of X-chr-related covariates (like sex and cross direction).

### Details

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 are also be included.

Only the interaction terms need to be specifed in the formula. The main effects of all input QTLs (as specified by chr and pos) and covariates (as specifed by covar) will be included by default. For example, if the formula is `y~Q1*Q2*Sex`, and there are three elements in input `chr` and `pos` and Sex is one of the column names for input covariates, the formula used in genome scan will be `y ~ Q1 + Q2 + Q3 + Sex + Q1:Q2 + Q1:Sex + Q2:Sex + Q1:Q2:Sex`.

The input `pos` is a list or vector to specify the position/range of the input chromosomes to be scanned. If it is a vector, it gives the precise positions of the QTL on the chromosomes. If it is a list, it will contain either the precise positions or a range on the chromosomes. For example, consider the case that the input `chr = c(1, 6, 13)`. If `pos = c(9.8, 34.0, 18.6)`, it means to fit a model with QTL on chromosome 1 at 9.8cM, chromosome 6 at 34cM and chromosome 13 at 18.6cM. If `pos = list(c(5,15), c(30,36), 18)`, it means to scan chromosome 1 from 5cM to 15cM, chromosome 6 from 30cM to 36cM, fix the QTL on chromosome 13 at 18cM.

### Value

An object of class `scanqtl`. It is a multi-dimensional array of LOD scores, with the number of dimension equal to the number of QTLs specifed.

### Author(s)

Hao Wu

### References

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.

### See Also

`fitqtl`, `makeqtl`, `refineqtl`

### Examples

    data(fake.f2)

    # take out several QTLs
    qc <- c(1, 8, 13)
    fake.f2 <- subset(fake.f2, chr=qc)

    # imputate genotypes

    fake.f2 <- calc.genoprob(fake.f2, step=5, err=0.001)

    # 2-dimensional genome scan with additive 3-QTL model
    pos <- list(c(15,35), c(45,65), 28)
    result <- scanqtl(fake.f2, pheno.col=1, chr=qc, pos=pos,
                      formula=y~Q1+Q2+Q3, method="hk")

    # image of the results
    # chr locations
    chr1 <- as.numeric(matrix(unlist(strsplit(colnames(result),"@")),
                       ncol=2,byrow=TRUE)[,2])
    chr8 <- as.numeric(matrix(unlist(strsplit(rownames(result),"@")),
                       ncol=2,byrow=TRUE)[,2])
    # image plot
    image(chr1, chr8, t(result), las=1, col=rev(rainbow(256,start=0,end=2/3)))

    # do the same, allowing the QTLs on chr 1 and 13 to interact
    result2 <- scanqtl(fake.f2, pheno.col=1, chr=qc, pos=pos,
                       formula=y~Q1+Q2+Q3+Q1:Q3, method="hk")
    # image plot
    image(chr1, chr8, t(result2), las=1, col=rev(rainbow(256,start=0,end=2/3)))

[Package qtl version 1.41-6 Index]