1.QTL定位:Rqtl—— Single-QTL analysis

R/qtl是一个可扩展的、交互的、用于QTL定位的R包,集数据分析和绘图于一体。特点是使复杂的QTL定位方法被广泛使用,使用户专注于建模而不是计算。

官网:
https://rqtl.org/

在网页下部还有一块,是其他常用的QTL定位软件,都可以了解一下。


官方说明书(简易版):
https://rqtl.org/tutorials/rqtltour2.pdf

还有详细的说明书,专门对Rqtl的原理进行了介绍,遗传学知识非常丰富,有时间的话强烈建议把这本书看完,绝对受益匪浅。
A Guide to QTL Mapping with R/qtl

这篇帖子就只介绍一下最基础的用法,想了解更多,还是自己去看说明书哈!

0. 准备工作

安装:

> install.packages("qtl")

调用:

> library(qtl)

1. 数据格式:

官方各格式示例数据:
https://rqtl.org/sampledata/

基因型和表型数据整理在一张以逗号分隔的csv文件中,以样本ID为界限,ID前为表型值,ID后为基因型。

前几列为表型值,一种表型一列;
sex:性别
ID:sample名称,注意表型,基因型,ID都要对应
后几列为基因型。

其中表型和基因型是必须的,其余可有可无。


基因型格式:
第一行:maker名
第二行:染色体编号
第三行:maker所在的位置
第四行之后为基因型

image.png

这篇帖子中用到的示例数据是:
https://rqtl.org/sampledata/listeria.csv

2.读取数据

> listeria.a <- read.cross("csv", ".", "listeria.csv")

3. 数据完整性检查

> summary(listeria.a)
    F2 intercross

    No. individuals:    120 

    No. phenotypes:     3 
    Percent phenotyped: 96.7 100 100 

    No. chromosomes:    20 
        Autosomes:      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
        X chr:          X 

    Total markers:      133 
    No. markers:        13 6 6 4 13 13 6 6 7 5 6 6 12 4 8 4 4 4 4 2 
    Percent genotyped:  88.5 
    Genotypes (%):    
          Autosomes:        AA:25.8      AB:48.9      BB:24.4  not BB:0.0   not AA:0.9  
       X chromosome:        AA:51.7      AB:48.3 

从summary中可以看到,共有120个样本,19条常染色体,一条性染色体。

有许多简单的函数可以提取汇总信息:

> nind(listeria.a) #样本数
[1] 120
> nchr(listeria.a) #染色体数
[1] 20
> totmar(listeria.a) #标记数
[1] 133 
> nmar(listeria.a) #每条染色体上的标记数
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19  X 
13  6  6  4 13 13  6  6  7  5  6  6 12  4  8  4  4  4  4  2 
> nphe(listeria.a) #表型数
[1] 3

4. 汇总信息画图

> pdf("summary_plot.pdf",width=8,height=10)
> plot(listeria.a)
> dev.off()
summary_plot.pdf

上述图的各个部分可以分别按如下方式得到:

# 缺失基因型数据
> plotMissing(listeria.a)
Missing genotypes
# 绘制遗传图谱
> plotMap(listeria.a)
Genetic map
# 绘制表型数据直方图
> plotPheno(listeria.a, pheno.col=1)
phe

5. Single-QTL analysis

首先,利用calc.genoprob函数计算基因型的概率,step参数设置步长,单位是cM,步长确定了后期QTL定位的密度。

> jit<-jittermap(listeria.a)
> sug <- calc.genoprob(jit, step=2)

通过scanone函数进行QTL扫描

> out.em <- scanone(sug)

查看每条染色体上的最大LOD值

> summary(out.em)
          chr   pos    lod
c1.loc81    1 81.00 2.1057
c2.loc36    2 36.00 1.0528
D3M147      3 63.19 1.8446
D4M251      4 68.10 1.1744
c5.loc28    5 28.00 6.7131
D6M15       6 59.37 3.3279
D7M105      7 60.11 0.5715
D8M94       8  0.00 0.6940
D9M328      9  4.22 1.0563
D10M42_    10 40.71 0.5819
D11M333    11 64.34 0.2801
c12.loc44  12 44.00 2.1008
D13M147    13 26.16 5.8292
c14.loc11  14 11.00 0.0819
c15.loc23  15 23.00 3.1928
c16.loc37  16 37.00 1.2660
c17.loc16  17 16.00 0.6180
D18M186    18 20.90 0.8158
D19M117    19 16.36 0.4822
DXM186      X  0.00 0.7381

