R/qtl2:QTL 定位分析

目录:

1. Data Input

2. Calculating Genotype Probabilities

3. Performing a genome scan

4. Performing a permutation test

5. 






ok,进入正文。

1. Data Input

和 R/qtl 要求的数据格式不同,R/qtl2 要求每一个数据为一个单独的文件,但可以最后总结到一个 YAML 或 JSON 格式的文本里,一次性读入,还是挺方便的。

首先看一下这个 YAML 或 JSON 格式的文本文件,指定了群体类型,每一个文件的名字,以及基因型信息等。

其中,geno、pheno、gmap 三个文件是必须的,其它文件是可选的。

读入使用 read_cross2 函数。

read_cross2(file, quiet=TRUE)

# file 指定 YAML 文件的路径位置即可,quiet 指定是否输出读入过程。

以下分别是这 3 个文件的格式示例:

geno
pheno
gmap
yaml


2. Calculating Genotype Probabilities

类似 qtl 包中的分析方法,QTL 分析首先需要计算已有标记之间的基因型概率。

使用的函数为 calc_genoprob() 。不过在使用之前,需要先在 markers 之间插入 pseudomarkers,以确定要计算基因型可能性的位置。在遗传图谱中插入 pseudomarkers 的函数为 insert_pseudomarkers()

举例示范一下:

library(qtl2)

## 读入包里自带的示例文件

iron <- read_cross2(file = system.file("extdata", "iron.zip", package="qtl2") )

## 在遗传图谱内插入 pseudomarkers

map <- insert_pseudomarkers(map=iron$gmap, step=1)

# step 指的是 pseudomarkers 和标记之间的举例为 1 cM

## 计算 pseudomarkers 的基因型概率

pr <- calc_genoprob(cross=iron, map=map, error_prob=0.002, cores=4)

# error_prob 指定假设的基因分型错误概率,默认为0.0001;cores 是在集群上指定运算使用的内核数,parallel::detectCores() 查看可用的内核数

这个过程就到此为止了,接下来通过几张图看一下每一步的效果。

summary(iron)

head(iron$gmap)

map <- insert_pseudomarkers(map=iron$gmap, step=1)

head(map, n=1)            # 查看1号染色体上的标记

pr <- calc_genoprob(cross=iron, map=map, error_prob=0.002)

(pr$`19`)[1:3,,"c19.loc4"]       # 查看19号染色体上该标记处前3个个体的基因型概率

此外,如果需要使用加性模型进行基因组扫描,需要将基因型概率转换为等位基因概率。

apr <- genoprob_to_alleleprob(probs=pr)


3. Performing a genome scan

原理就不在这块详细说了,有兴趣的可以去看 R/qtl 定位分析(三)Single-QTL analysis 。

以 Haley-Knott regression 方法为例:

Xcovar <- get_x_covar(iron) 

out <- scan1(genoprobs = pr, pheno = iron$pheno, Xcovar=Xcovar, cores=4)

输出是 LOD 得分矩阵,位置×表型。

head(out, n=10)

plot_scan1(out, map = map, lodcolumn = "liver")

4. Performing a permutation test

虽然可以看到部分染色体上存在峰,但是否显著?对结果如何评估?

类似于 qtl 包中的操作,需要进行排列检验,打乱基因型和表型,去除二者之间的关联,然后进行计算全基因组的最大 LOD 评分作为阈值,从而确定结果是否是随机出现的。需要用到的函数为 scan1perm()

operm <- scan1perm(genoprobs = pr, pheno = iron$pheno, Xcovar = Xcovar, n_perm = 1000)

# n_perm 指定排列检验的重复次数

hist(operm[,'liver'], breaks = 50, xlab = "LOD", main = "LOD scores for liver scan with threshold in red")abline(v = summary(operm)[,'liver'], col = 'red', lwd = 2)


summary(operm, alpha=c(0.1, 0.05))

如果要对 X 染色体单独计算阈值,可使用下面的命令:

operm2 <- scan1perm(pr, iron$pheno, Xcovar=Xcovar, n_perm=1000, perm_Xsp=TRUE, chr_lengths=chr_lengths(map))

summary(operm2, alpha=c(0.2, 0.05))

5. Finding LOD peaks

这一步就要根据排列检验得到的阈值,以及计算结果,确定目标的 QTL 区间了。首先要确定 LOD peaks 的位置,再计算其可靠的区间范围。

operm <- scan1perm(pr, iron$pheno, Xcovar=Xcovar, n_perm=1000)

thr <- summary(operm)

find_peaks(scan1_output = out, map = map, threshold = thr, prob = 0.95, expand2markers = FALSE)

# prob 确定贝叶斯置信区间,0.95 指的是有 95% 的可能性落在该区间

# expand2markers 指的是是否扩展至相邻标记

该函数也可以确定一条染色体上的多个峰,不过需要 peakdrop 指定两个相邻峰值之间的最低值必须下降的量。

find_peaks(scan1_output = out, map = map, threshold = thr, peakdrop = 1.8, prob = 0.95, expand2markers = FALSE)






















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

推荐阅读更多精彩内容