Skip to main content

Evaluation and Results

After a local simulation run, use the FedGWAS evaluation tools to generate a centralized PLINK baseline, compare federated outputs, and collect lightweight run metadata. The fedgwas-sim commands wrap the same evaluation modules used by repository tools.

Result Layout

A generated CLI project writes results under the configured results_dir, usually results/:

results/
server/
logs/
intermediate/
center_1/
logs/
intermediate/
center_2/
logs/
intermediate/

Important artifacts include:

PathPurpose
results/server/logs/Server stage progress and aggregation logs
results/center_*/logs/Per-center client logs and PLINK command details
results/server/intermediate/Server-side temporary merged data and analysis outputs
results/center_*/intermediate/run_<id>/Client-side run-scoped intermediate files
results/evaluation_report.mdCombined post-run evaluation summary
results/run_summary.jsonMachine-readable run summary from result collection
results/run_summary.mdHuman-readable run summary

Retention settings can prune large intermediate files after successful completion while preserving logs and summary artifacts.

Generate A Centralized Baseline

Generate a centralized baseline after data preparation and before or after the federated run:

fedgwas-sim baseline generate

By default, the baseline is written under results/baseline. You can choose a different location:

fedgwas-sim baseline generate --output data/centralized_baseline

Use the same center data and thresholds for baseline generation and federated evaluation. If you edit center configs after generating the baseline, regenerate the baseline.

Evaluate Federated Outputs

Run QC and LR evaluation with the default baseline path:

fedgwas-sim evaluate

Evaluate against an explicit baseline and include KING comparison:

fedgwas-sim evaluate results --baseline data/centralized_baseline --king

Write the combined report to a chosen path:

fedgwas-sim evaluate results \
--baseline data/centralized_baseline \
--report results/evaluation_report.md \
--king

Evaluation can run selected stages only:

fedgwas-sim evaluate results --baseline results/baseline --qc-only
fedgwas-sim evaluate results --baseline results/baseline --lr-only --no-plots
fedgwas-sim evaluate results --baseline results/baseline --king-only --king-center-id 1

By default, evaluate runs QC and LR evaluation. Add --king when the run produced KING accumulator artifacts and you want kinship comparison included.

Reports And Plots

Evaluation may write:

FileContents
qc_report.mdQC agreement checks between federated and centralized outputs
lr_report.mdLogistic regression agreement summary and generated plot references
king_report.mdKING accumulator comparison when requested
evaluation_report.mdCombined report with links to stage-specific reports

Use --no-plots when running in a minimal environment or when only tabular agreement metrics are needed.

Collect Run Metadata

Collect a summary of logs, intermediate file counts, and optional timing files:

fedgwas-sim results collect --label tiny_run

Include GNU time output when available:

fedgwas-sim results collect \
--time-file results/server_app_time.txt \
--label tiny_run

The command writes:

results/run_summary.json
results/run_summary.md

Use these summaries for experiment records, release checks, or lightweight performance notes.

Success Indicators:

For a healthy run and evaluation:

  • fedgwas-sim run exits with status code 0.
  • Server and client logs are present.
  • Evaluation writes evaluation_report.md.
  • QC reports do not show unexpected missing outputs.
  • LR reports show comparable federated and centralized association outputs for the selected scenario.
  • KING reports are present when --king or --king-only is requested.

If evaluation fails because files are missing, confirm the selected results directory, baseline directory, and center output paths match the study that was actually run.

[Optional] Repository Evaluation Flow

For repository experiments, use the repository tools and experiment paths:

python experiments/tools/generate_baseline.py \
experiments/correctness/tiny_even/config.yaml

python experiments/tools/evaluation/evaluate_all.py \
experiments/correctness/tiny_even/results_2 \
--baseline experiments/correctness/tiny_even/data/tiny/centralized_baseline \
--king

python experiments/tools/collect_run_metrics.py \
experiments/correctness/tiny_even/results_2

Do not mix these repository paths with a standalone fedgwas-sim study unless you intentionally copied all configs, data, and outputs.