Output Files
| Status | Applies to | Owner |
|---|---|---|
| Pre-release draft | main branch as of 2026-07-10 output file contracts | Public user docs |
This page is the canonical user-facing output contract for g regenie.
For resume validation, see Resume and Manifest. For the interpretation of result fields, see Algorithm.
Output Root
--out is an output prefix, not a single output file. By default, g creates a
run root next to that prefix:
<out>.g/
Each phenotype gets a deterministic directory:
<out>.g/
trait_0001_<phenotype>.regenie2_linear.run/
trait_0002_<phenotype>.regenie2_linear.run/
Binary runs use .regenie2_binary.run. Unsafe characters in phenotype names are
replaced with underscores and long names are truncated in directory slugs.
[output].output_run_directory overrides the default <out>.g run root.
Parquet Dataset Layout
Parquet parts are the only result format and the completed dataset. No single-file consolidation is required. A typical completed run writes:
results/example.g/
logs/
events.jsonl
trait_0001_phenotype_continuous.regenie2_linear.run/
parts/
part_000000000_000000015.parquet
part_000000016_000000031.parquet
effective_config.toml
run_manifest.json
The first and last identifiers in a part name are zero-padded engine chunk
identifiers. A file contains one or more consecutive chunks according to the
internal output grouping policy. A single-chunk file uses
part_<chunk>.parquet; a grouped file uses part_<first>_<last>.parquet.
Chunk grouping and Parquet compression are internal policies, not public
configuration keys.
Current parts use Parquet format version 2.0. Integer and string columns use
the format's delta fallbacks where applicable, and all Float32 result columns
use BYTE_STREAM_SPLIT before Zstandard compression. These are physical
encodings only: the logical schema below remains output schema version 3.
Supported Python readers are PyArrow >=24.0.0 and Polars >=1.41.2, matching
the project's dependency floors. Older readers must support Parquet 2.0 and
BYTE_STREAM_SPLIT or be upgraded before consuming current parts.
Read parts/ directly as a Parquet dataset. For example:
import pyarrow.dataset as dataset
results = dataset.dataset(
"results/example.g/trait_0001_phenotype_continuous.regenie2_linear.run/parts",
format="parquet",
)
table = results.to_table()
Part files are committed atomically and carry chunk-commit metadata in their Parquet footer. The run manifest records the same commits for resume.
Result Schema
Current Schema Contract (v3)
| Column | Parquet type | Nullable | Unit | Meaning |
|---|---|---|---|---|
CHROM |
Utf8 |
No | - | Variant chromosome label. |
GENPOS |
Int64 |
No | base-pair index | Variant position. |
ID |
Utf8 |
No | - | Variant identifier. |
ALLELE0 |
Utf8 |
No | - | Reference/first allele string. |
ALLELE1 |
Utf8 |
No | - | Alternate/second allele string. |
A1FREQ |
Float32 |
No | allele frequency | Observed allele-one frequency after sample alignment. |
INFO |
Float32 |
No | INFO score | Observed dosage INFO score. |
N |
Int32 |
No | sample count | Number of observed genotypes used in statistics. |
BETA |
Float32 |
No | effect size | Estimated effect for ALLELE1. |
SE |
Float32 |
No | effect size standard error | Standard error for BETA. |
CHISQ |
Float32 |
No | chi-squared statistic | Score statistic or equivalent Step 2 metric. |
LOG10P |
Float32 |
No | -log10(p) | Association significance. |
CORRECTION_METHOD |
Utf8 |
No | - | Diagnostic correction method label. |
CORRECTION_STATUS |
Utf8 |
No | - | Diagnostic correction status label. |
The schema applies to both association modes: regenie2_linear and
regenie2_binary.
Current correction method/status pairs are:
CORRECTION_METHOD |
CORRECTION_STATUS |
Meaning |
|---|---|---|
score |
success |
Score-test row with no fallback correction applied. |
score |
failed |
Score test did not produce a valid statistic, so no fallback candidate was selected. |
firth_approximate |
success |
Successful approximate-Firth fallback row. |
firth_approximate |
failed |
Approximate-Firth fallback failed. |
The firth_approximate label describes the current experimental correction
diagnostic path. It does not imply exact Firth support. SPA correction labels
are reserved for future support and are not emitted by current runs.
Current schema properties:
output_schema_version:3- Column order is part of the contract for stable downstream parsing.
- Invalid association statistics are stored as
NaN; Arrow nulls are not used. A1FREQ,INFO,BETA,SE,CHISQ, andLOG10Pare persisted asFloat32.
Compatibility policy:
- New columns may only be appended and must be documented.
- Changing an existing column name, type, nullability, order, or semantics requires an output schema version bump.
- Additional correction labels or diagnostic meanings require a documented schema policy change before release.
Public result statistics are written as float32, even when an internal kernel
uses wider precision.
Telemetry And Logs
When telemetry is enabled, run-level logs default under:
<out>.g/logs/
Common files:
| File | Written when | Meaning |
|---|---|---|
events.jsonl |
Progress or profile telemetry is enabled | Lifecycle and profile events. |
profile.summary.json |
Profile telemetry is enabled | Aggregate native stage summary. |
output_stage_timings.json |
Profile telemetry is enabled | Per-phenotype output writer timings. |
Diagnostics paths are derived from the output run directory; the production
frontend currently exposes only [diagnostics].telemetry.
Successful CLI runs print each phenotype run directory and its parts/
Parquet dataset directory.