计算比值比和多等位基因位点如HLA的所有等位基因的相对风险?

时间:2016-02-26 22:31:31

标签: r statistics bioinformatics

是否有任何R包可以计算多等位基因位点如HLA-A的所有等位基因的比值比和相对风险?我知道我可以逐个为每个等位基因做,但如果有任何包,知道会有所帮助。或者,如果任何人都可以建议小代码,它也会有所帮助

 Allele Control Case 

 1. A*01   116   17
 2. A*02   186   30 
 3. A*03     2    2 
 4. A*04     1    1 
 5. A*05     71   9 
 6. A*11     25   8
 7. A*12     10   5

在上面的样本数据中,我想计算每个等位基因的优势比和相对风险(A * 01,A * 02,A * 03 ...... A * 12)。

如果我们采取第一行,2x2列联表将是

 Allele control case

 1. A*01 116 17  
 2. Others 295 55

注意:其他人拥有所有其他剩余行的总和。现在让我们创建2x2列联表:

M2 <- matrix(c(55,17, 295, 116), nrow = 2)
colnames(M2) <- c("Cases", "Controls")
rownames(M2) <- c("Others", "A*01")

然后使用镶嵌包中的orr fun计算优势比和相对风险:orr(M2,conf.level = 0.95, quiet = FALSE)

我想要的是每行与所有其他剩余行的相同计算。如果我不清楚,请告诉我

1 个答案:

答案 0 :(得分:1)

这构建了一个二项式模型。为了获得比值比,人们可以将系数表示为指数。将+0添加到公式意味着没有参考水平,然后您可以获得相对于“预期”或Null值为0的每个因子水平的估计值,即案例和控制的比例相等。为了获得相对风险,您应该进行一些搜索以找到正确的转换。

dat <- read.table(text="Allele Control Case 
A*01 116   17
A*02 186   30 
A*03 2    2 
A*04 1    1 
A*05 71   9 
A*11 25   8
A*12 10   5", head=TRUE)

> glm(cbind(Case,Control)~Allele+0, binomial, data=dat)

Call:  glm(formula = cbind(Case, Control) ~ Allele + 0, family = binomial, 
    data = dat)

Coefficients:
AlleleA*01  AlleleA*02  AlleleA*03  AlleleA*04  AlleleA*05  AlleleA*11  
   -1.9204     -1.8245      0.0000      0.0000     -2.0655     -1.1394  
AlleleA*12  
   -0.6931  

Degrees of Freedom: 7 Total (i.e. Null);  0 Residual
Null Deviance:      273.6 
Residual Deviance: 2.109e-14    AIC: 37.66

> exp( coef(glm(cbind(Case,Control)~Allele+0, binomial, data=dat)))
AlleleA*01 AlleleA*02 AlleleA*03 AlleleA*04 AlleleA*05 AlleleA*11 
 0.1465517  0.1612903  1.0000000  1.0000000  0.1267606  0.3200000 
AlleleA*12 
 0.5000000