美文网首页
利用R/qtl1计算QTL定位,并估算其效应值

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

作者: 耕读者 | 来源:发表于2020-05-09 18:23 被阅读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)

    计算完成。

    相关文章

      网友评论

          本文标题:利用R/qtl1计算QTL定位,并估算其效应值

          本文链接:https://www.haomeiwen.com/subject/ejqlnhtx.html