27.09.2018: Added the paper Investigating the effects of different library preparation protocols on STR sequencing, citing STR-validator.

24.09.2018: Material from the STR-validator workshop at the GHEP-ISFG meeting in Araraquara officially available here.

19.09.2018: Fixed links to Google Drive documents in text, that was broken after conversion to new Google Sites (thanks for reporting Peter).


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 user the gWidgets2RGtk2 package for its graphical user interface (requiring the user to install the GTK+ library, which may be tricky under restricted permission). There are plans to make STR-validator compatible with the native R package tcltk for simpler installation.

Workshops and courses involving STR-validator




  • "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


  • "Statistical methods in forensic genetics Train the trainers Workshop", Copenhagen (Denmark) 20-23 April
  • "Mixtures, complex DNA profiles, and interpretation with the LRmix Studio software", Krakow (Poland) 1 September


  • "Statistical methods in forensic genetics Train the trainers Workshop", Copenhagen (Denmark) 20-23 May

Papers citing STR-validator





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

  • Plot titles are left aligned instead of centred - this is not a bug. The reason is new options and defaults in the package ggplot2 version 2.2.0. If you would like centred titles as before please either a) revert to ggplot2 version 2.1.0, or b) save as a ggplot object and customise manually. See this Facebook post for details. The new options may be implemented in a future version of STR-validator but this is not prioritised.
  • 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.

In case you want to try out the latest development version it can be download by typing this into the command window:


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:

Get news, tips, and other information at the Facebook page:

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.


The source code is hosted at GitHub:

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

Link to STR-validator on CRAN:

For potentially better performance (multi-core support) see:

YouTube channel:

Video Tutorials using STR-validator version 2.0.0

Estimation of analytical thresholds:

Estimation of allele sizing precision:

Analysis of stutter ratios:

Analysis of balance:

Estimation of stochastic threshold:

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:

Work in progress

Version history - main features [release date]

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


Hansson O, Gill P. Egeland T. STR-validator: An open source platform for validation and process control. Forensic Science International: Genetics. 2014;13:154-166.

Hansson O, Gill P. Free open source software for internal validation of forensic STR typing kits. Forensic Science International: Genetics Supplement Series. 2013;4(1):e300–e301.


Here is a selection of downloads (a complete list is available at the bottom of the web page).

Official manuals and tutorials

Exercises and presentations (see latest workshop for the most up-to-date material)


  • "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]

Screen shots

The STR-validator GUI

The main program graphical user interface

Kit marker ranges comparison

Kits marker range comparison.

ESX17 profile

ESX17 EPG generated from allele and peak height information.

ESX17 mixture

ESX17 EPG mixture of two arbitrary samples.


Histogram of peak heights in PCR negative control samples.

Blocked ranges

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


Linear regression of serial dilutions to estimate AT.

Dropout model by logistic regression

Dropout modelling

Dropout modelling

Dropout modelling


Heatmap allele and locus dropout

Dropout event dotplot

Dropout event dotplot per locus

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


Contaminations in negative extraction and PCR controls

Peak height distribution of drop-in contamination

Peak height distribution of drop-in contaminations

Fragment size distribution of drop-in contaminations

Fragment size distribution of drop-in contaminations

Result type analysis

Result type analysis of low template samples

Size precision analysis

Size precision analysis of allelic ladders per allele and locus

Complete list of downloads: