GEMMA线性混合模型实践 - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

GEMMA线性混合模型实践

更新:2026-10-13;状态:可用;验证范围:GEMMA 0.98.5公开小鼠GRM、LM、LMM及chr17背景排除对照实测;其他模块未执行。

GEMMA以显式亲缘矩阵拟合关联模型,适合学习固定效应、背景相关性和检验方法的连接。

模型与适用任务

GEMMA可做普通线性模型、单性状LMM、多性状LMM及BSLMM等任务;本页实测只包含数量性状LM/LMM与GRM,不涵盖全部模块。LMM把个体相关性放入K代表的随机效应,见零模型与方差组分。

选择它时应评估稠密矩阵的内存和特征分解成本。n×n的double矩阵仅一份就约需8n²字节,实际程序还需其他数组;这个估算不是峰值内存承诺。

输入与最容易出错的顺序

本例用BED/BIM/FAM,表型在FAM第六列。GEMMA也支持BIMBAM等接口,但不同格式的表型、剂量与缺失约定不能混用。

-c指定的是按基因型个体顺序排列的纯数值协变量矩阵,不能直接放FID、IID或标题行。提供-c时需要显式包含截距列1;未提供时程序默认处理截距。本例为“1、PC1、PC2、PC3”四列。

外部K也必须与个体顺序一致;维度正确不代表身份正确。数据对齐见GWAS软件输入转换与样本对齐。

已实测的三步命令

先按公开小鼠数据贯通多软件GWAS准备输入。工作目录是examples/output/gwas-real/:

mkdir -p gemma
export OPENBLAS_NUM_THREADS=2
gemma -bfile prepared/qc -c prepared/gemma.covariates.txt \
  -maf 0.05 -miss 0.05 -gk 2 -outdir gemma -o grm

gemma -bfile prepared/qc -c prepared/gemma.covariates.txt \
  -maf 0.05 -miss 0.05 -lm 1 -outdir gemma -o lm_pc3

gemma -bfile prepared/qc -c prepared/gemma.covariates.txt \
  -maf 0.05 -miss 0.05 -k gemma/grm.sXX.txt \
  -lmm 1 -outdir gemma -o lmm_pc3

实测GEMMA 0.98.5。-gk 2生成标准化矩阵sXX;-gk 1生成中心化矩阵cXX,不能把后缀或权重定义随意互换。这里显式写出MAF和缺失设置,避免跨软件隐藏的默认筛选造成比较错位。

检验与输出

-lm和-lmm区分背景模型,后面的1为Wald检验,2为似然比,3为得分,4输出三者。详见Wald似然比与得分检验。

.assoc.txt中的allele1/allele0、af、beta、se和具体P列要一起读。不同模式或版本的观测数、缺失数与额外列可能不同;读取标题而非固定第几列。本例LM含n_obs,LMM含n_miss,不能直接用一套硬编码列位置。

效应方向以实际输入编码和输出等位基因为准,不根据“minor”字样推断。旧版本方向曾有变化;BED来自其他软件时第一等位基因也未必是当前样本中的次要等位基因。

结果检查与范围

检查分析个体、SNP数、特征分解、方差估计与警告。本例1410个体、8544位点;rs6249614的全基因组GRM LMM得到β≈−0.4467002、P≈6.73×10⁻¹⁵。这些数值仅用于本例校验,不是正式生物学新发现。

本例另做第17号染色体背景排除对照,见LOCO与近端污染;完整全基因组LOCO未在此执行。二分类不能把此LMM系数当成log-OR,多性状与BSLMM也有各自输入和目标。

深入:GEMMA官方仓库、0.98.5手册、GEMMA原始方法。