STR-validator

3xNews

19.07.2023: STR-validator version 2.4.1 released on CRAN.

09.06.2023: Added a known issue when trying to create plots using R 4.3.0.

24.09.2022: STR-validator version 2.4.0 released on CRAN.

Introduction

The program STR-validator is written and maintained by Oskar Hansson at Oslo University Hospital (OUS), Section of Forensic Genetics. The work has received external funding from the European Union seventh Framework Programme (FP7/2007-2013) under grant agreement n° 285487 (EUROFORGEN-NoE), and maintenance are performed as a part of my position at OUS.

The R-package  strvalidator is a free and open source software package developed mainly for internal validation of forensic STR DNA typing kit. However, it is equally suited for validation of other methods and instruments, or for process control. Its graphical user interface, which I refer to as STR-validator, makes it very easy to analyse data exported from e.g. GeneMapper® software, without any knowledge about R commands. It provides convenient functions to import, view, edit, and export data. After completed analysis the results, generated plots, heat-maps, and data can be saved in a project for easy access. Currently, analysis modules for stutter, balance, drop-out, concordance, mixtures, precision, pull-up, result types, and analytical threshold are available. STR-validator can greatly increase the speed of validation by reducing the time and effort needed for analysis of the validation data. It allows easy exploration of the characteristics of DNA typing kits according to ENFSI and SWGDAM recommendations. Another area of use is monitoring of the contamination level which is essential to estimate the probability of drop-in. In this way STR-validator facilitates the implementation of probabilistic interpretation of DNA results. 

Tutorial, installation instructions and other material are available for download at the bottom of the page.

Please report errors in the manual and tutorials to the package maintainer (link).

strvalidator is currently developed on a Windows 10 system, and is optimised to use the gWidgets2RGtk2 package and gWidgets2tcltk for its graphical user interface. The former requires the user to install the GTK+ library, which may be tricky under restricted permission, the latter uses the native R package tcltk and should work wherever there is R.

Who uses STR-validator?

Mostly forensic genetics laboratories. However, user support questions have revealed that STR-validator is used in some university forensic classes, and within other fields such as human and horse parentage testing.

The original CRAN server does not have any download statistics. However, the popular RStudio software by default uses its own CRAN mirror and makes download logs available. These can be queried through a web API using cranlogs.  The RStudio CRAN mirror is not the only CRAN mirror, but it’s a popular one. The actual number of downloads over all CRAN mirrors is unknown, which mean that the counts shown below may be an underestimate. The code to generate the plot is available in this post.

RStudio CRAN mirror download statistics. The actual number of downloads over all CRAN mirrors is unknown, which mean that the counts are likely an underestimate.

World map showing country of residence for STR-validator users requesting support, workshops where STR-validator was introduced, and dedicated STR-validator workshops. 

Workshops and courses involving STR-validator

2022

2018

2017

2016

2015

2014

Papers citing STR-validator

2021

2019

2018

2017

2016

2015

2014

Contribute to STR-validator

Contribution to the strvalidator R package or STR-validator community is more than welcome. Do not hesitate to contact the developer to:



Code validation

The strvalidator package uses the 'testthat' package to write tests for important functions. It works by comparing the result of calculations with the expected hard-coded result, often calculated using e.g. a spread-sheet software. Tests are automatically run upon compilation of a new version of strvalidator. If a test fail the new version cannot be created. New functions must have tests written for them. If bugs are found tests are written to check that the bug is fixed. Currently the following functions are specifically tested:

Known problems

