plot_gwas_power {omixVizR}R Documentation

Plot GWAS Statistical Power

Description

Generates a statistical power analysis plot for GWAS studies. Supports binary (case-control) traits over a range of odds ratios and minor allele frequencies, and quantitative traits over a range of effect sizes and minor allele frequencies. This function uses the 'genpwr' package for calculations and creates a highly customized ggplot.

Usage

plot_gwas_power(
  trait_type = "bt",
  n_cases = NULL,
  n_controls = NULL,
  sd_trait = NULL,
  N = NULL,
  maf_levels = c(0.01, 0.02, 0.05, 0.1, 0.2, 0.5),
  or_range = seq(1.01, 2, 0.001),
  effect_size = seq(0.01, 0.3, 0.001),
  alpha = 5e-08,
  plot_title = NULL,
  save_plot = TRUE,
  output_graphics = "png",
  width = 17,
  height = 9,
  dpi = 600
)

Arguments

trait_type

Character string specifying trait type: "bt" for binary (case-control) or "qt" for quantitative traits. Default: "bt".

n_cases

Number of cases in the study (required if trait_type = "bt").

n_controls

Number of controls in the study (required if trait_type = "bt").

sd_trait

Numeric, standard deviation of the quantitative trait (required if trait_type = "qt").

N

Numeric, total sample size for quantitative traits (required if trait_type = "qt").

maf_levels

A numeric vector of Minor Allele Frequencies (MAFs) to test. Default: c(0.01, 0.02, 0.05, 0.10, 0.20, 0.50).

or_range

A numeric vector specifying the sequence of Odds Ratios (ORs) to test. Default: seq(1.01, 2.00, 0.001). Used when trait_type = "bt".

effect_size

A numeric vector specifying the sequence of effect sizes (beta) to test for quantitative traits. Default: seq(0.01, 0.30, 0.001). Used when trait_type = "qt".

alpha

The significance level (alpha) for the power calculation. Default: 5e-8.

plot_title

A string for the plot title. Can include newlines (⁠\\n⁠). Default: A title generated from case/control numbers.

save_plot

Logical, whether to save the plot to a file. If FALSE, the plot object is only returned. Default: TRUE.

output_graphics

The file format for saving the plot. Currently supports "png" and "pdf". Default: "png".

width

The width of the saved plot in inches. Default: 17.

height

The height of the saved plot in inches. Default: 9.

dpi

The resolution of the saved plot in dots per inch. Default: 600.

Details

This function automates the process of calculating and visualizing GWAS power for both binary (case-control) and quantitative traits. For binary traits, it analyzes power across odds ratios, while for quantitative traits, it analyzes power across effect sizes. It highlights the minimum OR/effect size required to achieve 80% power for the lowest and third-lowest MAF levels, adding dashed lines and color-coded labels for clarity.

Value

A list containing two elements:

plot

The ggplot object for the power plot.

power_data

A data.table containing the full results from the power analysis.

Font Information

The MetroSans font included in this package is sourced from https://fontshub.pro/font/metro-sans-download#google_vignette. It is intended for academic research and non-commercial use only. For commercial use, please contact the font copyright holder.

The font files are included in the package's inst/extdata directory and are automatically loaded for plotting.

Author(s)

Zhen Lu luzh29@mail2.sysu.edu.cn

Examples


  # Binary trait example (case-control)
  power_results_bt <- plot_gwas_power(
    trait_type = "bt",
    n_cases = 4324,
    n_controls = 93945,
    save_plot = FALSE
  )

  # Quantitative trait example
  power_results_qt <- plot_gwas_power(
    trait_type = "qt",
    sd_trait = 0.09365788681305078,
    N = 10000,
    maf_levels = c(0.01, 0.02, 0.05, 0.10, 0.20, 0.50),
    effect_size = seq(0.01, 0.10, 0.001),
    save_plot = FALSE
  )

  # Access the ggplot object and data
  # print(power_results_bt$plot)
  # print(power_results_bt$power_data)



[Package omixVizR version 1.1.3 Index]