| Type: | Package | 
| Title: | Random-Effect Multiple QTL Mapping in Autopolyploids | 
| Version: | 0.2.4 | 
| Maintainer: | Gabriel de Siqueira Gesteira <gdesiqu@ncsu.edu> | 
| Description: | Performs random-effect multiple interval mapping (REMIM) in full-sib families of autopolyploid species based on restricted maximum likelihood (REML) estimation and score statistics, as described in Pereira et al. (2020) <doi:10.1534/genetics.120.303080>. | 
| License: | GPL-3 | 
| URL: | https://gabrielgesteira.github.io/QTLpoly/ | 
| BugReports: | https://github.com/gabrielgesteira/QTLpoly/issues | 
| Encoding: | UTF-8 | 
| LazyData: | TRUE | 
| LazyDataCompression: | xz | 
| Depends: | R (≥ 4.0) | 
| Imports: | ggplot2 (≥ 3.1), abind (≥ 1.4), MASS (≥ 7.3), gtools (≥ 3.9.2), CompQuadForm, Matrix, RLRsim, mvtnorm, nlme, quadprog, parallel, doParallel, foreach, stats, methods, mappoly, Rcpp (≥ 0.12.19) | 
| LinkingTo: | Rcpp, RcppArmadillo, RcppProgress | 
| Suggests: | rmarkdown, devtools, knitr | 
| RoxygenNote: | 7.2.3 | 
| NeedsCompilation: | yes | 
| Packaged: | 2024-03-20 18:48:26 UTC; gdesiqu | 
| Author: | Guilherme da Silva Pereira | 
| Repository: | CRAN | 
| Date/Publication: | 2024-03-25 20:50:06 UTC | 
Autotetraploid potato dataset
Description
A dataset of the B2721 population which derived from a cross between two tetraploid potato varieties: Atlantic × B1829-5.
Usage
B2721
Format
An object of class mappoly.data from the package mappoly.
Author(s)
Marcelo Mollinari, mmollin@ncsu.edu
References
Mollinari M, Garcia AAF (2019) Linkage analysis and haplotype phasing in experimental autopolyploid populations with high ploidy level using hidden Markov models, G3: Genes|Genomes|Genetics 9 (10): 3297-3314. doi:10.1534/g3.119.400378
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Pereira GS, Mollinari M, Schumann MJ, Clough ME, Zeng ZB, Yencho C (2021) The recombination landscape and multiple QTL mapping in a Solanum tuberosum cv. ‘Atlantic’-derived F_1 population. Heredity. doi:10.1038/s41437-021-00416-x.
Examples
library(mappoly)
print(B2721)
Prediction of QTL-based breeding values from REMIM model
Description
Computes breeding values for each genotyped individual based on multiple QTL models
Usage
breeding_values(data, fitted)
## S3 method for class 'qtlpoly.bvalues'
plot(x, pheno.col = NULL, ...)
Arguments
| data | an object of class  | 
| fitted | an object of class  | 
| x | an object of class  | 
| pheno.col | a numeric vector with the phenotype column numbers to be plotted; if  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.bvalues which is a list of results for each trait containing the following components:
| pheno.col | a phenotype column number. | 
| y.hat | a column matrix of breeding value for each individual. | 
A ggplot2 histogram with the distribution of breeding values.
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob) #5,7
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Fit model
  fitted.mod = fit_model(data = data, model = remim.mod, probs = "joint", polygenes = "none")
  # Predict genotypic values
  y.hat = breeding_values(data = data, fitted = fitted.mod)
  plot(y.hat)
  
  
Fixed-effect interval mapping (FEIM)
Description
Performs interval mapping using the single-QTL, fixed-effect model proposed by Hackett et al. (2001).
Usage
feim(
  data = data,
  pheno.col = NULL,
  w.size = 15,
  sig.lod = 7,
  d.sint = 1.5,
  plot = NULL,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.feim'
print(x, pheno.col = NULL, sint = NULL, ...)
Arguments
| data | an object of class  | 
| pheno.col | a numeric vector with the phenotype columns to be analyzed; if  | 
| w.size | a number representing the window size (in centiMorgans) to be avoided on either side of QTL already in the model when looking for a new QTL, e.g. 15 (default). | 
| sig.lod | the vector of desired significance LOD thresholds (usually permutation-based) for declaring a QTL for each trait, e.g. 5 (default); if a single value is provided, the same LOD threshold will be applied to all traits. | 
| d.sint | a  | 
| plot | a suffix for the file's name containing plots of every algorithm step, e.g. "remim" (default); if  | 
| verbose | if  | 
| x | an object of class  | 
| sint | whether  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.feim which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| LRT | a vector containing LRT values. | 
| LOD | a vector containing LOD scores. | 
| AdjR2 | a vector containing adjusted  | 
| qtls | a data frame with information from the mapped QTL. | 
| lower | a data frame with information from the lower support interval of mapped QTL. | 
| upper | a data frame with information from the upper support interval of mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Hackett CA, Bradshaw JE, McNicol JW (2001) Interval mapping of quantitative trait loci in autotetraploid species, Genetics 159: 1819-1832.
See Also
Examples
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 5)
  # Perform remim
  feim.mod = feim(data = data, sig.lod = 7)
