想对数量性状表型进行定位,首先应该知道有多少QTL存在,其次QTL之间是否存在互作,当
QTL数目和其互作关系确定后,就可以估算其对表型变异的解释百分比(PVE:percent variance effect)。我利用R包自带数据“listeria”来进行演示。
library(qtl) #加载qtl包
data(listeria) #加载数据
# 将listeria中第一表型大于250的赋值到binphe
binphe<-as.numeric(pull.pheno(listeria,1)>250)
#添加到listeria数据中
listeria$pheno<-cbind(listeria$pheno,binary=binphe)
# 计算基因型概率
listeria<-calc.genoprob(listeria,step=1,err=0.001,map.function="kosambi")
# 计算每个位点处的lod值
out.bin<-scanone(listeria,pheno.col="binary",model="binary")
# 查看binary表型超过阈值的位置,即QTL位置
sum<-summary(out.bin,threshold=3.63) # see Karl et al. P141
发现在5号和13号染色体上有QTL
# 创建QTL
mqtl<-makeqtl(listeria,chr=sum[,1],pos=sum[,2],what="prob")
mqtl
# 对QTL进行位置校正
rqtl<-refineqtl(listeria,pheno.col="binary",qtl=mqtl,method="hk",model="binary")
rqtl
发现未知发生改变
# 根据上面校正的位置,再次创建和校正,直到连续两次计算结果不变
chr<-c(5,13)
pos<-c(34,26.16)
mqtl<-makeqtl(listeria,chr=chr,pos=pos,what="prob")
mqtl
rqtl<-refineqtl(listeria,pheno.col="binary",qtl=mqtl,method="hk",model="binary")
rqtl
# 看看还有没有其它QTL存在,有的话就makeqtl添加到QTL体系中,校正位置到不变
adqtl<-addqtl(listeria,qtl=mqtl,pheno.col="binary",method="hk",model="binary")
summary(adqtl)
chr6上的16.0cM处有lod=3.81>3.62
则再次makeqtl进行再次校正
# 查看QTL之间的相互作用关系,
intqtl<-addint(listeria,pheno.col="binary",qtl=mqtl,formula=y~Q1+Q2+Q3,
method="hk",model="normal",pvalues=T)
summary(intqtl)
发现chr5和chr6上的QTL有互作
# 估算每个QTL对表型的pve值
fqtl<-fitqtl(listeria,dropone=T,get.ests=T,model="normal",
qtl=mqtl,method="hk",formula=y~Q1*Q2+Q3)
summary(fqtl)
计算完成。