The function check_cofactors
initially fits all significant QTL positions as co-factors, both individually and in combination. Significance thresholds
are re-estimated each time, yielding threshold-corrected LOD scores. If this leads to a change in the estimated position of QTL, or detection of subsequent peaks, a second
round of co-factor inclusion is performed for all new QTL or novel QTL combinations. Finally, the multi-QTL model that maximises the individual significance of each
QTL is returned as a data.frame. This can be directly passed to the function PVE
to estimate the percentage variance explained by the full
multi-QTL model and all possible sub-models.
Note: this function estimates the most likely QTL positions by maximising the threshold-corrected LOD at QTL peaks.
Non-additive interactions between QTL may be missed as a result. It is recommended to run a manual co-factor analysis as well,
as described in the package vignette.
check_cofactors(
IBD_list,
Phenotype.df,
genotype.ID,
trait.ID,
LOD_data = NULL,
min_res = 20,
test_full_model = FALSE,
verbose = TRUE,
...
)
Data frame with the following columns:
Linkage group identifier
CentiMorgan position
The difference between the LOD score at the peak and the significance threshold (always positive, otherwise the QTL would not be significant)
An identifier giving the co-factor model used in detecting the QTL (if no co-factors were included then NA
). The co-factor model is described
by concatenating all co-factor positions with a '+', so for example 1_10+4_20 would mean a co-factor model with 2 positions included as co-factors, namely 10 cM on linkage
group 1 and 20 cM on linkage group 4.
List of IBD_probabilities as estimated using one of the various methods available (e.g. estimate_IBD
).
A data.frame containing phenotypic values
The colname of Phenotype.df
that contains the population identifiers (F1 names) (must be a colname of Phenotype.df
)
The colname of Phenotype.df
that contains the response variable to use in the model (must be a colname of Phenotype.df
)
Output of QTLscan
function. Since v.0.1.0 this argument is optional - function will re-run a QTLscan
if not provided. Indeed, it may be desirable
to not specify LOD_data
if argument test_full_model
is TRUE
, as this will first combine the best results using additive-effects or allelic interaction-effects models before
searching for additional QTL.
The minimum genetic distance (resolution) assumed possible to consider 2 linked QTL (on the same linkage group) as independent. By default a value of 20 cM is used. This is not to suggest that 20 cM is a realistic resolution in a practical mapping study, but it provides the function with a criterion to consider 2 significant QTL within this distance as one and the same. For this purpose, 20 cM seems a reasonable value to use. In practice, closely linked QTL will generally "explain" all the variation at nearby positions, making it unlikely to be able to disentangle their effects. QTL positions will vary slightly when co-factors are introduced, but again this variation is presumed not to exceed 20 cM either side.
By default FALSE
, in which case the normal additive-effects model is used in QTLscan
. If set to TRUE
,
then both the additive and full models are run for each genome-wide scan.
Logical, by default TRUE
- should progress messages be printed to the console?
Option to pass extra arguments to QTLscan
, for example specifying ncores
for parallel processing, or changing
the default settings of the permutation test (by default the number of permutations to perform = 1000 and alpha = 0.05). For a full list of options see the documentation of QTLscan
.
data("IBD_4x","BLUEs.pheno","qtl_LODs.4x")
check_cofactors(IBD_list=IBD_4x,Phenotype.df=BLUEs.pheno,
genotype.ID="Geno",trait.ID="BLUE",LOD_data=qtl_LODs.4x)
Run the code above in your browser using DataLab