R/qtl 定位分析(四)Non-normal phenotyp
前面介绍了 QTL 分析的一般流程:包括数据输入,数据质量检查,单 QTL 分析。对这个过程已经比较了解了。
R/qtl 定位分析(三)Single-QTL analysis
接下来几部分将会更全面地介绍 QTL 定位中可能出现的问题。
但在 R/qtl 定位分析(三)Single-QTL analysis 中的分析,一个前提假设就是表型都是正态分布的。在不存在很大效应的 QTL 时,表型分布通常会接近正态分布:单峰且合理对称。但很多时候,表型也可能表现出二分、偏态、存在峰值的分布。
一般来说,应用 standard interval mapping 都可以得到一个合理结果,尤其是表型近似正态,或者通过取对数之类的方法转换为近似正态。
即使是二分的表型,只要不存在 low genotype information 造成的假 LOD 值的情况下,通过 permutation test 建立起统计显著性即可。
但是,同样可以采取一些方法来提高检测效力。比如:Nonparametric interval mapping 考虑表型的 ranks;为 binary traits 也有单独的方法;等等。
本文介绍 3 种在区间作图中常用到的方法。以 listeria 数据集中的 phe 为例:
data(listeria)
plotPheno(listeria, pheno.col=1)
1. Nonparametric interval mapping
这是一种 rank-based methods for interval mapping 的扩展。
listeria <- calc.genoprob(listeria, step=1, error.prob=0.001)
out.np <- operm.np <- scanone(listeria, model="np", n.perm=1000, perm.Xsp=TRUE)
summary(out.np, perms=operm.np, alpha=0.05, pvalues=TRUE)
2. Binary traits
顾名思义,这是一种针对类似质量性状的分析方法。将上述表型的死活分为两类(上图是统计了一定时间内菌类死亡的情况,最后一根柱子是到那个时候还没死的)。
binphe <- as.numeric(pull.pheno(listeria, 1) > 250)
listeria$pheno <- cbind(listeria$pheno, binary=binphe)
plotPheno(listeria, pheno.col=3)
operm.bin <- scanone(listeria, pheno.col="binary", model="binary", n.perm=1000, perm.Xsp=TRUE)
plot(out.np, out.bin, col=c("blue", "red"), ylab="LOD score", alternate.chrid=TRUE)
summary(out.bin, perms=operm.bin, alpha=0.05, pvalues=TRUE)
3. Two-part model
如果表型是存在一个 spike 的,比如最高值或者最低值。默认为最低值,可以用 upper=TRUE 指定最高值。
y <- log(pull.pheno(listeria, 1))
listeria$pheno <- cbind(listeria$pheno, logsurv=y)
operm.2p <- scanone(listeria, model="2part", upper=TRUE, pheno.col="logsurv", n.perm=1000, perm.Xsp=TRUE)
summary(out.2p, perms=operm.2p, alpha=0.05, pvalues=TRUE)
这一部分相对简单,就是针对非正态分布表型,检测 QTL 的时候,适当使用一些其它参数。