Fits multiple QTL models
Description
Fits alternative multiple QTL models by performing variance component estimation using REML.
Usage
fit_model(
  data,
  model,
  probs = "joint",
  polygenes = "none",
  keep = TRUE,
  verbose = TRUE,
  pheno.col = NULL
)
## S3 method for class 'qtlpoly.fitted'
summary(object, pheno.col = NULL, ...)
Arguments
| data | an object of class  | 
| model | an object of class  | 
| probs | a character string indicating if either  | 
| polygenes | a character string indicating if either  | 
| keep | if  | 
| verbose | if  | 
| pheno.col | a numeric vector with the phenotype column numbers to be summarized; if  | 
| object | an object of class  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.fitted which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| fitted | a sommer object of class  | 
| qtls | a data frame with information from the mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Covarrubias-Pazaran G (2016) Genome-assisted prediction of quantitative traits using the R package sommer. PLoS ONE 11 (6): 1–15. doi:10.1371/journal.pone.0156744.
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Fit model
  fitted.mod = fit_model(data=data, model=remim.mod, probs="joint", polygenes="none")
  
Fits multiple QTL models
Description
Fits alternative multiple QTL models by performing variance component estimation using REML.
Usage
fit_model2(
  data,
  model,
  probs = "joint",
  polygenes = "none",
  keep = TRUE,
  verbose = TRUE,
  pheno.col = NULL
)
Arguments
| data | an object of class  | 
| model | an object of class  | 
| probs | a character string indicating if either  | 
| polygenes | a character string indicating if either  | 
| keep | if  | 
| verbose | if  | 
| pheno.col | a numeric vector with the phenotype column numbers to be summarized; if  | 
Value
An object of class qtlpoly.fitted which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| fitted | a sommer object of class  | 
| qtls | a data frame with information from the mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Covarrubias-Pazaran G (2016) Genome-assisted prediction of quantitative traits using the R package sommer. PLoS ONE 11 (6): 1–15. doi:10.1371/journal.pone.0156744.
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Fit model
  fitted.mod = fit_model(data=data, model=remim.mod, probs="joint", polygenes="none")
  
