Scripts for benchmarking GCTAg against the original GCTA.
All GCTAg flags, options and release notes live in the GCTAg repository. This repo only contains the tooling used to run, compare and plot benchmarks.
| Directory | Purpose |
|---|---|
benchmarks/ |
Scripts that run GCTA and GCTAg and record elapsed time and peak RSS |
plotting/ |
Scripts that turn benchmark outputs into figures |
scripts/ |
Supporting tools: simulation, format conversion, etc. |
Drivers for timing and memory comparisons between GCTA and GCTAg across the GRM, PCA, REML and MLMA stages.
The main entry point is benchmarks/run_benchmark.sh, so can run the e.g. end-to-end benchmark as benchmarks/run_benchmark.sh End_to_end, which will set up and execute End_to_end.sh
Scripts that read the benchmark outputs and produce the comparison figures (runtime, memory, accuracy vs. GCTA).
plot_benchmarks.py: plots runtime and peak RSS from the output of benchmarking scriptsplot_mlma.py: plots either Manhattan plots or MLMA concordance between multiple ".mlma" filesplot_reml_trajectory.py: plots the per-round variance components estimation
simulate_population.R: simulates cattle population with AlphaSimBED_to_MACH.cpp: converts PLINK bfiles to MACH format (see below)generate_data_splits.sh: creates subsets of genotype data from PLINK bfiles
Compile the converter with
g++-16 -O3 -fopenmp script/BED_to_MACH.cpp -o bed_to_mach -lz
then convert PLINK bfiles to MACH format with
bed_to_mach --bfile kbhm --out MACH --threads 2