Performs the Burden test using optimal weights derived from the GLOW framework. The Burden test combines Z-scores linearly and is most powerful when all causal variants have effects in the same direction (all positive or all negative).

The test statistic is: $$S_{Burden} = \sum_{i=1}^{m} w_i Z_i$$

where \(w_i\) are optimal weights and \(Z_i\) are marginal score Z-scores.

CRITICAL: The Burden test statistic is a LINEAR combination of Z-scores. Under the null hypothesis, S follows a normal distribution with variance \(\sigma^2 = w^T M w\), where M is the correlation matrix of Z-scores. The p-value is calculated using the normal distribution (NOT Davies method, NOT chi-square distribution).

GLOW_Burden(marg_score_stats, B, PI, ...)

Arguments

marg_score_stats

List output from getZ_marg_score or getZ_marg_score_binary_SPA containing:

Zscores

Numeric vector of marginal score Z-scores

M_Z

Correlation matrix of Z-scores

M_s

Covariance matrix of score statistics

s0

Scalar standard deviation under null

B

Numeric vector of effect size estimates (length m). These can be from external studies, meta-analysis, or prior information. Should be on the standardized scale (e.g., log odds ratio, standardized beta).

PI

Numeric vector of variant-importance scores (length m, values in \([0,1]\)), each variant's annotation-derived relative importance. Can be computed using get_PI based on annotation data.

...

Additional arguments passed to the internal omni_SgZ_test (e.g., method, nsim for GFisher package options)

Value

A list with two elements:

STAT

Matrix (k x 1) of test statistics, where k is the number of weight schemes (wts_BE, wts_APE, wts_equ). Last row is labeled "GLOW_Burden" and corresponds to equal weights.

PVAL

Matrix (k x 1) of p-values corresponding to each test statistic. All p-values are computed using the normal distribution. Last row is the final GLOW Burden test p-value.

Details

Algorithm:

  1. Compute scaled effect sizes: \(B^* = \sqrt{diag(M_s)} \times B / s_0\)

  2. Calculate optimal weights using Optimal_Weights_M with:

    • Transformation g(x) = x (identity function)

    • Degrees of freedom df = Inf (indicates Burden test)

    • Effect size estimates B*

    • Variant-importance scores PI

    • Correlation matrix M

  3. Construct weight matrix with optimal weights (BE, APE) and equal weights

  4. Call omni_SgZ_test which routes to burden_test for each weight scheme

  5. burden_test uses normal distribution: \(p = 2 \Phi(-|S|/\sigma)\)

Optimal Weight Schemes:

  • wts_BE (Best Estimator): Optimal under normal approximation assuming random effect sizes \(\theta_i \sim PI_i \delta_{B_i} + (1-PI_i) \delta_0\)

  • wts_APE (Asymptotically Powerful Estimator): Accounts for correlation and variance structure, optimal for sparse signals

  • wts_equ: Equal weights baseline (simple sum of Z-scores)

The final Burden p-value is the minimum of the equal weights p-value (last row).

When Burden Test is Optimal:

  • All causal variants have effect in the same direction

  • Effect sizes are relatively homogeneous

  • Strong directional hypothesis (e.g., all deleterious or all protective)

P-value Calculation (MANDATORY - DO NOT MODIFY): The p-value is computed using the normal distribution: $$p = 2 \times P(N(0, \sigma^2) > |S|) = 2 \times \Phi(-|S|/\sigma)$$ where \(\sigma^2 = w^T M w\) is the variance of S under the null.

This is NOT a quadratic form - it is a linear combination. The statistic S is NOT squared. The Davies method is NOT used. The chi-square distribution is NOT used.

Computational Complexity: O(m^2) for weight calculation and p-value

Assumptions:

  • Z-scores are standard normal under null hypothesis

  • M is the correlation matrix of Z-scores

  • Effect sizes B are on the standardized scale

  • Variant-importance scores PI are in \([0,1]\)

Note

For new code, consider using glow_test with appropriate test_specs instead. The glow_test() interface supports flexible test composition via default_test_specs and is the preferred entry point for the GLOW test system. This function remains available for direct use and backward compatibility.

References

Zhang, H., Liu, M., Landers, J. E., and Wu, Z. (2026). Integrated weighted association test with application to genetic association studies. The Annals of Applied Statistics, 20(3), 2074-2097. doi:10.1214/26-AOAS2223

See also

glow_test for the preferred high-level interface getZ_marg_score for computing marginal score statistics getZ_marg_score_binary_SPA for binary traits with SPA get_B for estimating effect sizes from external data get_PI for computing variant-importance scores from annotations Optimal_Weights_M for optimal weight calculation GLOW_SKAT for SKAT test GLOW_Fisher for Fisher test GLOW_Omni for omnibus test combining all methods

Examples

if (FALSE) { # \dontrun{
# Simulate data
set.seed(123)
n <- 500  # sample size
m <- 20   # number of variants

# Genotype matrix (n x m)
G <- matrix(rbinom(n*m, 2, 0.1), n, m)

# Covariates
X <- matrix(rnorm(n*2), n, 2)

# Binary trait
Y <- rbinom(n, 1, 0.3)

# Compute marginal score statistics
marg_stats <- getZ_marg_score(G, X, Y, trait="binary")

# External effect sizes (e.g., from meta-analysis)
B <- rnorm(m, mean=0, sd=0.2)

# Variant-importance scores (e.g., from annotation)
PI <- runif(m, 0.1, 0.9)

# Run GLOW Burden test
result <- GLOW_Burden(marg_score_stats=marg_stats, B=B, PI=PI)

# View results
print(result$STAT)
print(result$PVAL)
} # }