This program takes VCF files as input. It builds a d-PBWT through insertion of haplotypes in the VCF file, then outputs the time taken for some insertions and deletions. It is recommended for multiallelic sites to be removed from the input VCF. If multiallelic sites are not removed, the code will take 0 as 0 and any other allele as 1. Site 0 is the top most site in the vcf and haplotype 0 is the left most haplotype in the vcf. The initial d-PBWT is built with the number of haplotypes in the input panel minus n randomly selected haplotypes. Then a random sequence of insertions and deletions is generated with n insertions and n deletions. The deletions are chosen randomly from the d-PBWT while the insertions must be new haplotypes to the d-PBWT. The algorithms used are presented in https://www.biorxiv.org/content/10.1101/2020.01.14.906487v1.

Compile with std=c++17 or higher. The following command may be used:
g++ -O3 -std=c++17 -o exedpbwt_update.exe dpbwt_update.cpp 

Sample Usage:
./exedpbwt_update.exe -i example.vcf -o example_updateTime.txt -n 1 

options:
-i, input VCF file for the panel, default is panel.vcf
-o, output file for time, default is update_dpbwt_time.txt. 
-n, number of haplotypes to test insertion and deletion, must be less than half the number of haplotypes in the input VCF. 
-h, help
no parameters, help
