在进行单QTL和双QTL基因组扫描后,最好将确定的位点合并成一个联合模型,然后进一步探讨QTL的可能性。
在此工作中,我们使用由makeqtl()创建的QTL对象,利用fitqtl()拟合多qtl模型。
流程如下:
- 1.首先进行单qtl基因组扫描,选择LOD评分最高的位置;
- 2.固定QTL模型:
a.加性QTL扫描;
b.对于当前模型中的每个QTL,扫描另一个相互作用的QTL;
c.如果当前模型中有2个QTL,考虑添加其中一个可能的成对交互作用;
d.进行二维双QTL扫描,添加一对新的QTL,加性或相互作用;
e.在当前步骤中考虑的模型比较标准中,选出具有最大值的模型。 - 优化当前模型中QTL的位置;
- 重复步骤2和步骤3,得到具有预定数量位点的模型;
- 最后,在所有模型中,选择模型比较标准最大的模型。
0.准备工作
> library(qtl)
> data <- read.cross("csv", ".", "gen_phe.csv")
> jit<-jittermap(data)
> calc <- calc.genoprob(jit, step=2)
1.创建QTL对象
将但QTL扫描和二维双QTL扫描得到的QTL整理成一个联合模型;
根据单QTL扫描的结果,共有2个QTL,二维双QTL扫描得到chr11和chr13之间存在互作:
> chr <- c(6, 8, 11,13)
> pos <- c(86.77,40.52,96, 54)
2.模型拟合
> qtl <- makeqtl(calc, chr, pos)
Error in makeqtl(calc, chr, pos) : You must first run sim.geno.
报错:You must first run sim.geno.
该函数取一个交叉对象和指定的染色体数目和位置,并在最近的伪标记处提取基因型概率或估算基因型
> sim <- sim.geno(calc, step=2, err=0.001)
重新拟合,允许Q3和Q4之间存在互作:
> qtl <- makeqtl(sim, chr, pos)
> my.formula <- y ~ Q1 + Q2 + Q3 + Q4 + Q3:Q4
> out.fitqtl <- fitqtl(sim, qtl=qtl, formula=my.formula)
总结
> summary(out.fitqtl)
%var一列就是QTL的表型解释率了。
![](https://img.haomeiwen.com/i18704335/a3dd8eccfb8b02d7.png)
引用转载请注明出处,如有错误敬请指出。
网友评论