- Major rewrite of
dviSolve()
, which now uses the generalised likelihood ratio (GLR) for identifications in families with more than one missing person. - New functions
dviJoint()
,swapOrientation()
andformatSummary()
, all used indviSolve()
. plotDVI()
now allows multiple AM rows, and has a new (experimental) argumentstyle
for choosing colouring style.dviSim()
may now do multiple simulations, and gains an argumentconditional
. If TRUE, references are kept unchanged, while the missing persons are simulated conditional on these.- Added dataset
fire
.
- Switch to
pedFamilias::readFam()
. - Add dependency
pbapply
. Usepblapply()
indviJoint()
. directMatch()
is much faster than before, when called frommergePM()
.
- Add file
dvi-example.fam
as a system file. Hence avoid internet download during example (gave CRAN error). - New function
dviSolve()
implementing a complete pipeline for solving a DVI case. - New function
amDrivenDVI()
implementing AM-driven analysis. - New functions
setPairing()
andexcludePairing()
for manually fixing or disallowing certain pairings. - In
findUndisputed()
replace argumentrelax
with its negationstrict
, and reverse the default to bestrict = FALSE
. - Harmonise the output summaries of the main functions.
- New function
dviSim()
for simulating marker data onto a DVI dataset. - New function
findNonidentifiable()
. - Export (experimental)
checkDVI()
. mergePM()
gains argumentverbose
.
- Enforce family names in
consolidateDVI()
. - Reorganise and synchronise code in
findExcluded()
andexclusionMatrix()
. - Use
cat()
instead ofmessage()
throughout. - Remove deprecated
summariseDVI()
(replaced byprint.dviData()
).
findUndisputed()
miscounted steps ifverbose = F
.jointDVI()
sometimes dropped victims afterfindUndisputed()
.
-
The dvir package is now maintained by Magnus D Vigeland.
-
In
print.dviData()
, add info on sex of victims/missing. -
Add
report
to output offindExcluded()
. -
New function
plotUndisputed()
.
- Fix bad URL reported by CRAN.
Version 3.0.0 constitutes a major rewrite of dvir, with many new features reflecting a broader scope of the package. Furthermore,
the syntax has been greatly simplified, due to the new dviData
container class for DVI datasets.
It should be noted that these syntax changes are not backwards compatible.
-
Most functions of dvir now expects a
dviData
object as input. -
All datasets have been regenerated as
dviData
objects. -
Datasets from the book Mass Identifications (Kling, Egeland, Tillmar, Prieto) have been renamed with prefix KETP.
-
summariseDVI()
is deprecated in favour of the newprint()
method fordviData
objects. -
As of version 3.0.0, dvir requires R >= 4.1.0 and recent versions of pedtools, forrel and pedprobr.
-
New S3 class
dviData
, and constructor with syntaxdviData(pm, am, missing)
. -
New function
plotDVI()
for visualising DVI datasets. -
New function
relabelDVI()
greatly simplifying relabelling tasks. -
New function
findExcluded()
for identifying victim samples not matching any of the missing persons - and vice versa. -
New functions
directMatch()
andmergePM()
for analysing and merging victim samples coming from the same individual. -
New function
plotSolution()
helps visualising the output ofjointDVI()
. -
New function
getFamily()
for extracting the family name (or index) of missing persons. -
New internal function
consolidateDVI()
ensures well-formed datasets. This is called in the beginning of all major functions. -
New function
compactJointRes()
simplifies the output ofjointRes()
. -
New function
familias2dvir()
for parsing.fam
files written by the DVI module of Familias. -
sequentialDVI()
has more informative output, in sync withfindUndisputed()
. While these functions do almost the same thing, the latter is generally preferred in practice. -
jointDVI()
gains argumentsnkeep
andmaxAssign
. The latter triggers a gracefully exit if the number of assignments is too large. -
jointDVI()
now has a progress bar (but only whennumCores = 1
).
- Revamped docs and examples.
- Several functions are more efficient due to better code organisation.
- This is intended to be the last version in the 2.x series. Version 3 will include some breaking changes in syntax.
- Various improvements of README and documentation.
- Initial CRAN release.