| 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