sim.cross {qtl} | R Documentation |
Simulates data for a QTL experiment using a model in which QTLs act additively.
sim.cross(map, model=NULL, n.ind=100, type=c("f2", "bc", "4way"), error.prob=0, missing.prob=0, partial.missing.prob=0, keep.qtlgeno=TRUE, keep.errorind=TRUE, m=0, p=0, map.function=c("haldane","kosambi","c-f","morgan"))
map |
A list whose components are vectors containing the marker locations on each of the chromosomes. |
model |
A matrix where each row corresponds to a different QTL, and gives the chromosome number, cM position and effects of the QTL. |
n.ind |
Number of individuals to simulate. |
type |
Indicates whether to simulate an intercross (f2 ),
a backcross (bc ), or a phase-known 4-way cross (4way ). |
error.prob |
The genotyping error rate. |
missing.prob |
The rate of missing genotypes. |
partial.missing.prob |
When simulating an intercross or 4-way cross, this gives the rate at which markers will be incompletely informative (i.e., dominant or recessive). |
keep.qtlgeno |
If TRUE, genotypes for the simulated QTLs will be included in the output. |
keep.errorind |
If TRUE, and if error.prob > 0 , the
identity of genotyping errors will be included in the output. |
m |
Interference parameter; a non-negative integer. 0 corresponds to no interference. |
p |
Probability that a chiasma comes from the no-interference mechanism |
map.function |
Indicates whether to use the Haldane, Kosambi, Carter-Falconer, or Morgan map function when converting genetic distances into recombination fractions. |
Meiosis is assumed to follow the Stahl model for crossover
interference (see the references, below), of which the no interference
model and the chi-square model are special cases. Chiasmata on the
four-strand bundle are a superposition of chiasmata from two different
mechanisms. With probability p
, they arise by a mechanism
exhibiting no interference; the remainder come from a chi-square model
with inteference parameter m
. Note that m=0
corresponds
to no interference, and with p=0
, one gets a pure chi-square
model.
If a chromosomes has class X
, it is assumed to be the X
chromosome, and is assumed to be segregating in the cross. Thus, in
an intercross, it is segregating like a backcross chromosome. In a
4-way cross, a second phenotype, sex
, will be generated.
QTLs are assumed to act additively, and the residual phenotypic variation is assumed to be normally distributed with variance 1.
For a backcross, the effect of a QTL is a single number corresponding to the difference between the homozygote and the heterozygote.
For an intercross, the effect of a QTL is a pair of numbers, (a,d), where a is the additive effect (half the difference between the homozygotes) and d is the dominance deviation (the difference between the heterozygote and the midpoint between the homozygotes).
For a four-way cross, the effect of a QTL is a set of three numbers, (a,b,c), where, in the case of one QTL, the mean phenotype, conditional on the QTL genotyping being AC, BC, AD or BD, is a, b, c or 0, respectively.
An object of class cross
. See read.cross
for
details.
If keep.qtlgeno
is TRUE, the cross object will contain a
component qtlgeno
which is a matrix containing the QTL
genotypes (with complete data and no errors), coded as in the genotype
data.
If keep.errorind
is TRUE and errors were simulated, each
component of geno
will each contain a matrix errors
,
with 1's indicating simulated genotyping errors.
Karl W Broman, kbroman@biostat.wisc.edu
Copenhaver, G. P., Housworth, E. A. and Stahl, F. W. (2002) Crossover interference in arabidopsis. Genetics 160, 1631–1639.
Foss, E., Lande, R., Stahl, F. W. and Steinberg, C. M. (1993) Chiasma interference as a function of genetic distance. Genetics 133, 681–691.
Zhao, H., Speed, T. P. and McPeek, M. S. (1995) Statistical analysis of crossover interference using the chi-square model. Genetics 139, 1045–1056.
sim.map
, read.cross
,
fake.f2
, fake.bc
fake.4way
# simulate a genetic map map <- sim.map() # simulate 250 intercross individuals with 2 QTLs fake <- sim.cross(map, type="f2", n.ind=250, model = rbind(c(1,45,1,1),c(5,20,0.5,-0.5)))