The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
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().
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:
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.
# 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.
| 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? |
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)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.
bm_m2() →
counts are overdispersed; quasi-Poisson standard errors are used
automatically, because Poisson would overstate significance.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.
GPL-3. Author: Dr. Praveen Kumar B. K., Department of Genetics and Plant Breeding, Agriculture University, Jodhpur, India.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.