updog-package: 'updog' Flexible Genotyping for Polyploids

updog-packageR Documentation

updog Flexible Genotyping for Polyploids


Implements empirical Bayes approaches to genotype polyploids from next generation sequencing data while accounting for allele bias, overdispersion, and sequencing error. The main functions are flexdog() and multidog(), which allow the specification of many different genotype distributions. Also provided are functions to simulate genotypes, rgeno(), and read-counts, rflexdog(), as well as functions to calculate oracle genotyping error rates, oracle_mis(), and correlation with the true genotypes, oracle_cor(). These latter two functions are useful for read depth calculations. Run browseVignettes(package = "updog") in R for example usage. See Gerard et al. (2018) <\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1534/genetics.118.301468")}> and Gerard and Ferrao (2020) <\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/bioinformatics/btz852")}> for details on the implemented methods.


The package is named updog for "Using Parental Data for Offspring Genotyping" because we originally developed the method for full-sib populations, but it works now for more general populations.

Our best competitor is probably the fitPoly package, which you can check out at https://cran.r-project.org/package=fitPoly. Though, we think that updog returns better calibrated measures of uncertainty when you have next-generation sequencing data.

If you find a bug or want an enhancement, please submit an issue at https://github.com/dcgerard/updog/issues.

updog Functions


The main function that fits an empirical Bayes approach to genotype polyploids from next generation sequencing data.


A convenience function for running flexdog() over many SNPs. This function provides support for parallel computing.


Return arrayicized elements from the output of multidog().


Filter SNPs based on the output of multidog()


simulate the genotypes of a sample from one of the models allowed in flexdog().


Simulate read-counts from the flexdog() model.


Plotting the output of flexdog().


Plotting the output of multidog().


The joint distribution of the true genotype and an oracle estimator.


Visualize the output of oracle_joint().


The oracle misclassification error rate (Bayes rate).


Correlation between the true genotype and the oracle estimated genotype.

updog Datasets


A small example dataset for using flexdog.


A small example dataset


David Gerard


  • Gerard, D., Ferrão, L. F. V., Garcia, A. A. F., & Stephens, M. (2018). Genotyping Polyploids from Messy Sequencing Data. Genetics, 210(3), 789-807. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1534/genetics.118.301468")}.

  • Gerard, David, and Luís Felipe Ventorim Ferrão. "Priors for genotyping polyploids." Bioinformatics 36, no. 6 (2020): 1795-1800. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/bioinformatics/btz852")}.

updog documentation built on Nov. 17, 2023, 9:06 a.m.