Simulated autohexaploid dataset.
Description
A dataset of a hypothetical autohexaploid full-sib population containing three homology groups
Usage
hexafake
Format
An object of class mappoly.data which contains a
list with the following components:
- plody
- ploidy level = 6 
- n.ind
- number individuals = 300 
- n.mrk
- total number of markers = 1500 
- ind.names
- the names of the individuals 
- mrk.names
- the names of the markers 
- dosage.p1
- a vector containing the dosage in parent P for all - n.mrkmarkers
- dosage.p2
- a vector containing the dosage in parent Q for all - n.mrkmarkers
- chrom
- a vector indicating the chromosome each marker belongs. Zero indicates that the marker was not assigned to any chromosome 
- genome.pos
- Physical position of the markers into the sequence 
- geno.dose
- a matrix containing the dosage for each markers (rows) for each individual (columns). Missing data are represented by - ploidy_level + 1 = 7
- n.phen
- There are no phenotypes in this simulation 
- phen
- There are no phenotypes in this simulation 
- chisq.pval
- vector containing p-values for all markers associated to the chi-square test for the expected segregation patterns under Mendelian segregation 
Author(s)
Marcelo Mollinari, mmollin@ncsu.edu
References
Mollinari M, Garcia AAF (2019) Linkage analysis and haplotype phasing in experimental autopolyploid populations with high ploidy level using hidden Markov models, G3: Genes|Genomes|Genetics 9 (10): 3297-3314. doi:10.1534/g3.119.400378
Examples
library(mappoly)
plot(hexafake)
Autotetraploid potato map
Description
A real autotetraploid potato map containing 12 homology groups from a tetraploid potato full-sib family (Atlantic x B1829-5).
Usage
maps4x
Format
An object of class "mappoly.map" from the package mappoly, which is a list of 12 linkage groups (LGs)
Author(s)
Marcelo Mollinari, mmollin@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2019) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Mollinari M, Garcia AAF (2019) Linkage analysis and haplotype phasing in experimental autopolyploid populations with high ploidy level using hidden Markov models, G3: Genes|Genomes|Genetics 9 (10): 3297-3314. doi:10.1534/g3.119.400378
Pereira GS, Mollinari M, Schumann MJ, Clough ME, Zeng ZB, Yencho C (2021) The recombination landscape and multiple QTL mapping in a Solanum tuberosum cv. ‘Atlantic’-derived F_1 population. Heredity. doi:10.1038/s41437-021-00416-x.
See Also
Examples
library(mappoly)
plot_map_list(maps4x)
Simulated autohexaploid map
Description
A simulated map containing three homology groups of a hypotetical cross between two autohexaploid individuals.
Usage
maps6x
Format
An object of class "mappoly.map" from the package mappoly, which is a list of three linkage groups (LGs):
- LG 1
- 538 markers distributed along 112.2 cM 
- LG 2
- 329 markers distributed along 54.6 cM 
- LG 3
- 443 markers distributed along 98.2 cM 
Author(s)
Marcelo Mollinari, mmollin@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2019) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Mollinari M, Garcia AAF (2019) Linkage analysis and haplotype phasing in experimental autopolyploid populations with high ploidy level using hidden Markov models, G3: Genes|Genomes|Genetics 9 (10): 3297-3314. doi:10.1534/g3.119.400378
See Also
Examples
library(mappoly)
plot_map_list(maps6x)
Adapt to sommer MNR core function
Description
Adapts genomic incidence and relationship (varcov) matrices to run using sommer's C++ core function (v. 4.0 or higher) Function adapted from sommer v. 3.6 (Author: Giovanny Covarrubias-Pazaran)
Usage
mmer_adapted(
  Y,
  X = NULL,
  Z = NULL,
  R = NULL,
  W = NULL,
  method = "NR",
  init = NULL,
  iters = 20,
  tolpar = 0.001,
  tolparinv = 1e-06,
  draw = FALSE,
  silent = FALSE,
  constraint = TRUE,
  EIGEND = FALSE,
  forced = NULL,
  IMP = FALSE,
  complete = TRUE,
  check.model = TRUE,
  restrained = NULL,
  REML = TRUE,
  init.equal = TRUE,
  date.warning = TRUE,
  verbose = FALSE
)
Author(s)
Gabriel de Siqueira Gesteira, gdesiqu@ncsu.edu
References
Covarrubias-Pazaran G (2016) Genome-assisted prediction of quantitative traits using the R package sommer. PLoS ONE 11 (6): 1–15. doi:10.1371/journal.pone.0156744.
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Modify QTL model
Description
Adds or removes QTL manually from a given model.
Usage
modify_qtl(
  model,
  pheno.col = NULL,
  add.qtl = NULL,
  drop.qtl = NULL,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.modify'
print(x, pheno.col = NULL, ...)
Arguments
| model | an object of class  | 
| pheno.col | a phenotype column number whose model will be modified or printed. | 
| add.qtl | a marker position number to be added. | 
| drop.qtl | a marker position number to be removed. | 
| verbose | if  | 
| x | an object of class  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.modify which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Modify model
  modified.mod = modify_qtl(model = remim.mod, pheno.col = 1, drop.qtl = 18)
  
Null model
Description
Creates a null model (with no QTL) for each trait.
Usage
null_model(
  data,
  offset.data = NULL,
  pheno.col = NULL,
  n.clusters = NULL,
  plot = NULL,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.null'
print(x, pheno.col = NULL, ...)
## S3 method for class 'qtlpoly.null'
print(x, pheno.col = NULL, ...)
Arguments
| data | an object of class  | 
| offset.data | a data frame with the same dimensions of  | 
| pheno.col | a numeric vector with the phenotype columns to be analyzed; if  | 
| n.clusters | number of parallel processes to spawn. | 
| plot | a suffix for the file's name containing simple plots of every QTL search round, e.g. "null" (default); if  | 
| verbose | if  | 
| x | an object of class  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.null which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL ( | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Qu L, Guennel T, Marshall SL (2013) Linear score tests for variance components in linear mixed models and applications to genetic association studies. Biometrics 69 (4): 883–92.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Build null models
  null.mod = null_model(data = data, pheno.col = 1, n.clusters = 1)
  
Null model
Description
Creates a null model (with no QTL) for each trait.
Usage
null_model2(
  data,
  offset.data = NULL,
  pheno.col = NULL,
  n.clusters = NULL,
  plot = NULL,
  verbose = TRUE
)
Arguments
| data | an object of class  | 
| offset.data | a data frame with the same dimensions of  | 
| pheno.col | a numeric vector with the phenotype columns to be analyzed; if  | 
| n.clusters | number of parallel processes to spawn. | 
| plot | a suffix for the file's name containing simple plots of every QTL search round, e.g. "null" (default); if  | 
| verbose | if  | 
Value
An object of class qtlpoly.null which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL ( | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu, Gabriel de Siqueira Gesteira, gdesiqu@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Qu L, Guennel T, Marshall SL (2013) Linear score tests for variance components in linear mixed models and applications to genetic association studies. Biometrics 69 (4): 883–92.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Build null models
  null.mod = null_model(data = data, pheno.col = 1, n.clusters = 1)
  
Model optimization
Description
Tests each QTL at a time and updates its position (if it changes) or drops the QTL (if non-significant).
Usage
optimize_qtl(
  data,
  offset.data = NULL,
  model,
  sig.bwd = 0.05,
  score.null = NULL,
  polygenes = FALSE,
  n.clusters = NULL,
  plot = NULL,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.optimize'
print(x, pheno.col = NULL, ...)
Arguments
| data | an object of class  | 
| offset.data | a data frame with the same dimensions of  | 
| model | an object of class  | 
| sig.bwd | the desired score-based p-value threshold for backward elimination, e.g. 0.0001 (default). | 
| score.null | an object of class  | 
| polygenes | if  | 
| n.clusters | number of parallel processes to spawn. | 
| plot | a suffix for the file's name containing plots of every QTL optimization round, e.g. "optimize" (default); if  | 
| verbose | if  | 
| x | an object of class  | 
| pheno.col | a numeric vector with the phenotype columns to be printed; if  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.optimize which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Qu L, Guennel T, Marshall SL (2013) Linear score tests for variance components in linear mixed models and applications to genetic association studies. Biometrics 69 (4): 883–92.
Zou F, Fine JP, Hu J, Lin DY (2004) An efficient resampling method for assessing genome-wide statistical significance in mapping quantitative trait loci. Genetics 168 (4): 2307-16. doi:10.1534/genetics.104.031427
See Also
read_data, null_model, search_qtl
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Build null model
  null.mod = null_model(data = data, pheno.col = 1,n.clusters = 1)
  # Perform forward search
  search.mod = search_qtl(data = data, model = null.mod,
w.size = 15, sig.fwd = 0.01, n.clusters = 1)
  # Optimize model
  optimize.mod = optimize_qtl(data = data, model = search.mod, sig.bwd = 0.0001, n.clusters = 1)
  
Fixed-effect interval mapping (FEIM) model permutations
Description
Stores maximum LOD scores for a number of permutations of given phenotypes.
Usage
permutations(
  data,
  offset.data = NULL,
  pheno.col = NULL,
  n.sim = 1000,
  probs = c(0.9, 0.95),
  n.clusters = NULL,
  seed = 123,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.perm'
print(x, pheno.col = NULL, probs = c(0.9, 0.95), ...)
## S3 method for class 'qtlpoly.perm'
plot(x, pheno.col = NULL, probs = c(0.9, 0.95), ...)
Arguments
| data | an object of class  | 
| offset.data | a subset of the data object to be used in permutation calculations. | 
| pheno.col | a numeric vector with the phenotype columns to be analyzed; if  | 
| n.sim | a number of simulations, e.g. 1000 (default). | 
| probs | a vector of probability values in [0, 1] representing the quantiles, e.g. c(0.90, 0.95) for the 90% and 95% quantiles. | 
| n.clusters | a number of parallel processes to spawn. | 
| seed | an integer for the  | 
| verbose | if  | 
| x | an object of class  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.perm which contains a list of results for each trait with the maximum LOD score per permutation.
LOD score thresholds for given quantiles for each trait.
A ggplot2 histogram with the distribution of ordered maximum LOD scores and thresholds for given quantiles for each trait.
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Churchill GA, Doerge RW (1994) Empirical threshold values for quantitative trait mapping, Genetics 138: 963-971.
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Perform permutations
  perm = permutations(data = data, pheno.col = 1, n.sim = 10, n.clusters = 1)
  
Autotetraploid potato phenotypes
Description
A subset of phenotypes from a tetraploid potato full-sib family (Atlantic x B1829-5).
Usage
pheno4x
Format
A data frame of phenotypes with 156 named individuals in rows and three named phenotypes in columns, which are:
- FM07
- Foliage maturity evaluated in 2007. 
- FM08
- Foliage maturity evaluated in 2008. 
- FM14
- Foliage maturity evaluated in 2014. 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Pereira GS, Mollinari M, Schumann MJ, Clough ME, Zeng ZB, Yencho C (2021) The recombination landscape and multiple QTL mapping in a Solanum tuberosum cv. ‘Atlantic’-derived F_1 population. Heredity. doi:10.1038/s41437-021-00416-x.
Examples
head(pheno4x)
Simulated phenotypes
Description
A simulated data set of phenotypes for a hipotetical autohexaploid species map.
Usage
pheno6x
Format
A data frame of phenotypes with 300 named individuals in rows and three named phenotypes in columns, which are:
- T32
- 3 QTLs, with heritabilities of 0.20 (LG 1 at 32.03 cM), 0.15 (LG 1 at 95.02 cM) and 0.30 (LG 2 at 40.01 cM). 
- T17
- 1 QTL, with heritability of 0.15 (LG 3 at 34.51 cM). 
- T45
- no QTLs. 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2019) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
head(pheno6x)
Logarithm of P-value (LOP) profile plots
Description
Plots profiled logarithm of score-based P-values (LOP) from individual or combined traits.
Usage
plot_profile(
  data = data,
  model = model,
  pheno.col = NULL,
  sup.int = FALSE,
  main = NULL,
  legend = "bottom",
  ylim = NULL,
  grid = FALSE
)
Arguments
| data | an object of class  | 
| model | an object of class  | 
| pheno.col | a numeric vector with the phenotype column numbers to be plotted; if  | 
| sup.int | if  | 
| main | a character string with the main title; if  | 
| legend | legend position (either "bottom", "top", "left" or "right"); if  | 
| ylim | a numeric value pair supplying the limits of y-axis, e.g. c(0,10); if  | 
| grid | if  | 
Value
A ggplot2 with the LOP profiles for each trait.
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Plot profile
  plot_profile(data = data, model = remim.mod, grid = FALSE)
  
QTL heritability and significance plot
Description
Creates a plot where dot sizes and colors represent the QTLs heritabilities and their p-values, respectively.
Usage
plot_qtl(
  data = data,
  model = model,
  fitted = fitted,
  pheno.col = NULL,
  main = NULL,
  drop.pheno = TRUE,
  drop.lgs = TRUE
)
Arguments
| data | an object of class  | 
| model | an object of class  | 
| fitted | an object of class  | 
| pheno.col | the desired phenotype column numbers to be plotted. The order here specifies the order of plotting (from top to bottom.) | 
| main | plot title; if  | 
| drop.pheno | if  | 
| drop.lgs | if  | 
Value
A ggplot2 with dots representing the QTLs.
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Fit model
  fitted.mod = fit_model(data, remim.mod, probs="joint", polygenes="none")
  # Plot QTL
  plot_qtl(data, remim.mod, fitted.mod)
  
QTLs with respective support interval plots
Description
Creates a plot where colored bars represent the support intervals for QTL peaks (black dots).
Usage
plot_sint(data, model, pheno.col = NULL, main = NULL, drop = FALSE)
Arguments
| data | an object of class  | 
| model | an object of class  | 
| pheno.col | a numeric vector with the phenotype column numbers to be plotted; if  | 
| main | a character string with the main title; if  | 
| drop | if  | 
Value
A ggplot2 with QTL bars for each linkage group.
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Plot support intervals
  plot_sint(data = data, model = remim.mod)
  
QTL profiling
Description
Generates the score-based genome-wide profile conditional to the selected QTL.
Usage
profile_qtl(
  data,
  model,
  d.sint = 1.5,
  polygenes = FALSE,
  n.clusters = NULL,
  plot = NULL,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.profile'
print(x, pheno.col = NULL, sint = NULL, ...)
Arguments
| data | an object of class  | 
| model | an object of class  | 
| d.sint | a  | 
| polygenes | if  | 
| n.clusters | number of parallel processes to spawn. | 
| plot | a suffix for the file's name containing plots of every QTL profiling round, e.g. "profile" (default); if  | 
| verbose | if  | 
| x | an object of class  | 
| pheno.col | a numeric vector with the phenotype column numbers to be plotted; if  | 
| sint | whether  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.profile which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL. | 
| lower | a data frame with information from the lower support interval of mapped QTL. | 
| upper | a data frame with information from the upper support interval of mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Qu L, Guennel T, Marshall SL (2013) Linear score tests for variance components in linear mixed models and applications to genetic association studies. Biometrics 69 (4): 883–92.
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Build null model
  null.mod = null_model(data, pheno.col = 1, n.clusters = 1)
  # Perform forward search
  search.mod = search_qtl(data = data, model = null.mod,
w.size = 15, sig.fwd = 0.01, n.clusters = 1)
  # Optimize model
  optimize.mod = optimize_qtl(data = data, model = search.mod, sig.bwd = 0.0001, n.clusters = 1)
  # Profile model
  profile.mod = profile_qtl(data = data, model = optimize.mod, d.sint = 1.5, n.clusters = 1)
  
QTL allele effect estimation
Description
Computes allele specific and allele combination (within-parent) heritable effects from multiple QTL models.
Usage
qtl_effects(ploidy = 6, fitted, pheno.col = NULL, verbose = TRUE)
## S3 method for class 'qtlpoly.effects'
plot(x, pheno.col = NULL, p1 = "P1", p2 = "P2", ...)
Arguments
| ploidy | a numeric value of ploidy level of the cross (currently, only 2, 4 or 6). | 
| fitted | a fitted multiple QTL model of class  | 
| pheno.col | a numeric vector with the phenotype column numbers to be plotted; if  | 
| verbose | if  | 
| x | an object of class  | 
| p1 | a character string with the first parent name, e.g.  | 
| p2 | a character string with the second parent name, e.g.  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.effects which is a list of results for each containing the following components:
| pheno.col | a phenotype column number. | 
| y.hat | a vector with the predicted values. | 
A ggplot2 barplot with parental allele and allele combination effects.
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu, with modifications by Gabriel Gesteira, gdesiqu@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Kempthorne O (1955) The correlation between relatives in a simple autotetraploid population, Genetics 40: 168-174.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  # Fit model
  fitted.mod = fit_model(data, model=remim.mod, probs="joint", polygenes="none")
  # Estimate effects
  est.effects = qtl_effects(ploidy = 4, fitted = fitted.mod, pheno.col = 1)
  # Plot results
  plot(est.effects)
  
  
Read genotypic and phenotypic data
Description
Reads files in specific formats and creates a qtlpoly.data object to be used in subsequent analyses.
Usage
read_data(
  ploidy = 6,
  geno.prob,
  geno.dose = NULL,
  double.reduction = FALSE,
  pheno,
  weights = NULL,
  step = 1,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.data'
print(x, detailed = FALSE, ...)
Arguments
| ploidy | a numeric value of ploidy level of the cross. | 
| geno.prob | an object of class  | 
| geno.dose | an object of class  | 
| double.reduction | if  | 
| pheno | a data frame of phenotypes (columns) with individual names (rows) identical to individual names in  | 
| weights | a data frame of phenotype weights (columns) with individual names (rows) identical to individual names in  | 
| step | a numeric value of step size (in centiMorgans) where tests will be performed, e.g. 1 (default); if  | 
| verbose | if  | 
| x | an object of class  | 
| detailed | if  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.data which is a list containing the following components:
| ploidy | a scalar with ploidy level. | 
| nlgs | a scalar with the number of linkage groups. | 
| nind | a scalar with the number of individuals. | 
| nmrk | a scalar with the number of marker positions. | 
| nphe | a scalar with the number of phenotypes. | 
| lgs.size | a vector with linkage group sizes. | 
| cum.size | a vector with cumulative linkage group sizes. | 
| lgs.nmrk | a vector with number of marker positions per linkage group. | 
| cum.nmrk | a vector with cumulative number of marker positions per linkage group. | 
| lgs | a list with selected marker positions per linkage group. | 
| lgs.all | a list with all marker positions per linkage group. | 
| step | a scalar with the step size. | 
| pheno | a data frame with phenotypes. | 
| G | a list of relationship matrices for each marker position. | 
| Z | a list of conditional probability matrices for each marker position for genotypes. | 
| X | a list of conditional probability matrices for each marker position for alleles. | 
| Pi | a matrix of identical-by-descent shared alleles among genotypes. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu, with minor updates by Gabriel de Siqueira Gesteira, gdesiqu@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  
Read genotypic and phenotypic data
Description
Reads files in specific formats and creates a qtlpoly.data object to be used in subsequent analyses.
Usage
read_data2(
  ploidy = 6,
  geno.prob,
  geno.dose = NULL,
  double.reduction = FALSE,
  pheno,
  weights = NULL,
  step = 1,
  verbose = TRUE
)
Arguments
| ploidy | a numeric value of ploidy level of the cross. | 
| geno.prob | an object of class  | 
| geno.dose | an object of class  | 
| double.reduction | if  | 
| pheno | a data frame of phenotypes (columns) with individual names (rows) identical to individual names in  | 
| weights | a data frame of phenotype weights (columns) with individual names (rows) identical to individual names in  | 
| step | a numeric value of step size (in centiMorgans) where tests will be performed, e.g. 1 (default); if  | 
| verbose | if  | 
Value
An object of class qtlpoly.data which is a list containing the following components:
| ploidy | a scalar with ploidy level. | 
| nlgs | a scalar with the number of linkage groups. | 
| nind | a scalar with the number of individuals. | 
| nmrk | a scalar with the number of marker positions. | 
| nphe | a scalar with the number of phenotypes. | 
| lgs.size | a vector with linkage group sizes. | 
| cum.size | a vector with cumulative linkage group sizes. | 
| lgs.nmrk | a vector with number of marker positions per linkage group. | 
| cum.nmrk | a vector with cumulative number of marker positions per linkage group. | 
| lgs | a list with selected marker positions per linkage group. | 
| lgs.all | a list with all marker positions per linkage group. | 
| step | a scalar with the step size. | 
| pheno | a data frame with phenotypes. | 
| G | a list of relationship matrices for each marker position. | 
| Z | a list of conditional probability matrices for each marker position for genotypes. | 
| X | a list of conditional probability matrices for each marker position for alleles. | 
| Pi | a matrix of identical-by-descent shared alleles among genotypes. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu, Gabriel de Siqueira Gesteira, gdesiqu@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  
Random-effect multiple interval mapping (REMIM)
Description
Automatic function that performs REMIM algorithm using score statistics.
Usage
remim(
  data,
  pheno.col = NULL,
  w.size = 15,
  sig.fwd = 0.01,
  sig.bwd = 1e-04,
  score.null = NULL,
  d.sint = 1.5,
  polygenes = FALSE,
  n.clusters = NULL,
  n.rounds = Inf,
  plot = NULL,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.remim'
print(x, pheno.col = NULL, sint = NULL, ...)
Arguments
| data | an object of class  | 
| pheno.col | a numeric vector with the phenotype columns to be analyzed or printed; if  | 
| w.size | the window size (in centiMorgans) to avoid on either side of QTL already in the model when looking for a new QTL, e.g. 15 (default). | 
| sig.fwd | the desired score-based significance level for forward search, e.g. 0.01 (default). | 
| sig.bwd | the desired score-based significance level for backward elimination, e.g. 0.001 (default). | 
| score.null | an object of class  | 
| d.sint | a  | 
| polygenes | if  | 
| n.clusters | number of parallel processes to spawn. | 
| n.rounds | number of search rounds; if  | 
| plot | a suffix for the file's name containing plots of every algorithm step, e.g. "remim"; if  | 
| verbose | if  | 
| x | an object of class  | 
| sint | whether  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.remim which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL. | 
| lower | a data frame with information from the lower support interval of mapped QTL. | 
| upper | a data frame with information from the upper support interval of mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Kao CH, Zeng ZB, Teasdale RD (1999) Multiple interval mapping for quantitative trait loci. Genetics 152 (3): 1203–16.
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Qu L, Guennel T, Marshall SL (2013) Linear score tests for variance components in linear mixed models and applications to genetic association studies. Biometrics 69 (4): 883–92.
Zou F, Fine JP, Hu J, Lin DY (2004) An efficient resampling method for assessing genome-wide statistical significance in mapping quantitative trait loci. Genetics 168 (4): 2307-16. doi:10.1534/genetics.104.031427
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  
Random-effect multiple interval mapping (REMIM)
Description
Automatic function that performs REMIM algorithm using score statistics.
Usage
remim2(
  data,
  pheno.col = NULL,
  w.size = 15,
  sig.fwd = 0.01,
  sig.bwd = 1e-04,
  score.null = NULL,
  d.sint = 1.5,
  polygenes = FALSE,
  n.clusters = NULL,
  n.rounds = Inf,
  plot = NULL,
  verbose = TRUE
)
Arguments
| data | an object of class  | 
| pheno.col | a numeric vector with the phenotype columns to be analyzed or printed; if  | 
| w.size | the window size (in centiMorgans) to avoid on either side of QTL already in the model when looking for a new QTL, e.g. 15 (default). | 
| sig.fwd | the desired score-based significance level for forward search, e.g. 0.01 (default). | 
| sig.bwd | the desired score-based significance level for backward elimination, e.g. 0.001 (default). | 
| score.null | an object of class  | 
| d.sint | a  | 
| polygenes | if  | 
| n.clusters | number of parallel processes to spawn. | 
| n.rounds | number of search rounds; if  | 
| plot | a suffix for the file's name containing plots of every algorithm step, e.g. "remim"; if  | 
| verbose | if  | 
| sint | whether  | 
Value
An object of class qtlpoly.remim which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL. | 
| lower | a data frame with information from the lower support interval of mapped QTL. | 
| upper | a data frame with information from the upper support interval of mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu, Getúlio Caixeta Ferreira, getulio.caifer@gmail.com
References
Kao CH, Zeng ZB, Teasdale RD (1999) Multiple interval mapping for quantitative trait loci. Genetics 152 (3): 1203–16.
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Qu L, Guennel T, Marshall SL (2013) Linear score tests for variance components in linear mixed models and applications to genetic association studies. Biometrics 69 (4): 883–92.
Zou F, Fine JP, Hu J, Lin DY (2004) An efficient resampling method for assessing genome-wide statistical significance in mapping quantitative trait loci. Genetics 168 (4): 2307-16. doi:10.1534/genetics.104.031427
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Search for QTL
  remim.mod = remim2(data = data, pheno.col = 1, w.size = 15, sig.fwd = 0.0011493379,
sig.bwd = 0.0002284465, d.sint = 1.5, n.clusters = 1)
  
QTL forward search
Description
Searches for QTL and adds them one at a time to a multiple random-effect QTL model based on score statistics.
Usage
search_qtl(
  data,
  offset.data = NULL,
  model,
  w.size = 15,
  sig.fwd = 0.2,
  score.null = NULL,
  polygenes = FALSE,
  n.rounds = Inf,
  n.clusters = NULL,
  plot = NULL,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.search'
print(x, pheno.col = NULL, ...)
Arguments
| data | an object of class  | 
| offset.data | a data frame with the same dimensions of  | 
| model | an object of class  | 
| w.size | the window size (in cM) to avoid on either side of QTL already in the model when looking for a new QTL. | 
| sig.fwd | the desired score-based p-value threshold for forward search, e.g. 0.01 (default). | 
| score.null | an object of class  | 
| polygenes | if  | 
| n.rounds | number of search rounds; if  | 
| n.clusters | number of parallel processes to spawn. | 
| plot | a suffix for the file's name containing plots of every QTL search round, e.g. "search" (default); if  | 
| verbose | if  | 
| x | an object of class  | 
| pheno.col | a numeric vector with the phenotype column numbers to be printed; if  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.search which contains a list of results for each trait with the following components:
| pheno.col | a phenotype column number. | 
| stat | a vector containing values from score statistics. | 
| pval | a vector containing p-values from score statistics. | 
| qtls | a data frame with information from the mapped QTL. | 
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
Qu L, Guennel T, Marshall SL (2013) Linear score tests for variance components in linear mixed models and applications to genetic association studies. Biometrics 69 (4): 883–92.
Zou F, Fine JP, Hu J, Lin DY (2004) An efficient resampling method for assessing genome-wide statistical significance in mapping quantitative trait loci. Genetics 168 (4): 2307-16. doi:10.1534/genetics.104.031427
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Build null model
  null.mod = null_model(data, pheno.col = 1, n.clusters = 1)
  # Perform forward search
  search.mod = search_qtl(data, model = null.mod, w.size = 15, sig.fwd = 0.01, n.clusters = 1)
  
Simulations of multiple QTL
Description
Simulate new phenotypes with a given number of QTL and creates new object with the same structure of class qtlpoly.data from an existing genetic map.
Usage
simulate_qtl(
  data,
  mu = 0,
  h2.qtl = c(0.3, 0.2, 0.1),
  var.error = 1,
  linked = FALSE,
  n.sim = 1000,
  missing = TRUE,
  w.size = 20,
  seed = 123,
  verbose = TRUE
)
## S3 method for class 'qtlpoly.simul'
print(x, detailed = FALSE, ...)
Arguments
| data | an object of class  | 
| mu | simulated phenotype mean, e.g. 0 (default). | 
| h2.qtl | vector with QTL heritabilities, e.g.  | 
| var.error | simulated error variance, e.g. 1 (default). | 
| linked | if  | 
| n.sim | number of simulations, e.g. 1000 (default). | 
| missing | if  | 
| w.size | the window size (in centiMorgans) between two (linked) QTL, e.g. 20 (default). | 
| seed | integer for the  | 
| verbose | if  | 
| x | an object of class  | 
| detailed | if  | 
| ... | currently ignored | 
Value
An object of class qtlpoly.sim which contains a list of results with the same structure of class qtlpoly.data.
Author(s)
Guilherme da Silva Pereira, gdasilv@ncsu.edu
References
Pereira GS, Gemenet DC, Mollinari M, Olukolu BA, Wood JC, Mosquera V, Gruneberg WJ, Khan A, Buell CR, Yencho GC, Zeng ZB (2020) Multiple QTL mapping in autopolyploids: a random-effect model approach with application in a hexaploid sweetpotato full-sib population, Genetics 215 (3): 579-595. doi:10.1534/genetics.120.303080.
See Also
Examples
  
  # Estimate conditional probabilities using mappoly package
  library(mappoly)
  library(qtlpoly)
  genoprob4x = lapply(maps4x[c(5)], calc_genoprob)
  data = read_data(ploidy = 4, geno.prob = genoprob4x, pheno = pheno4x, step = 1)
  # Simulate new phenotypes
  sim.dat = simulate_qtl(data = data, n.sim = 1)
  sim.dat