This software implements an algorithm that computes the minimum Wheeler deterministic finite automaton (WDFA) equivalent to a given minimum DFA of a Wheeler language.
- C++20 compiler (tested with Clang and GCC)
- 64-bit Linux or macOS operating system
This project depends on the following external libraries:
DYNAMIC— succinct dynamic data structureshopscotch-map— fast hash map implementation
Clone this repository:
git clone https://github.com/regindex/Minimum-WDFA-Constructor.git
cd Minimum-WDFA-ConstructorClone the dependencies:
git submodule update --init --recursiveBuild the project:
# standard build
make
# compile enabling AVX instructions
make AVX=on./minWDFA input.binPipeline for running tests on https://www.cs.helsinki.fi/group/gsa/1000gen-FIN-WholeGenome/ datataset
cd tools
g++ -std=c++17 -O3 dfa2bin.cpp -o dfa2bin
cd wdfa2mdfa/
g++ -std=c++17 -O3 Modified.cpp -o minimizer
cd ../read-fin-automaton
g++ -std=c++17 -O3 read-fin-automaton.cpp -o read-fin-automaton
mkdir automata
./script_test_fin-automataPipeline for running gcsa tests on https://www.cs.helsinki.fi/group/gsa/1000gen-FIN-WholeGenome/ datataset
cd benchmarks
python3 configure.py --build
# construct the pangenome automata
python3 experiments_script.py --build_automata
# construct the gcsa indexes and collect performance
python3 experiments_script.py --build_gcsa