STR-validator

3xNews

26.03.2019: STR-validator 2.2.0, supporting both GTK+ and tcltk graphical systems, is now available! See changes in news.

19.03.2019: Fixed restricted access to some course material and other files. All should now be public. Thanks for reporting Tanguy Araud!

30.12.2018: Organized course material under own pages (please report broken links). Added my thesis "Development of computer software to characterise and simulate molecular biology processes used in forensic DNA profiling assays" and presentations to the new section "PhD material".

Introduction

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 some work are performed as a part of my position at OUS.

STR-validator is a free and open source R-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 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).

STR-validator 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.

Workshops and courses involving STR-validator

2018

2017

2016

  • "Statistical methods in forensic genetics", Bologna (Italy) 6-7 June
  • "Analysis of Internal Validation Datasets Using Open-Source Software STR-validator" by Sarah Riman, Erica L. Romsos, Lisa Borsuk, and Peter M. Vallone. Gaithersburg (USA) 9 November

2015

2014

Papers citing STR-validator

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:

  • Contribute with improvements or new functions to the strvalidator package.
  • Contribute with translations of course material, manuals or tutorials.
  • Collaborate to implement new functions.

Code validation

STR-validator 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 STR-validator. 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:

  • addSize
  • calculateBalance
  • calculateConcordance
  • calculateDropout
  • calculateHeight
  • calculateLb
  • calculateMixture
  • calculateOL
  • calculateStutter
  • filterProfile
  • tableBalance
  • trim
  • calculateAllT (indirectly tests calculateT)

Known problems

Known problems and bugs with the current version 2.2.0:

  • It is not possible to open the function to calculate result types (Result/Result types/Calculate) when using the tcltk GUI.
  • There are some problems with the function to summarize precision data (Precision/Summarize). The window may be too large using the tcltk GUI.
  • Estimation of analytical thresholds (AT) - using any of the metacharacters in extended regular expressions: . \ | ( ) [ { ^ $ * + ?. may prevent masking of data using a reference dataset. Avoiding these characters in sample names will keep you out of trouble. For more information see this Facebook post by Alexander at the STR-validator community.

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.

For a complete list of current and past reported bugs and issues see GitHub (direct link).

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 STR-validator 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

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.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

  • "Free open source software for internal validation of forensic STR typing kits" presented at the 25th World Congress of the International Society for Forensic Genetics, 2 – 7 September 2013, Melbourne, Australia. [Poster_ISFG2013.pdf]

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