利用R/qtl1计算QTL定位,并估算其效应值

2020-05-09  本文已影响0人  耕读者

想对数量性状表型进行定位,首先应该知道有多少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)

计算完成。

上一篇下一篇

猜你喜欢

热点阅读