Sample mixtures with random genotypes and random parameters according to priors
sample_mixtures.Rd
Sample mixtures with random genotypes and random parameters according to priors
Usage
sample_mixtures(
n,
contributors,
freqs,
linkage_map,
sampling_parameters,
model_settings,
sample_model,
pedigree,
results_directory,
seed,
number_of_replicates = 1L,
write_non_contributors = FALSE,
tag = "simulation",
silent = FALSE
)
Arguments
- n
Integer. Number of samples.
- contributors
Character vector with unique names of contributors. Valid names are "U1", "U2", ... for unrelated contributors or the names of pedigree members for related contributors.
- freqs
Allele frequencies (see read_allele_freqs)
- linkage_map
(optional) A linkage map specifying the recombination fractions between loci. If missing, loci are assumed to be independent. See also sample_many_pedigree_genotypes.
- sampling_parameters
List. Passed to the sample_model function.
- model_settings
List. Passed to the sample_model function.
- sample_model
Function such as sample_log_normal_model.
- pedigree
(optionally) ped object. Contributors can be named pedigree members.
- results_directory
(optionally) Character with path to directory where results are written to disk.
- seed
(optionally) Integer seed value that can be used to get reproducible runs. If results are written to disk, the 'Run details.txt' file will contain a seed that can be used for reproducing the result.
- number_of_replicates
Integer. Number of replicate simulations for each sample.
- write_non_contributors
Logical. If TRUE, sampled genotypes for non-contributing pedigree members will also be written to disk. Defaults to FALSE.
- tag
Character. Used for sub directory name when results_directory is provided.
- silent
Logical. If TRUE, then no message will be printed about where the output (if any) was written to disk.
Value
If results_directory
is provided, this function has the side effect of writing results to disk.
Return value is a list with simulation results:
call
matched callsmash
DataFrame with all samples in SMASH format (see SMASH_to_wide_table)samples
Detailed results for each sampleparameter_summary
DataFrame with parameters for each sample
Examples
freqs <- read_allele_freqs(system.file("extdata","FBI_extended_Cauc_022024.csv",
package = "simDNAmixtures"))
gf <- gf_configuration()
sampling_parameters <- list(min_mu = 50., max_mu = 5e3,
min_cv = 0.05, max_cv = 0.35,
degradation_shape1 = 10, degradation_shape2 = 1)
mixtures <- sample_mixtures(n = 2, contributors = c("U1", "U2"), freqs = freqs,
sampling_parameters = sampling_parameters,
model_settings = gf$gamma_settings_no_stutter,
sample_model = sample_gamma_model)
# sample a mixture of two siblings taking into account
linkage_map <- data.frame(chromosome = c("12","12"),
locus = c("vWA", "D12391"),
position = c(16.56662766, 29.48590551))
ped_sibs <- pedtools::nuclearPed(children = c("Sib1", "Sib2"))
sibs_mix <- sample_mixtures(n = 1, contributors = c("Sib1", "Sib2"),
freqs = freqs,
linkage_map = linkage_map,
pedigree = ped_sibs,
sampling_parameters = sampling_parameters,
model_settings = gf$gamma_settings_no_stutter,
sample_model = sample_gamma_model)
# an example using the semi-continuous drop model
drop_model_sampling_parameters <- list(min_dropout_probability. = 0.,
max_dropout_probability. = 0.5)
drop_model_settings <- list(locus_names = gf$autosomal_markers,
size_regression = gf$size_regression)
mixtures <- sample_mixtures(n = 2, contributors = c("U1", "U2"), freqs = freqs,
sampling_parameters = drop_model_sampling_parameters,
model_settings = drop_model_settings,
sample_model = sample_drop_model)