• GWAS logistic + 显性模型 回归分析


    001、plink

    root@PC1:/home/test# ls
    gwas_case_cont.map  gwas_case_cont.ped
    root@PC1:/home/test# plink --file gwas_case_cont --logistic dominant beta 1> /dev/null   ## 使用显性模型分析
    root@PC1:/home/test# ls
    gwas_case_cont.map  gwas_case_cont.ped  plink.assoc.logistic  plink.log
    root@PC1:/home/test# head -n 5 plink.assoc.logistic
     CHR        SNP         BP   A1       TEST    NMISS       BETA         STAT            P
       1       snp1       3046    A        DOM      288     0.1018       0.2601       0.7948
       1       snp2       3092    T        DOM      288     0.1018       0.2601       0.7948
       1       snp3       3174    T        DOM      288   -0.04925       -0.159       0.8737
       1       snp4      32399    T        DOM      288     0.0702       0.2153       0.8295

    002、R语言

    root@PC1:/home/test# ls
    gwas_case_cont.map  gwas_case_cont.ped
    root@PC1:/home/test# plink --file gwas_case_cont --recode A 1> /dev/null   ## 转换为数值型
    root@PC1:/home/test# ls
    gwas_case_cont.map  gwas_case_cont.ped  plink.log  plink.raw
    root@PC1:/home/test# sed 1d plink.raw | cut -d " " -f 7- | sed 's/2/1/g' > temp
    root@PC1:/home/test# sed -n 1p plink.raw | cat - <(sed 1d plink.raw | cut -d " " -f 1-6 | paste -d " " - temp ) > plink2.raw  ## 修改格式
    root@PC1:/home/test# ls
    gwas_case_cont.map  gwas_case_cont.ped  plink2.raw  plink.log  plink.raw  temp
    root@PC1:/home/test# head plink2.raw | cut -d " " -f 1-10
    FID IID PAT MAT SEX PHENOTYPE snp1_A snp2_T snp3_T snp4_T
    A1 A1 0 0 1 1 1 1 0 0
    A2 A2 0 0 1 1 0 0 0 0
    A3 A3 0 0 1 1 0 0 0 0
    A4 A4 0 0 1 1 0 0 0 0
    A5 A5 0 0 1 1 0 0 0 0
    A6 A6 0 0 1 1 0 0 0 0
    A7 A7 0 0 1 1 0 0 0 0
    A8 A8 0 0 1 1 0 0 0 0
    A9 A9 0 0 1 1 0 0 0 0
    dir()
    library(data.table)
    dat <- fread("plink2.raw", header = T, data.table = F)
    dat <- dat[,-c(1,3:5)]
    dat[,2] <- dat[,2] - 1
    
    result <- data.frame()
    
    for (i in 3:10) {
      logis <- glm(dat[,2]~dat[,i], family = "binomial", data = dat)
      result <- rbind(result, c(exp(logis$coefficients[2]),summary(logis)$coefficients[2,]))
    }
    
    names(result) <- c("OR",names(summary(logis)$coefficients[2,]))
    result

  • 相关阅读:
    VB.NET中获取串口列表
    跟着你混,真吃亏!
    [翻译]部署Microsoft .NET Framework Version 3.0(含下载)
    将特定格式的TXT数据文件写入EXCEL
    VB.NET中判断一个数组中是否有重值
    多语言应用程序开发
    .NET 环境下进制间的转换
    初识.NET
    映射Y轴
    Culture Name
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/16536252.html
Copyright © 2020-2023  润新知