magnusdv / pedtools

Tools for working with pedigrees in R
GNU General Public License v3.0
23 stars 3 forks source link

`setAfreq()` should update mutation models #49

Closed magnusdv closed 1 year ago

magnusdv commented 1 year ago
library(pedtools)

x = nuclearPed() |> 
  addMarker(alleles = 1:2, afreq = c(0.5, 0.5)) |> 
  setMutmod(model = "prop", rate = 0.1)

mutmod(x, 1)
#> Unisex mutation matrix:
#>     1   2
#> 1 0.9 0.1
#> 2 0.1 0.9
#> 
#> Model: proportional 
#> Rate: 0.1 
#> Frequencies: 0.5, 0.5 
#> 

# Change allele freqs
y = setAfreq(x, marker = 1,  afreq = c("1" = 0.2, "2" = 0.8))

# Mutation model not updated
mutmod(y, 1)
#> Unisex mutation matrix:
#>     1   2
#> 1 0.9 0.1
#> 2 0.1 0.9
#> 
#> Model: proportional 
#> Rate: 0.1 
#> Frequencies: 0.5, 0.5 

# This works
z = setMutmod(y, update = TRUE)
mutmod(z, 1)
#> Unisex mutation matrix:
#>        1      2
#> 1 0.7500 0.2500
#> 2 0.0625 0.9375
#> 
#> Model: proportional 
#> Rate: 0.1 
#> Frequencies: 0.2, 0.8 
#> 

Created on 2023-09-18 with reprex v2.0.2