missingPersonIP: LR simulation for missing person cases

View source: R/missingPersonIP.R

missingPersonIPR Documentation

LR simulation for missing person cases

Description

This function simulates the LR distribution in a missing person case, either for the true missing person or for an unrelated person. The output contains the total LR and log10 LR of each simulation, and various summary statistics. If a specific LR threshold is given, the fraction of simulations exceeding the threshold is computed. When simulating the true missing person (the default), this fraction is referred to as the inclusion power (Vigeland et al., 2020).

Usage

missingPersonIP(
  reference,
  missing,
  markers = NULL,
  nsim = 1,
  threshold = NULL,
  disableMutations = NA,
  seed = NULL,
  true = c("missing", "unrelated"),
  verbose = TRUE
)

Arguments

reference

A ped object with attached markers.

missing

The ID label of the missing pedigree member.

markers

Names or indices of attached markers to include. By default all markers.

nsim

A positive integer: the number of simulations

threshold

A numeric vector with one or more positive LR thresholds.

disableMutations

This parameter determines how mutation models are treated. Possible values are as follows:

  • NA (the default): Mutations are disabled only for those markers whose known genotypes are consistent with the pedigree. This is determined by temporarily removing all mutation models and checking which markers have nonzero likelihood.

  • TRUE: Mutations are disabled for all markers. This will result in an error if any markers are inconsistent.

  • FALSE: No action is done to disable mutations.

  • A vector containing the names or indices of those markers for which mutations should be disabled.

seed

An integer seed for the random number generator (optional).

true

Either "missing" (default) or "unrelated", indicating whether profiles are simulated for the true missing person or for an unrelated person.

verbose

A logical.

Value

A mpIP object, which is essentially a list with the following entries:

  • LRperSim: A numeric vector of length nsim containing the total LR for each simulation.

  • log10LRperSim: The corresponding total LRs on the log10 scale.

  • meanLRperMarker: The mean LR per marker, over all simulations.

  • meanLR: The mean total LR over all simulations.

  • meanLogLR: The mean of log10LRperSim.

  • IP: A named numeric of the same length as threshold. For each element of threshold, the fraction of simulations resulting in an LR exceeding the given number. With true = "missing" this is the inclusion power; with true = "unrelated" it is the corresponding fraction among unrelated persons.

  • params: A list containing the input parameters missing, markers, nsim, threshold, seed, disableMutations and true.

References

Vigeland MD, Marsico FL, Herrera PiƱero M, Egeland T (2020). "Prioritising family members for genotyping in missing person cases: A general approach combining the statistical power of exclusion and inclusion." FSI: Genetics, 49, 102376. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/j.fsigen.2020.102376")}

See Also

missingPersonEP(), missingPersonLR(), missingPersonPlot()

Examples


# Two brothers are looking for their missing sibling.
# They are typed with 5 triallelic markers.
x = nuclearPed(3) |>
  markerSim(N = 5, ids = 3:4, alleles = 1:3, seed = 123, verbose = FALSE)

missingPersonPlot(x, missing = 5)

nsim = 20 # increase!

# Inclusion power statistics
ip = missingPersonIP(x, missing = 5, nsim = nsim, threshold = c(10, 100))
ip
head(ip$LRperSim)

# Simulate LRs for a random unrelated person
ip2 = missingPersonIP(x, missing = 5, nsim = nsim, threshold = c(10, 100),
                      true = "unrelated")
ip2
head(ip2$LRperSim)

# Plot distributions
LRpowerPlot(data = list(ip, ip2), threshold = 100)


forrel documentation built on Oct. 6, 2026, 5:06 p.m.