Learn R Programming

xoi (version 0.72)

chiasma: Estimate chiasma distribution from crossover counts

Description

Fit several models, with an assumption of no chromatid interference, to crossover count data to obtain fitted distributions of the number of chiasmata.

Usage

chiasma(
  xo,
  max.chiasma = max(xo) * 2 + 5,
  n.iter = 10000,
  tol = 0.000001,
  verbose = FALSE
)

Value

A list with three components.

First, a matrix containing the observed distribution of the numbers of crossovers, followed by the fitted distributions under the Poisson model, the truncated Poisson model (assuming an obligate chiasma), the obligate chiasma model, and the freely varying model. In all cases we assume no chromatid interference.

Second, a matrix containing the estimated distributions of the number of chiasmata on the four-strand bundle for the above four models.

Third, the estimated average number of crossovers under the Poisson and truncated Poisson models.

Arguments

xo

Vector of non-negative integers; the number of crossovers in a set of meiotic products.

max.chiasma

Maximum number of chiasmata to allow.

n.iter

Maximum number of iterations in the EM algorithm.

tol

Tolerance for convergence of the EM algorithm.

verbose

If TRUE, print number of interations for each of the 4 models at the end.

Author

Karl W Broman, broman@wisc.edu

Details

See Broman and Weber (2000) for details of the method.

We use R's stats::integrate() function for numerical integrals, stats::optimize() for optimizing the likelihood, and stats::uniroot() for identifying the endpoints of the likelihood support interval.

References

Broman, K. W. and Weber, J. L. (2000) Characterization of human crossover interference. Am. J. Hum. Genet. 66, 1911--1926.

Broman, K. W., Rowe, L. B., Churchill, G. A. and Paigen, K. (2002) Crossover interference in the mouse. Genetics 160, 1123--1131.

Yu, K. and Feinbold, E. (2001) Estimating the frequency distribution of crossovers during meiosis from recombination data. Biometrics 57, 427--434.

See Also

fitGamma(), qtl::fitstahl(), countxo()

Examples

Run this code

data(bssbsb)

# estimated number of crossovers on chr 1
nxo <- countxo(bssbsb, chr=1)

# estimate chiasma distribution
if (FALSE) chiasma(nxo)
chiasma(nxo, tol=0.001)

Run the code above in your browser using DataLab