Known problems and bugs with the current version 2.4.1 (for a complete list of current and past reported bugs and issues see GitHub (direct link).

Bugs may be fixed in the current developer version on GitHub. In case you want to try out the latest development version it can be download by typing this into the command window:

devtools::install_github("oskarhansson/strvalidator")

You may need to install devtools to make it work:

install.packages("devtools", dependencies=TRUE)

Note that the development version is not stable and some changes may be reverted before the next stable version is released to CRAN. 

User community and support

Discuss STR-validator in the Facebook group: https://www.facebook.com/groups/strvalidator/

Get news, tips, and other information at the Facebook page: https://www.facebook.com/STRvalidator

There will occasionally be sent out information by mail. Contact me if you wish to be added to the mailing list (e-mail is found the STR-validator CRAN page).

Report bugs

Please report bugs at GitHub (direct link). Remember to provide a reproducible example if possible.

Links

The source code is hosted at GitHub: https://github.com/OskarHansson/strvalidator

Please report bugs at GitHub (direct link). Remember to provide a reproducible example if possible.

Link to strvalidator on CRAN: https://cran.r-project.org/web/packages/strvalidator/index.html

For potentially better performance see: https://mran.microsoft.com/ and https://github.com/oracle/fastr

The online book Open Forensic Science in R where Chapter 2 Validation of DNA Interpretation Systems introduces strvalidator using command line functions.

YouTube channel: https://www.youtube.com/channel/UCs7TxzK21OKvWebQygxAHHA

Video Tutorials using STR-validator version 2.0.0

Estimation of analytical thresholds: https://youtu.be/8bTZbO2zrc4

Estimation of allele sizing precision: https://youtu.be/FTYX9ZRYg0g

Analysis of stutter ratios: https://youtu.be/N2qlc1YziTo

Analysis of balance: https://youtu.be/E1-KpvZ9CJY

Estimation of stochastic threshold: https://youtu.be/UMmRbX3q6wg

Video Tutorials using STR-validator version 1.2.0

This video show how to analyse heterozygous balance, inter-locus balance, stutter ratio, and sizing precision: http://youtu.be/aUDlDI744ZI

PhD material

STR-validator was developed as part of my PhD project. Download the thesis Development of computer software to characterise and simulate molecular biology processes used in forensic DNA profiling assays (ISBN 978-82-8377-319-4) or view the short popular scientific presentation and the trial lecture Epigenetics in forensics.

Work in progress

Version history - main features [release date]

2.3.0 - Language support. General function for summary statistics [10.07.2020] 

2.2.0 - Support for tcltk, which should work in restricted IT environments. [22.03.2019] 

2.1.0 - Calculate ST for all models at once. Plot cumulative distributions of multiple groups. [25.08.2018] 

2.0.0 - Migration to gWidgets2. New audit trail. Remember last used paths. [12.08.2017] 

1.9.0 - Minor improvements and corrections. New function to add marker order to a dataset. [08.03.2017] 

1.8.0 - Several functions rewritten for faster analysis. Calculation of profile proportion in height metrics, and many other improvements. [04.10.2016] 

1.7.0 - New functions for drop-in analyses. Support for quality sensors. Numerous minor improvements. [05.07.2016]

1.6.0 - Automatic calculation of average peak height when analysing drop-out and balance. New functions for efficient profile balance, and marker ratio calculations. [19.01.2016]

1.5.2 - Calculation for AT6 corrected (use standard error of the regression instead of standard error of the intercept). [31.08.2015]

1.5.1 - (not on CRAN) Fixes some bugs in the AT analysis module. [27.06.2015]

1.5.0 - Estimate analytical thresholds. Improved import (autotrim, autoslim). [10.06.2015]

1.4.0 - Analyse pull-ups, generate EPG's, changes to kit file to handle multiple sex markers. [07.01.2015]

1.3.1 - Fixed window losing focus (hidden windows). Simpler installation. Bug fixes.

1.3.0 - Integrated project manager. New module for analysis of concordance and mixtures. Bug fixes. [13.08.2014]

1.2.0 - Added Fusion and GlobalFiler kit. New module for analysis of capillary balance. Bug fixes.

1.1.0 - Compatibility update (testthat 0.8) and multiple improvements.

1.0.0 - Major update with important bug fixes. New kit file structure and several new features.

0.3.0 - Option to save GUI state

0.2.0 - Graphical user interface (GUI)

0.1.0 - Initial release on CRAN

Publications

Posters

Downloads

Here is a selection of downloads (a complete list is available at the bottom of the web page and under the respective workshop sub pages).

Official manuals and tutorials

Exercises and presentations

Refer to the workshop pages for the most up-to-date material.

Other STR-validator material

Screenshots

STR-validator, the graphical user interface.

Kit marker ranges comparison

Kits marker range comparison.

ESX17 profile

ESX17 EPG generated from allele and peak height information.

Blocked ranges

Blocked data ranges in a positive control sample prior to estimation of AT.

Regression

Linear regression of serial dilutions to estimate AT.

Histogram

Histogram of peak heights in PCR negative control samples.

Dropout model by logistic regression

 

Dropout modelling.

Dropout modelling

 

Dropout modelling.

Dropout event dotplot

Dropout event dotplot by locus.

Heatmap

Heatmap allele and locus dropout.

Empirical cumulative distribution of dropout events

Empirical cumulative distribution of peak heights for single heterozygous alleles and homozygous peaks.

Peak balance

Heterozygous peak balance by mean peak height plotted by locus.

Balance by repeat difference

Heterozygous peak balance by allele repeat difference plotted by locus.

Locus balance

Inter locus balance by mean peak height plotted by locus.

Contamination

Contaminations in negative extraction and PCR controls.

Result type analysis

Result type analysis of low template samples.

Size precision analysis

Size precision analysis of allelic ladders by allele and locus.

Peak height distribution of drop-in contamination

Peak height distribution of drop-in contamination.

Fragment size distribution of drop-in contaminations

Fragment size distribution of drop-in contamination.

Complete list of downloads