# Forensic Sample Simulator

### Description

Simulates the DNA content in forensic stain.

### Usage

1 2 3 |

### Arguments

`data` |
data.frame with columns 'Marker', 'Allele', and 'Sim' defining
the DNA profiles and simulation id (counter).
Preferably output from |

`cells` |
integer for the estimated number of cells. |

`sd.cells` |
numeric for the standard deviation of |

`conc` |
numeric for the estimated DNA concentration. |

`sd.conc` |
numeric for the standard deviation of |

`vol` |
numeric for the estimated sample volume. |

`sd.vol` |
numeric for the standard deviation of |

`cell.dna` |
numeric to indicate the DNA content of a diploid cell in nanograms (ng). |

`haploid` |
logical TRUE to indicate haploid cells. |

`kit` |
character string defining the DNA typing kit used to calculate
allele size (used to calculate allele sizes needed for the regression option
i.e. |

`slope` |
numeric from regression of log concentration by fragment size (bp). |

`intercept` |
numeric from regression of log concentration by fragment size (bp). |

`debug` |
logical TRUE to indicate debug mode. |

### Details

Simulates the number of DNA molecules in a forensic stain either
from:
1) An estimate of the number of cells in the stain.
2) The DNA concentration.
3) The slope and intercept values as obtained from log-linear regression
of DNA concentration by size in basepair.
The regression emulates degradation and should not be used together with
simulation of degradation using `simDegradation`

.
Some parameters accept vectors so that simulated samples can have different
number of cells and be a mixture of haploid and diploid samples (see examples).
Note 1: Number of cells can be decimal values since it is an estimate.
Note 2: Number of cells will always be integer if haploid=TRUE because
binomial selection require integer values.
Note 3: To get the same total amount of DNA in samples with diploid and haploid cells.
the parameter for haploid cells must be: cells = 2 * number_of_diploid_cells
NB! Important that each marker has two rows (i.e. homozygotes is e.g. 16, 16).

### Value

data.frame with simulated result in columns 'Cells'.

### See Also

`simProfile`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ```
# Create a data frame with a DNA profile.
markers = rep(c("D3S1358","TH01","FGA"), each=2)
alleles = c(15,18,6,10,25,25)
df <- data.frame(Marker=markers, Allele=alleles)
# Simulate profile.
prof <- simProfile(data=df, sim=3, name="Test")
# Simulate diploid sample.
res <- simSample(data=prof, cells=100, sd.cells=20)
print(res)
# Simulate haploid sample.
res <- simSample(data=prof, cells=100, sd.cells=20, haploid=TRUE)
print(res)
# Simulate haploid sample from concentration.
res <- simSample(data=prof, conc=0.02, sd.conc=0.001, vol=100, haploid=TRUE)
print(res)
# Simulate sample from slope and intercept.
res <- simSample(data=prof, vol=100, slope=-0.01, intercept=0.20, kit="SGMPlus")
print(res)
# Simulate mixture of diploid and haploid sample types of two concentrations.
res <- simSample(data=prof, cells=c(1000,1000,250), haploid=c(FALSE,TRUE,FALSE))
print(res)
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.