2.QTL定位:Rqtl —— Two-QTL scans

在上篇帖子中介绍了如何用qtl这个R包进行单QTL定位,但有很多复杂性状都是由多位点共同控制的。有些位点之间可能存在连锁,即加性效应或上位性效应,本篇文章将介绍如何通过二维双QTL基因组扫描,对复杂数量性状多位点之间的QTL连锁或相互作用进行分析。

多QTL联合分析有以下三个优点:

  • 考虑大效应的QTL,从而减少残差,更好地识别中等效应的QTL;
  • 通过比较双QTL模型与单QTL模型的拟合,可以较好地实现连锁QTL的分离;
  • QTL间的上位性只能通过明确考虑多个QTL的模型来评估。

0.安装与准备工作

R包安装与数据格式在上一篇帖子中有详细介绍:
1.QTL定位:Rqtl—— Single-QTL analysis - 简书 (jianshu.com)

官方说明书:
https://rqtl.org/tutorials/rqtltour2.pdf

1.读取数据

> library(qtl)
> data <- read.cross("csv", ".", "gen_phe.csv")
Warning messages:
1: In read.cross.csv(dir, file, na.strings, genotypes, estimate.map,  :
  The following unexpected genotype codes were treated as missing.
    |--|

2: In summary.cross(cross) :
  Some markers at the same position on chr 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27; use jittermap().

这里看到warning信息,第一条是“--”基因型识别为缺失值,第二条是有一些marker在相同的位置上。因此需要通过jittermap()函数抖动基因图谱中的标记位置,这样就不会有两个标记相互重叠。

jittermap()

> jit<-jittermap(data)

2. 计算条件QTL基因型概率

根据可用的标记数据,利用 calc.genoprob()函数计算条件QTL基因型概率,这里使用疏松的网格(step=2)来进行计算,提高计算速度:

> calc <- calc.genoprob(jit, step=2)

3. 二维双QTL扫描

默认情况下,分析是通过EM算法的最大似然来执行的,(method="em"),verbose=FALSE阻止跟踪信息。

> out2d_em <- scantwo(calc, verbose=FALSE)
  • 使用Haley-Knott回归方法进行2D扫描
> out2d_hk <- scantwo(calc, method="hk")
  • 组合检验
    最好是对观察到的数据使用组合检验,这样的结果将考虑表型分布、标记密度和缺失基因型数据,这一步需要耗费很长的时间。
> out2d_perm <- scantwo(calc, method="hk",n.perm=1000)

多性状双QTL扫描

因为数据量比较大,win下的R内存达不到,需要提交Linux,由于没有服务器的root权限,我自己技术有限,Linux下的Rstudio装不上,所以我把表型文件拆开,分别计算,分别保存为RData,再转回到win里进行后续分析。

这里我写了一个循环解决这个问题,其中1-20列为表型,21列为样本的ID,22列之后为基因型,如果和我一样有多个表型的,可以参照下面的循环更改。

library('qtl')
raw<-read.csv("gen_phe.csv")
  for (i in 1:20) { 
   T<-raw[,c(i,22:9788)] 
   T[is.na(T)]<-""
   file_name <- paste0("gen_phe_", i, ".csv")
   write.csv(T,file = file_name,row.names = F,quote =FALSE)
   data <- read.cross("csv", ".", file_name)
   jit<-jittermap(data)
   calc <- calc.genoprob(jit, step=2)
   out2d_hk <- scantwo(calc,method="hk")
   file_name <- paste0("out2d_hk_", i, ".RData")
   save(out2d_hk, file = file_name)
   out2d_perm <- scantwo(calc,method="hk",n.perm=100)
   file_name <- paste0("out2d_perm_", i, ".RData")
   save(out2d_perm, file = file_name)
}

4. 总结P值

如果是win中进行的计算,直接运行:

> summary(out2d_hk, perms=out2d_perm, alpha=0.2, pvalues=TRUE)

如果是Linux中进行的计算,首先要读入计算得到的.RData,这里以第一个性状计算得到的out2d_hk_1.RData和out2d_perm_1.RData为例:

> load("out2d_hk_1.Rdata",  temp_env <- new.env())
> out2d_hk_1 <- as.list(temp_env)
> out2d_hk_1<-out2d_hk_1[[1]]
> load("out2d_perm_1.Rdata",  temp_env <- new.env())
> out2d_perm_1 <- as.list(temp_env)
> out2d_perm_1<-out2d_perm_1[[1]]
> summary(out2d_hk_1, perms=out2d_perm_1, alpha=0.1, pvalues=TRUE)

以说明书中的结果为例进行解释,详细内容如下:
https://rqtl.org/tutorials/new_summary_scantwo.pdf


lod.full,lod.fv1和lod.int对应pos1f和pos2f;
lod.add和lod.av1对应pos1a和pos2a。

结果中共提供五个LOD值,分别是:

  • lod.full: 全模型full model (two QTL plus interaction)的效应值。

  • lod.fv1:比较j、k染色体上QTL的全模型和单QTL模型的LOD值。允许上位性的可能性。

  • lod.int:比较j、k染色体上QTL的全模型和加性模型的LOD值。证明j、k两条染色体上是否存在QTL间的相互作用。

  • lod.add:加性模型的LOD值。

  • lod.av1:比较j、k染色体上QTL的加性模型和单QTL模型的LOD值。假设没有上位性。

官方说明中建议忽略lod.int,而对其余4个阈值使用共同的显著性水平(α = 5 or 10%)。

因此,在示例结果中,共存在两对QTL存在相互作用,分别在Chr1、4和Chr6、15之间。

引用转载请注明出处,如有错误敬请指出。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容