tests/testthat/test-dosage_ratios.R

context("Dosage Ratios")


test_that("test ratios",{
  #Input variables
  input <- diversity_items <- list()
  input$diversity_ploidy <- 2
  input$diversity_file$datapath <- system.file("iris_DArT_VCF.vcf.gz", package = "BIGr")

  ploidy <- as.numeric(input$diversity_ploidy)
  geno <- input$diversity_file$datapath

  #Import genotype information if in VCF format
  vcf <- read.vcfR(geno, verbose = FALSE)

  #Extract GT and convert to numeric calls
  geno_mat <- extract.gt(vcf, element = "GT")
  geno_mat <- apply(geno_mat, 2, convert_to_dosage)

  #Calculate percentages
  ratios_df <- dosage_ratios(geno_mat, ploidy = ploidy)

  #Get means for each dosage value
  dosage_means <- ratios_df %>%
    group_by(Dosage) %>%
    summarize(Mean_Percentage = mean(Percentage))

  #Checks
  expect_s3_class(ratios_df, "data.frame")
  expect_true(all(ratios_df$Percentage >= 0 & ratios_df$Percentage <= 100))
  expect_true(all(round(dosage_means$Mean_Percentage,5) == c(34.30327, 58.71075, 6.98597)))

})

Try the BIGr package in your browser

Any scripts or data that you put into this service are public.

BIGr documentation built on Nov. 5, 2025, 6:03 p.m.