Skip to contents

Sample size for family-based linkage and association design

Usage

fbsize(
  gamma,
  p,
  alpha = c(1e-04, 1e-08, 1e-08),
  beta = 0.2,
  debug = 0,
  error = 0
)

Arguments

gamma

genotype relative risk assuming multiplicative model.

p

frequency of disease allele.

alpha

Type I error rates for ASP linkage, TDT and ASP-TDT.

beta

Type II error rate.

debug

verbose output.

error

0=use the correct formula,1=the original paper.

Value

The returned value is a list containing:

  • gamma input gamma.

  • p input p.

  • n1 sample size for ASP.

  • n2 sample size for TDT.

  • n3 sample size for ASP-TDT.

  • lambdao lambda o.

  • lambdas lambda s.

Details

This function implements Risch and Merikangas (1996) statistics evaluating power for family-based linkage (affected sib pairs, ASP) and association design. They are potentially useful in the prospect of genome-wide association studies.

The function calls auxiliary functions sn() and strlen; sn() contains the necessary thresholds for power calculation while strlen() evaluates length of a string (generic).

Note

extracted from rm.c.

References

Risch N, Merikangas K (1996). “The Future of Genetic Studies of Complex Human Diseases.” Science, 273(5281), 1516-1517. doi:10.1126/science.273.5281.1516 . Risch N, Merikangas K (1996). “The Future of Genetic Studies of Complex Human Diseases.” Science, 273(5281), 1516-1517. doi:10.1126/science.273.5281.1516 . Risch N, Merikangas K (1997). “Reply to Scott el al.” Science, 275, 1329-1330. Scott WK, Pericak-Vance MA, Haines JL (1997). “Genetic analysis of complex diseases.” Science, 275(5304), 1327; author reply 1329-30.

See also

Author

Jing Hua Zhao

Examples

models <- matrix(c(
   4.0, 0.01,
   4.0, 0.10,
   4.0, 0.50, 
   4.0, 0.80,
   2.0, 0.01,
   2.0, 0.10,
   2.0, 0.50,
   2.0, 0.80,
   1.5, 0.01,    
   1.5, 0.10,
   1.5, 0.50,
   1.5, 0.80), ncol=2, byrow=TRUE)
outfile <- "fbsize.txt"
cat("gamma","p","Y","N_asp","P_A","H1","N_tdt","H2","N_asp/tdt","L_o","L_s\n",
    file=outfile,sep="\t")
for(i in 1:12) {
  g <- models[i,1]
  p <- models[i,2]
  z <- fbsize(g,p)
  cat(z$gamma,z$p,z$y,z$n1,z$pA,z$h1,z$n2,z$h2,z$n3,z$lambdao,z$lambdas,file=outfile,
      append=TRUE,sep="\t")
  cat("\n",file=outfile,append=TRUE)
}
table1 <- read.table(outfile,header=TRUE,sep="\t")
nc <- c(4,7,9)
table1[,nc] <- ceiling(table1[,nc])
dc <- c(3,5,6,8,10,11)
table1[,dc] <- round(table1[,dc],2)
unlink(outfile)
# APOE-4, Scott WK, Pericak-Vance, MA & Haines JL
# Genetic analysis of complex diseases 1327
g <- 4.5
p <- 0.15
cat("\nAlzheimer's:\n\n")
#> 
#> Alzheimer's:
#> 
fbsize(g,p)
#> $gamma
#> [1] 4.5
#> 
#> $p
#> [1] 0.15
#> 
#> $y
#> [1] 0.6256916
#> 
#> $n1
#> [1] 162.6246
#> 
#> $pA
#> [1] 0.8181818
#> 
#> $h1
#> [1] 0.4598361
#> 
#> $n2
#> [1] 108.994
#> 
#> $h2
#> [1] 0.6207625
#> 
#> $n3
#> [1] 39.97688
#> 
#> $lambdao
#> [1] 1.671594
#> 
#> $lambdas
#> [1] 1.784353
#> 
# note to replicate the Table we need set alpha=9.961139e-05,4.910638e-08 and
# beta=0.2004542 or reset the quantiles in fbsize.R