Verbal Autopsy Data Transformation for InSilicoVA and InterVA5 Algorithms

Enables transformation of Verbal Autopsy data collected with the WHO 2016 questionnaire (versions 1.4.1 & 1.5.1) or the WHO 2014 questionnaire for automated coding of Cause of Death using the InSilicoVA (data.type = "WHO2016") and InterVA5 algorithms. Previous versions of this package supported user-supplied mappings (via the map_records function), but this functionality has been removed. This package is made available by WHO and the Bloomberg Data for Health Initiative.


CrossVA is an R package for transforming verbal autopsy records collected using the WHO VA 2016 instrument (Revision 1.4.1 or 1.5.1) to be used as input for different coding algorithms. Currently supports user-supplied mappings, and provides unvalidated mapping definitions to transform to InterVA4, Tariff 2, and InSilicoVA. This package is made available by WHO, in collaboration with Swiss Tropical and Public Health Institute. Craig Hales from CDC reviewed and commented on earlier version of the mapping definitions.


  • CSV file containing submissions of the 2016 WHO VA questionnaire (Revision 1.4.1 or 1.5.1, exported from ODK Aggregate using ODK Briefcase)
  • A mapping files (tab-delimited text file). Minimal content: the first columns contains the names of all indicators needed by the coding algorithm (called "target indicators" here). The second column contains the mapping to each target indicators, as a valid R expression: expressions can be functions of zero or more variables of the WHO VA instrument, or any of the preceding target indicators. In addition to standard R functions, a small set of convenience functions which is provided in utils.R can be called to achieve the mapping. The release comes with currently two mapping files, one for interVA4, and one for tariff2).

Output A CSV file intended for processing by a coding algorithm.


Actively maintained.


For testing purposes, install via


or download and install from here

Use your own VA records, or one of the sythetic sample data sets included in the package for testing: (version 1.5.1)[] and (version 1.4.1)[].


# InterVA4 & InSilicoVA(data.type = "WHO2012")
record_f_name <- system.file("sample", "who_va_output.csv", package = "CrossVA")
records <- read.csv(record_f_name)

## map to interva4, use name of algorithm
output_data <- map_records(records, "interva4")
output_f_name <- "output_for_interva4.csv"
write.table(output_data, output_f_name, row.names = FALSE, na = "", qmethod = "escape", sep = ",")
InterVA(output_data, HIV = "l", Malaria = "l")

## map by providing a mapping file (here using the package-provided tariff2 mapping)
mapping_file <- system.file("mapping", "tariff2_mapping.txt", package = "CrossVA")
output_data <- map_records(records, mapping_file)
output_f_name <- "output_for_smartva.csv"
write.table(output_data, output_f_name, row.names = FALSE, na = "", qmethod = "escape", sep = ",")

## convenience wrapper (here using the package-provided InsilicoVA mapping)
output_data <- map_records_insilicova(records, "isoutput.csv")

# InterVA5 & InSilicoVA(data.type = "WHO2012")
whoData2016_151 <- odk2openVA(records, version = "1.5.1")
whoData2016_141 <- odk2openVA(records, version = "1.4.1")
InterVA5(whoData2016_151, HIV = "l", Malaria = "l", directory = getwd())
insilico(whoData2016_141, data.type = "WHO2016")


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.9.6 by Jason Thomas, 2 days ago

Browse source code at

Authors: Eungang Choi [aut] , Sam Clark [aut] , Zehang Li [aut] , Jason Thomas [aut, cre]

Documentation:   PDF Manual  

GPL-3 license

Imports stringi

Suggests knitr, rmarkdown, testthat, openVA

See at CRAN