Skip to main content

Configuration

Each participating center has its own config.yaml. The template is stored at configs/config_template.yaml. The default run reads from experiments/correctness/tiny_even/configs, which contains server/config.yaml, center_1/config.yaml, and center_2/config.yaml.

Center configuration

input_data:
path: "experiments/correctness/tiny_even/data/tiny/center_1/tiny_center_1"
type: "bed"

output:
intermediate_dir: "experiments/correctness/tiny_even/results_2/center_1/intermediate"
log_dir: "experiments/correctness/tiny_even/results_2/center_1/logs"

parameters:
sample_offset: 1000000000000
chunk_size: 100
sample_chunk_size: 100
snp_chunk_size: 100
lr_target_chunks: 2
run_id: "20260221_2000"

thresholds:
maf_threshold: 0.01
missing_threshold: 0.01
hwe_threshold: 1e-6
p_threshold: 0.3
local_lr_threshold: 0.3
global_lr_threshold: 0.1
king_threshold: 0.23

flower:
server_address: "127.0.0.1:8080"
num_rounds: 10

participation:
key_exchange: true
sync: true
local_qc: true
global_qc: true
global_qc_response: true
init_chunks: true
iterative_king: true
local_lr: true
local_lr_filter_response: true
init_chunks_lr: true
iterative_lr: true

Field reference

FieldPurpose
input_data.pathPLINK dataset prefix. Do not include .bed, .bim, or .fam. For VCF input, use the VCF file path.
input_data.typeInput type. The loader currently handles bed and vcf.
output.intermediate_dirPer-center directory for chunks and temporary files.
output.log_dirPer-center directory for logs and PLINK outputs.
parameters.chunk_sizeDefault chunk size. KING commonly partitions by samples; final LR commonly partitions by SNPs.
parameters.lr_target_chunksOptional target number of LR chunks; used by compute_lr_chunk_size.
parameters.run_idOptional run tag used to scope intermediate files under run_<id>.
thresholds.maf_thresholdMinimum minor allele frequency used by global QC.
thresholds.missing_thresholdMaximum SNP missingness allowed by global QC.
thresholds.hwe_thresholdHardy-Weinberg equilibrium p-value threshold.
thresholds.p_thresholdBackward-compatible LR threshold.
thresholds.local_lr_thresholdLocal LR threshold for selecting insignificant SNPs to filter before final LR.
thresholds.global_lr_thresholdGlobal LR threshold for classifying final LR p-values on clients.
thresholds.king_thresholdKinship threshold used by client-side KING filtering.
participationPer-stage opt-in flags. Use true for all stages when running the full pipeline.

Server configuration

pipeline/server_app.py requires a server config file under the configured experiment path:

<config_path>/server/config.yaml

The server config declares the server output directories:

output:
intermediate_dir: "experiments/correctness/tiny_even/results_2/server/intermediate"
log_dir: "experiments/correctness/tiny_even/results_2/server/logs"

Flower application configuration

Flower entry points and default run settings live in pyproject.toml:

[tool.flwr.app.components]
serverapp = "pipeline.server_app:app"
clientapp = "pipeline.client_app:app"

[tool.flwr.app.config]
simulation = true
num-server-rounds = 300
default-partition-by = "samples"
config_path = "experiments/correctness/tiny_even/configs"

In simulation mode, pipeline/client_app.py derives the center config path from the partition id:

<config_path>/center_<partition_id + 1>/config.yaml