ValiPop is a micro-simulation model for generating synthetic genealogical populations from a set of desired statistics. ValiPop also verifies that the desired properties exist in the generated populations. It is reasonably scalable and customisable, and able to create populations for a wide range of purposes. The intended purpose is to enable generation of multiple synthetic genealogical populations to evaluate and improve data linkage algorithms.
ValiPop's micro-simulation model is written in Java. The supporting verification analysis and statistical code is written in R.
To run ValiPop from the release JAR file, the following need to be installed:
- Java 21 or higher
- R 4.4.2 or higher
- R geepack package
To install geepack:
# Install the geepack R package.
R -e "install.packages('geepack', repos = c(CRAN = 'https://cloud.r-project.org'))"
To download and run ValiPop:
# Download the JAR file.
wget https://github.com/stacs-srg/valipop/releases/latest/download/valipop.jar
# Run the simulation.
java -jar valipop.jar <valipop-args>
Learn more about running with Java
To run ValiPop from a docker container, the following need to be installed:
To run ValiPop:
# Pull the container.
docker pull ghcr.io/stacs-srg/valipop:main
# Run the container.
docker run ghcr.io/stacs-srg/valipop:main <valipop-args>
Learn more about running with Docker
To build ValiPop, the following need to be installed:
To build ValiPop:
# Clone the repository.
# Add flag --depth 1 to reduce download size if you don't care about getting the whole repository history.
git clone https://github.com/stacs-srg/valipop
# Navigate to the repository directory.
cd valipop
# Install dependencies, compile, and package into JARs.
mvn clean package -Dmaven.test.skip
# The build should be created in 'target/', including the runnable JARs.