设置阈值,查看大于设定阈值的染色体,这里设置LOD>3
LOD=log10 (L1/L0) ,L1指该位点含QTL的概率,L0指该位点不含QTL的概率。LOD值为3表示该位点含QLT的概率是不含QTL概率的1000倍。

> summary(out.em, threshold=3)
          chr  pos  lod
c5.loc28    5 28.0 6.71
D6M15       6 59.4 3.33
D13M147    13 26.2 5.83
c15.loc23  15 23.0 3.19

绘制结果图

> plot(out.em)

out_LOD

使用Haley-Knott回归方法进行扫描

> out.hk <- scanone(sug, method="hk")

同时绘制默认方法,和Haley-Knott回归方法的LOD值图

> plot(out.em, out.hk, col=c("blue", "red"))


使用Multiple imputation法进行扫描

> sug2 <- sim.geno(sug, step=1, n.draws=64)
> out.imp <- scanone(sug2, method="imp")

三种方法,只绘制Chr7,15的LOD值

> plot(out.em, out.hk, out.imp, col=c("blue", "red", "green"), chr=c(7,15))

6. 组合检验 Permutation tests

> operm <- scanone(sug, method="hk", n.perm=1000)

显著性阈值可以通过summary函数得到

> summary(operm)
LOD thresholds (1000 permutations)
     lod
5%  3.62
10% 3.17
> summary(operm, alpha=c(0.05, 0.2))
LOD thresholds (1000 permutations)
     lod
5%  3.62
20% 2.77

组合检验结果可以与扫描结果一起使用,自动计算显著性阈值和p值

> summary(out.hk, perms=operm, alpha=0.2, pvalues=TRUE)
          chr  pos  lod  pval
c5.loc28    5 28.0 6.68 0.000
D6M15       6 59.4 3.33 0.081
D13M147    13 26.2 5.83 0.001
c15.loc23  15 23.0 3.20 0.095

7. QTL区间估计

通过前面LOD值阈值设定,确定QTL位点位于5、6、13号和15号染色体上,这里只对5号染色体上的QTL区间的进行估计。

获得7号染色体1.5倍LOD区间和95%贝叶斯区间

> lodint(out.hk, chr=5, drop=1.5)
         chr pos      lod
c5.loc16   5  16 5.145233
c5.loc28   5  28 6.682493
c5.loc38   5  38 4.832705
> bayesint(out.hk, chr=5, prob=0.95)
         chr pos      lod
c5.loc19   5  19 5.575862
c5.loc28   5  28 6.682493
c5.loc35   5  35 5.723181

其中第一行为区间开始位置 ,第三行为区间结束位置,中间一行是QTL的预估位置。

获得区间两侧最近的标记

> lodint(out.hk, chr=5, expandtomarkers=TRUE)
         chr      pos      lod
D5M232     5  6.10396 1.947197
c5.loc28   5 28.00000 6.682493
D5M338     5 38.06807 4.805719
> bayesint(out.hk, chr=5, expandtomarkers=TRUE)
         chr      pos      lod
D5M232     5  6.10396 1.947197
c5.loc28   5 28.00000 6.682493
D5M338     5 38.06807 4.805719

8. QTL效应计算

这里以上面检测到的Chr5,position=28.00的位置为例:

基因型分布

> mar <- find.marker(sug, chr=5, pos=28.0)
> plotPXG(sug, marker=mar)


统计不同基因型效应

> effectplot(sug, mname1=mar)

等同于

> effectplot(sug, mname1="5@28.0")

5@28.0即为Chr5,position=28.0。


统计两个位点间的联合效应分析

> effectplot(sug, mname1="5@28.0", mname2="6@59.37")

9. 其他表型的QTL定位

通过pheno.col函数设置分析的表型是第几个:

> out.hr <- scanone(sug, pheno.col=2, method="hk")

一次性对所有表型进行扫描,比如第一列到第四列:

> out.all <- scanone(sug, pheno.col=1:4, method="hk")
> summary(out.all, threshold=3)

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容