Statistical Analysis of Induced Mutagenesis Experiments in Crop Plants

A colour-first toolkit for the statistical analysis of induced mutagenesis experiments in crop plants. It fits dose-response models to physical and chemical mutagen data and estimates the median lethal and growth-reduction doses (LD50, GR50) with confidence intervals obtained from Fieller's theorem; quantifies first-generation biological damage (lethality, injury and pollen sterility); and estimates mutagenic effectiveness and mutagenic efficiency. Effectiveness and efficiency are conventionally reported as point estimates only; this package treats them as functions of binomial proportions and supplies interval estimates by the delta method on the logarithmic scale and by the nonparametric bootstrap. It further provides chlorophyll mutation spectrum analysis with tests of homogeneity and diversity, generalised linear models for second-generation mutant counts with formal assessment of overdispersion, and formal comparison of mutagens including relative biological effectiveness. Every analysis returns a tidy result object and a publication-ready 'ggplot2' figure. Methods follow Konzak et al. (1965, ISBN:9789201150653), Fieller (1954) and Katz et al. (1978) .


BKMutate

Statistical Analysis of Induced Mutagenesis Experiments in Crop Plants

BKMutate is an R package for the statistical analysis of mutation breeding experiments — gamma rays, EMS, sodium azide and any other physical or chemical mutagen. Every analysis returns a tidy result object and a publication-ready colour figure through a single verb, bm_plot().


What makes it different

Mutagenic effectiveness and efficiency are the two numbers on which every mutation-breeding paper turns — and they are almost universally reported as bare point estimates, with no indication of uncertainty.

BKMutate treats them as what they actually are:

  • Effectiveness = Mf ⁄ dose — a binomial proportion divided by a constant, so its interval follows by rescaling a Wilson score interval.
  • Efficiency = Mf ⁄ L — a ratio of two binomial proportions, formally identical to a relative risk. Intervals are obtained by the delta method on the log scale (Katz) and by the nonparametric bootstrap.

This lets you say whether two mutagens really differ, instead of comparing two numbers and hoping.

The package also uses Fieller's theorem for LD50 confidence intervals — the correct, asymmetric interval for a ratio of two correlated coefficients — rather than the symmetric delta approximation used by most software.


Install

# from CRAN (after release)
install.packages("BKMutate")

# development version
# remotes::install_github("bkpraveenars-del/BKMutate")

Depends only on ggplot2. No compiled code, so no Rtools needed.


The five analyses

Function Analysis Answers
bm_dose() Dose-response, LD50 / GR50 + Fieller CI What dose kills half the population?
bm_effect() Effectiveness & efficiency with CIs Which mutagen gives most mutations per unit damage?
bm_spectrum() Chlorophyll mutation spectrum Which mutant classes does each mutagen induce?
bm_m2() Poisson / quasi-Poisson GLM for M2 counts Is the mutation rate really different?
bm_compare() Mutagen comparison, RBE Is mutagen A significantly better than B?

Quick tour

library(BKMutate)

## 1. LD50 with Fieller intervals
d   <- bm_data("dose")
ld  <- bm_dose(d, dose = "dose", n_total = "n_treated",
               n_affected = "n_survived", mutagen = "mutagen")
ld;  bm_plot(ld)

## 2. Effectiveness and efficiency WITH confidence intervals
m   <- bm_data("m2")
ef  <- bm_effect(m, mutagen = "mutagen", dose = "dose",
                 m2_total = "M2_plants", m2_mutants = "M2_mutants",
                 lethality_n = "lethality_n", lethality_x = "lethality_x",
                 sterility_n = "sterility_n", sterility_x = "sterility_x",
                 injury = "injury_pct")
ef
bm_plot(ef)                      # effectiveness with confidence bands
bm_plot(ef, type = "efficiency") # efficiency with error bars

## 3. Chlorophyll mutation spectrum
s   <- bm_spectrum(bm_data("spectrum"), "mutagen",
                   c("albina","xantha","chlorina","viridis"), "dose")
s;  bm_plot(s)

## 4. M2 counts with overdispersion handled properly
cts <- bm_m2(bm_data("counts"), "mutants", "mutagen", "dose", "plants")
cts; bm_plot(cts)

## 5. Formal comparison of mutagens
cmp <- bm_compare(ef, dose_fit = ld, reference = "Gamma")
cmp; bm_plot(cmp)

Data format (long format, one row per treatment)

Dose-response — mutagen, dose, n_treated, n_survived (or a continuous seedling_height for GR50)

M1 damage + M2 mutation — mutagen, dose, M2_plants, M2_mutants, lethality_n, lethality_x, sterility_n, sterility_x, injury_pct

Spectrum — mutagen, dose, albina, xantha, chlorina, viridis

M2 family counts — mutagen, dose, family, plants, mutants

Column names are yours to choose; you tell each function which is which.


Interpreting the key numbers

  • LD50 — dose killing 50%. Mutation breeders usually treat near LD50 for the best balance of mutation yield against survival.
  • Effectiveness high → many mutations per unit dose.
  • Efficiency high → many mutations per unit of biological damage. This is what you actually want to maximise — it means mutations without wrecking the population.
  • Non-overlapping confidence intervals → a real difference between treatments. Overlapping intervals → do not claim a difference.
  • Spectrum evenness near 1 → broad spectrum of lesions; low → specific mode of action.
  • Dispersion > 1.5 in bm_m2() → counts are overdispersed; quasi-Poisson standard errors are used automatically, because Poisson would overstate significance.

Bundled example data

bm_data("dose") · bm_data("m2") · bm_data("spectrum") · bm_data("counts")

Three mutagens (gamma rays in kR, EMS in %, sodium azide in mM) across five doses each. These are synthetic benchmark datasets generated from known parameters with a fixed seed, so the true LD50 and mutation rates are known and estimates can be checked against them.


License

GPL-3. Author: Dr. Praveen Kumar B. K., Department of Genetics and Plant Breeding, Agriculture University, Jodhpur, India.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("BKMutate")

0.1.0 by Praveen Kumar B. K., 2 months ago


https://github.com/bkpraveenars-del/BKMutate


Report a bug at https://github.com/bkpraveenars-del/BKMutate/issues


Browse source code at https://github.com/cran/BKMutate


Authors: Praveen Kumar B. K. [aut, cre]


Documentation:   PDF Manual  


GPL-3 license


Imports stats, utils, grDevices, ggplot2

Suggests ggrepel, patchwork, knitr, rmarkdown, testthat


See at CRAN