Running ‘testthat.R’ [2m/90m]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional test configuration?
  > # Learn more about the roles of various files in:
  > # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
  > # * https://testthat.r-lib.org/articles/special-files.html
  > 
  > library(testthat)
  > library(ukbflow)
  > 
  > test_check("ukbflow")
  v Logged in to DNAnexus as: "TestUser"
  v Logged out from DNAnexus.
  v Project selected: "project-XXXXXXXXXXXX"
  v Renamed 1 column.
  * date_of_attending_assessment_centre_i0
  v derive_hes (t2d): 26 cases, 26 with date.
  v derive_icd10 (t2d): 26 cases across 1 source, 26 with date.
  v derive_age: 1 event processed.
  Read '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82c2a661ef8.csv': 3 rows, 2 columns.
  Read '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82c7a9b7888.csv': 5 rows, 3 columns.
  Read '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82c125a8618.csv': 5 rows, 3 columns.
  v No NA values.
  Read '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82c30c45d2c.csv': 3 rows, 3 columns.
  v No NA values.
  v No duplicate SNPs.
  v All SNP IDs match rs[0-9]+ format.
  v All effect alleles are A/T/C/G.
  Read '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82c6047b891.csv': 5 rows, 3 columns.
  v No NA values.
  v No duplicate SNPs.
  v All effect alleles are A/T/C/G.
  Beta summary:
    Range : -0.2 to 0.3
    Mean |beta|: 0.16
    Positive : 3 (60%)
    Negative : 2 (40%)
    Zero : 0
  v Weights file passed checks: 5 SNPs ready for UKB RAP.
  v Saved: '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82cd8fe08c.txt'
  Read '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82c4fe8c8f6.csv': 5 rows, 3 columns.
  v No NA values.
  v No duplicate SNPs.
  v All SNP IDs match rs[0-9]+ format.
  Beta summary:
    Range : -0.2 to 0.3
    Mean |beta|: 0.16
    Positive : 3 (60%)
    Negative : 2 (40%)
    Zero : 0
  v Weights file passed checks: 5 SNPs ready for UKB RAP.
  v Saved: '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82c7bff6220.txt'
  Read '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82cb9cf34b.csv': 5 rows, 3 columns.
  v No NA values.
  v No duplicate SNPs.
  v All SNP IDs match rs[0-9]+ format.
  v All effect alleles are A/T/C/G.
  Beta summary:
    Range : -0.2 to 0.3
    Mean |beta|: 0.16
    Positive : 3 (60%)
    Negative : 2 (40%)
    Zero : 0
  v Weights file passed checks: 5 SNPs ready for UKB RAP.
  v Saved: '/tmp/RtmpGDZMfx/working_dir/RtmpkEDi7D/file37d82cac5d83c.txt'
  Auto-detected 1 GRS column(s): "GRS_flat"
  v GRS_a_z -> GRS_a_z_z  [mean=-0.0218, sd=0.9873]
  v GRS_b_z -> GRS_b_z_z  [mean=-0.0275, sd=0.9886]
  v GRS_a_z -> GRS_a_z_z  [mean=-0.0218, sd=0.9873]
  v GRS_a_z -> GRS_a_z_z  [mean=-0.0218, sd=0.9873]
  v GRS_a_z -> GRS_a_z_z  [mean=-0.0218, sd=0.9873]
  v GRS_a_z -> GRS_a_z_z  [mean=-0.0218, sd=0.9873]
  v GRS_a_z -> GRS_a_z_z  [mean=-0.0218, sd=0.9873]
  Auto-detected 2 GRS column(s): "GRS_a_z" and "GRS_b_z"
  -- Creating GRS groups ---------------------------------------------------------
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_quad ----------------------------------------------------
  GRS_a_z_quad [4 levels]
  Q1: n=75 (25%)
  Q2: n=75 (25%)
  Q3: n=75 (25%)
  Q4: n=75 (25%)
  <NA>: n=0 (0%)
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_tri -----------------------------------------------------
  GRS_a_z_tri [3 levels]
  Low: n=60 (20%)
  Mid: n=180 (60%)
  High: n=60 (20%)
  <NA>: n=0 (0%)
  -- Source: GRS_b_z -------------------------------------------------------------
  GRS_b_z: mean=-0.03, median=-0.06, sd=0.99, Q1=-0.64, Q3=0.67, NA=0% (n=0)
  -- New column: GRS_b_z_quad ----------------------------------------------------
  GRS_b_z_quad [4 levels]
  Q1: n=75 (25%)
  Q2: n=75 (25%)
  Q3: n=75 (25%)
  Q4: n=75 (25%)
  <NA>: n=0 (0%)
  -- Source: GRS_b_z -------------------------------------------------------------
  GRS_b_z: mean=-0.03, median=-0.06, sd=0.99, Q1=-0.64, Q3=0.67, NA=0% (n=0)
  -- New column: GRS_b_z_tri -----------------------------------------------------
  GRS_b_z_tri [3 levels]
  Low: n=60 (20%)
  Mid: n=180 (60%)
  High: n=60 (20%)
  <NA>: n=0 (0%)
  -- Effect per SD (OR) ----------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 2 exposures x 1 model = 2 logistic regressions
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z --
  
  v   Unadjusted | GRS_a_z: OR 1.10 (0.81-1.49), p = 0.556
  
  -- GRS_b_z --
  
  v   Unadjusted | GRS_b_z: OR 0.86 (0.63-1.17), p = 0.328
  v Done: 2 result rows across 2 exposures and 1 model.
  -- High vs Low -----------------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 2 exposures x 1 model = 2 logistic regressions
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z_tri --
  
  v   Unadjusted | GRS_a_z_triMid: OR 1.00 (0.46-2.19), p = 1
  v   Unadjusted | GRS_a_z_triHigh: OR 1.25 (0.49-3.16), p = 0.637
  
  -- GRS_b_z_tri --
  
  v   Unadjusted | GRS_b_z_triMid: OR 0.51 (0.25-1.04), p = 0.063
  v   Unadjusted | GRS_b_z_triHigh: OR 0.67 (0.28-1.62), p = 0.377
  v Done: 4 result rows across 2 exposures and 1 model.
  -- Trend test ------------------------------------------------------------------
  ! Exposures GRS_a_z_quad and GRS_b_z_quad are not an ordered factor -- levels will be scored 0, 1, 2, ... (equal spacing assumed).
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_trend -----------------------------------------------------------------
  i 2 exposures x 1 model (categorical + trend model per combination)
  
  -- GRS_a_z_quad --
  
  i Levels: Q1 -> Q2 -> Q3 -> Q4 | Scores: 0, 1, 2, 3
  i   Unadjusted | GRS_a_z_quadQ1: 1.00 (ref)
  v   Unadjusted | GRS_a_z_quadQ2: OR 0.90 (0.37-2.20), p = 0.821
  v   Unadjusted | GRS_a_z_quadQ3: OR 1.54 (0.68-3.50), p = 0.303
  v   Unadjusted | GRS_a_z_quadQ4: OR 1.00 (0.42-2.39), p = 1
  i   Unadjusted | trend: OR_per_score = 1.06 (0.81-1.38), p_trend = 0.682
  
  -- GRS_b_z_quad --
  
  i Levels: Q1 -> Q2 -> Q3 -> Q4 | Scores: 0, 1, 2, 3
  i   Unadjusted | GRS_b_z_quadQ1: 1.00 (ref)
  v   Unadjusted | GRS_b_z_quadQ2: OR 0.49 (0.21-1.14), p = 0.0976
  v   Unadjusted | GRS_b_z_quadQ3: OR 0.66 (0.30-1.48), p = 0.315
  v   Unadjusted | GRS_b_z_quadQ4: OR 0.54 (0.24-1.25), p = 0.151
  i   Unadjusted | trend: OR_per_score = 0.84 (0.65-1.11), p_trend = 0.221
  v Done: 8 result rows across 2 exposures and 1 model.
  -- AUC -------------------------------------------------------------------------
  v Validation complete.
  -- Creating GRS groups ---------------------------------------------------------
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_quad ----------------------------------------------------
  GRS_a_z_quad [4 levels]
  Q1: n=75 (25%)
  Q2: n=75 (25%)
  Q3: n=75 (25%)
  Q4: n=75 (25%)
  <NA>: n=0 (0%)
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_tri -----------------------------------------------------
  GRS_a_z_tri [3 levels]
  Low: n=60 (20%)
  Mid: n=180 (60%)
  High: n=60 (20%)
  <NA>: n=0 (0%)
  -- Source: GRS_b_z -------------------------------------------------------------
  GRS_b_z: mean=-0.03, median=-0.06, sd=0.99, Q1=-0.64, Q3=0.67, NA=0% (n=0)
  -- New column: GRS_b_z_quad ----------------------------------------------------
  GRS_b_z_quad [4 levels]
  Q1: n=75 (25%)
  Q2: n=75 (25%)
  Q3: n=75 (25%)
  Q4: n=75 (25%)
  <NA>: n=0 (0%)
  -- Source: GRS_b_z -------------------------------------------------------------
  GRS_b_z: mean=-0.03, median=-0.06, sd=0.99, Q1=-0.64, Q3=0.67, NA=0% (n=0)
  -- New column: GRS_b_z_tri -----------------------------------------------------
  GRS_b_z_tri [3 levels]
  Low: n=60 (20%)
  Mid: n=180 (60%)
  High: n=60 (20%)
  <NA>: n=0 (0%)
  -- Effect per SD (OR) ----------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 2 exposures x 1 model = 2 logistic regressions
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z --
  
  v   Unadjusted | GRS_a_z: OR 1.10 (0.81-1.49), p = 0.556
  
  -- GRS_b_z --
  
  v   Unadjusted | GRS_b_z: OR 0.86 (0.63-1.17), p = 0.328
  v Done: 2 result rows across 2 exposures and 1 model.
  -- High vs Low -----------------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 2 exposures x 1 model = 2 logistic regressions
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z_tri --
  
  v   Unadjusted | GRS_a_z_triMid: OR 1.00 (0.46-2.19), p = 1
  v   Unadjusted | GRS_a_z_triHigh: OR 1.25 (0.49-3.16), p = 0.637
  
  -- GRS_b_z_tri --
  
  v   Unadjusted | GRS_b_z_triMid: OR 0.51 (0.25-1.04), p = 0.063
  v   Unadjusted | GRS_b_z_triHigh: OR 0.67 (0.28-1.62), p = 0.377
  v Done: 4 result rows across 2 exposures and 1 model.
  -- Trend test ------------------------------------------------------------------
  ! Exposures GRS_a_z_quad and GRS_b_z_quad are not an ordered factor -- levels will be scored 0, 1, 2, ... (equal spacing assumed).
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_trend -----------------------------------------------------------------
  i 2 exposures x 1 model (categorical + trend model per combination)
  
  -- GRS_a_z_quad --
  
  i Levels: Q1 -> Q2 -> Q3 -> Q4 | Scores: 0, 1, 2, 3
  i   Unadjusted | GRS_a_z_quadQ1: 1.00 (ref)
  v   Unadjusted | GRS_a_z_quadQ2: OR 0.90 (0.37-2.20), p = 0.821
  v   Unadjusted | GRS_a_z_quadQ3: OR 1.54 (0.68-3.50), p = 0.303
  v   Unadjusted | GRS_a_z_quadQ4: OR 1.00 (0.42-2.39), p = 1
  i   Unadjusted | trend: OR_per_score = 1.06 (0.81-1.38), p_trend = 0.682
  
  -- GRS_b_z_quad --
  
  i Levels: Q1 -> Q2 -> Q3 -> Q4 | Scores: 0, 1, 2, 3
  i   Unadjusted | GRS_b_z_quadQ1: 1.00 (ref)
  v   Unadjusted | GRS_b_z_quadQ2: OR 0.49 (0.21-1.14), p = 0.0976
  v   Unadjusted | GRS_b_z_quadQ3: OR 0.66 (0.30-1.48), p = 0.315
  v   Unadjusted | GRS_b_z_quadQ4: OR 0.54 (0.24-1.25), p = 0.151
  i   Unadjusted | trend: OR_per_score = 0.84 (0.65-1.11), p_trend = 0.221
  v Done: 8 result rows across 2 exposures and 1 model.
  -- AUC -------------------------------------------------------------------------
  v Validation complete.
  -- Creating GRS groups ---------------------------------------------------------
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_quad ----------------------------------------------------
  GRS_a_z_quad [4 levels]
  Q1: n=75 (25%)
  Q2: n=75 (25%)
  Q3: n=75 (25%)
  Q4: n=75 (25%)
  <NA>: n=0 (0%)
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_tri -----------------------------------------------------
  GRS_a_z_tri [3 levels]
  Low: n=60 (20%)
  Mid: n=180 (60%)
  High: n=60 (20%)
  <NA>: n=0 (0%)
  -- Effect per SD (OR) ----------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 1 exposure x 1 model = 1 logistic regression
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z --
  
  v   Unadjusted | GRS_a_z: OR 1.10 (0.81-1.49), p = 0.556
  v Done: 1 result row across 1 exposure and 1 model.
  -- High vs Low -----------------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 1 exposure x 1 model = 1 logistic regression
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z_tri --
  
  v   Unadjusted | GRS_a_z_triMid: OR 1.00 (0.46-2.19), p = 1
  v   Unadjusted | GRS_a_z_triHigh: OR 1.25 (0.49-3.16), p = 0.637
  v Done: 2 result rows across 1 exposure and 1 model.
  -- Trend test ------------------------------------------------------------------
  ! Exposure GRS_a_z_quad is not an ordered factor -- levels will be scored 0, 1, 2, ... (equal spacing assumed).
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_trend -----------------------------------------------------------------
  i 1 exposure x 1 model (categorical + trend model per combination)
  
  -- GRS_a_z_quad --
  
  i Levels: Q1 -> Q2 -> Q3 -> Q4 | Scores: 0, 1, 2, 3
  i   Unadjusted | GRS_a_z_quadQ1: 1.00 (ref)
  v   Unadjusted | GRS_a_z_quadQ2: OR 0.90 (0.37-2.20), p = 0.821
  v   Unadjusted | GRS_a_z_quadQ3: OR 1.54 (0.68-3.50), p = 0.303
  v   Unadjusted | GRS_a_z_quadQ4: OR 1.00 (0.42-2.39), p = 1
  i   Unadjusted | trend: OR_per_score = 1.06 (0.81-1.38), p_trend = 0.682
  v Done: 4 result rows across 1 exposure and 1 model.
  -- AUC -------------------------------------------------------------------------
  v Validation complete.
  -- Creating GRS groups ---------------------------------------------------------
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_quad ----------------------------------------------------
  GRS_a_z_quad [4 levels]
  Q1: n=75 (25%)
  Q2: n=75 (25%)
  Q3: n=75 (25%)
  Q4: n=75 (25%)
  <NA>: n=0 (0%)
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_tri -----------------------------------------------------
  GRS_a_z_tri [3 levels]
  Low: n=60 (20%)
  Mid: n=180 (60%)
  High: n=60 (20%)
  <NA>: n=0 (0%)
  -- Effect per SD (HR) ----------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_coxph -----------------------------------------------------------------
  i 1 exposure x 1 model = 1 Cox regression
  i Input cohort: 300 participants (n/n_events/person_years reflect each model's actual analysis set)
  
  -- GRS_a_z --
  
  v   Unadjusted | GRS_a_z: HR 1.12 (0.83-1.51), p = 0.465
  v Done: 1 result row across 1 exposure and 1 model.
  -- High vs Low -----------------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_coxph -----------------------------------------------------------------
  i 1 exposure x 1 model = 1 Cox regression
  i Input cohort: 300 participants (n/n_events/person_years reflect each model's actual analysis set)
  
  -- GRS_a_z_tri --
  
  v   Unadjusted | GRS_a_z_triMid: HR 0.82 (0.40-1.68), p = 0.585
  v   Unadjusted | GRS_a_z_triHigh: HR 1.19 (0.51-2.76), p = 0.685
  v Done: 2 result rows across 1 exposure and 1 model.
  -- Trend test ------------------------------------------------------------------
  ! Exposure GRS_a_z_quad is not an ordered factor -- levels will be scored 0, 1, 2, ... (equal spacing assumed).
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_trend -----------------------------------------------------------------
  i 1 exposure x 1 model (categorical + trend model per combination)
  
  -- GRS_a_z_quad --
  
  i Levels: Q1 -> Q2 -> Q3 -> Q4 | Scores: 0, 1, 2, 3
  i   Unadjusted | GRS_a_z_quadQ1: 1.00 (ref)
  v   Unadjusted | GRS_a_z_quadQ2: HR 0.64 (0.28-1.47), p = 0.294
  v   Unadjusted | GRS_a_z_quadQ3: HR 1.10 (0.52-2.31), p = 0.805
  v   Unadjusted | GRS_a_z_quadQ4: HR 1.05 (0.47-2.34), p = 0.905
  i   Unadjusted | trend: HR_per_score = 1.08 (0.83-1.41), p_trend = 0.546
  v Done: 4 result rows across 1 exposure and 1 model.
  -- C-index ---------------------------------------------------------------------
  v Validation complete.
  -- Creating GRS groups ---------------------------------------------------------
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_quad ----------------------------------------------------
  GRS_a_z_quad [4 levels]
  Q1: n=75 (25%)
  Q2: n=75 (25%)
  Q3: n=75 (25%)
  Q4: n=75 (25%)
  <NA>: n=0 (0%)
  -- Source: GRS_a_z -------------------------------------------------------------
  GRS_a_z: mean=-0.02, median=-0.02, sd=0.99, Q1=-0.66, Q3=0.64, NA=0% (n=0)
  -- New column: GRS_a_z_tri -----------------------------------------------------
  GRS_a_z_tri [3 levels]
  Low: n=60 (20%)
  Mid: n=180 (60%)
  High: n=60 (20%)
  <NA>: n=0 (0%)
  -- Effect per SD (OR) ----------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 1 exposure x 1 model = 1 logistic regression
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z --
  
  v   Unadjusted | GRS_a_z: OR 1.10 (0.81-1.49), p = 0.556
  v Done: 1 result row across 1 exposure and 1 model.
  -- High vs Low -----------------------------------------------------------------
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_logistic --------------------------------------------------------------
  i 1 exposure x 1 model = 1 logistic regression
  i Input cohort: 300 participants | CI method: wald (n/n_cases reflect each model's actual analysis set)
  
  -- GRS_a_z_tri --
  
  v   Unadjusted | GRS_a_z_triMid: OR 1.00 (0.46-2.19), p = 1
  v   Unadjusted | GRS_a_z_triHigh: OR 1.25 (0.49-3.16), p = 0.637
  v Done: 2 result rows across 1 exposure and 1 model.
  -- Trend test ------------------------------------------------------------------
  ! Exposure GRS_a_z_quad is not an ordered factor -- levels will be scored 0, 1, 2, ... (equal spacing assumed).
  ! Age and sex adjusted model skipped: age column (UKB field 21022) not found and sex column (UKB field 31) not found.
  
  -- assoc_trend -----------------------------------------------------------------
  i 1 exposure x 1 model (categorical + trend model per combination)
  
  -- GRS_a_z_quad --
  
  i Levels: Q1 -> Q2 -> Q3 -> Q4 | Scores: 0, 1, 2, 3
  i   Unadjusted | GRS_a_z_quadQ1: 1.00 (ref)
  v   Unadjusted | GRS_a_z_quadQ2: OR 0.90 (0.37-2.20), p = 0.821
  v   Unadjusted | GRS_a_z_quadQ3: OR 1.54 (0.68-3.50), p = 0.303
  v   Unadjusted | GRS_a_z_quadQ4: OR 1.00 (0.42-2.39), p = 1
  i   Unadjusted | trend: OR_per_score = 1.06 (0.81-1.38), p_trend = 0.682
  v Done: 4 result rows across 1 exposure and 1 model.
  -- AUC -------------------------------------------------------------------------
  v Validation complete.
  
  
  Execution halted