QTLseqr包实战

偶然发现有个R包可以做相关的QTL 分析。拿来试试。

首先 安装,参考官方文档https://github.com/bmansfeld/QTLseqr.

第一步,如果没有安装devtools的话,install.packages("devtools"),有就直接调用,如果这个不会,就不用往下看了。

第二步,devtools::install_github("bmansfeld/QTLseqr")

从github加载QTLseqr。

拿他的论文实例来演练一次。

library("QTLseqr")

看一下输入文件,文档中说不仅可以识别GATK中VariantsToTable 功能下的table格式的文件,也能识别包含每个批量的等位基因读取深度的分隔文件。调用的功能是importFromGATK and mportFromTable。

我们先从GitHub下载一个Yang2013data 。

命令如下:devtools:: install_github("bmansfeld/Yang2013data")

library("Yang2013data") 

导入数据

rawData <-system.file(

"extdata",

"Yang_et_al_2013.table",

package ="Yang2013data",

mustWork =TRUE)


如果自己有数据table格式:

rawdata<-(file_to_path/my_table_rawData <-system.file(

"extdata",

"Yang_et_al_2013.table",

package ="Yang2013data",

mustWork =TRUE)

如果自己有数据

rawdata<-(file_to_path/my_table)

然后我们分别给高低池命名。写染色体编号。

HighBulk <-"SRR834931"

LowBulk <-"SRR834927"

Chroms <-paste0(rep("Chr",12),1: 12

用GATK call snp。table文件用线面这个命令转换。

java -jar GenomeAnalysisTK.jar \

-T VariantsToTable \

-R ${REF} \

-V ${NAME} \

-F CHROM -F POS -F REF -F ALT \

-GF AD -GF DP -GF GQ -GF PL \

-o ${NAME}.table

看看ImportFromGATK 功能

df <-

importFromGATK(

file =rawData,

highBulk =HighBulk,

lowBulk =LowBulk,

chromList =Chroms

)

会计算两个池的等位基因频率,snp-index,还有Δindex。

导入一下分隔文件。可以是csv, tsv或其他格式。格式表头如下。



如果有现成的table文件,也可以importFromTable

df <-importFromTable(file ="Yang2013.csv",

highBulk =HighBulk,lowBulk =LowBulk,

chromList =Chroms)

矩阵如下:## CHROM POS REF ALT AD_REF.LOW AD_ALT.LOW DP.LOW GQ.LOW PL.LOW

## 1 Chr1 31071 A G 34 36 70 99 897,0,855

## 2 Chr1 31478 C T 34 52 86 99 1363,0,844

## 3 Chr1 33667 A G 20 48 68 99 1331,0,438

## 4 Chr1 34057 C T 38 40 78 99 1059,0,996

## 5 Chr1 35239 A C 25 36 61 99 987,0,630

## 6 Chr1 38389 T C 36 42 78 99 1066,0,906

## SNPindex.LOW AD_REF.HIGH AD_ALT.HIGH DP.HIGH GQ.HIGH PL.HIGH

## 1 0.5142857 26 22 48 99 522,0,698

## 2 0.6046512 40 34 74 99 848,0,1099

## 3 0.7058824 24 29 53 99 765,0,599

## 4 0.5128205 29 26 55 99 673,0,772

## 5 0.5901639 40 60 100 99 1632,0,1015

## 6 0.5384615 42 40 82 99 984,0,1105

## SNPindex.HIGH REF_FRQ deltaSNP

## 1 0.4583333 0.5084746 -0.055952381

## 2 0.4594595 0.4625000 -0.145191703

## 3 0.5471698 0.3636364 -0.158712542

## 4 0.4727273 0.5037594 -0.040093240

## 5 0.6000000 0.4037267 0.009836066

## 6 0.4878049 0.4875000 -0.050656660

先来看看测序深度的直方图


再来看看参考基因组的频率分布


再来看一下每个混池的snp-index,对于F2群体,大部分位点再0.5.(非连锁位点)

过滤SNP位点

df_filt <-

filterSNPs(

SNPset =df,

refAlleleFreq =0.20,

minTotalDepth =100,

maxTotalDepth =400,

depthDifference =100,

minSampleDepth =40,

minGQ =99,

verbose =TRUE

)

QTLseq analysis

开始分析

df_filt <-runQTLseqAnalysis(df_filt,

windowSize =1e6,

popStruc ="F2",

bulkSize =c(385,430),

replications =10000,

intervals =c(95,99)

)

这里好像只适用于F2与RIL,这个世界总是对BIL充满了恶意。没关系,BIL亲测也适用,

G分析。

df_filt <-runGprimeAnalysis(df_filt,

windowSize =1e6,

outlierFilter ="deltaSNP",

filterThreshold =0.1)


现在开始QTL分析

现在我们对过滤后的数据感到满意,看起来G ’接近于对数正态分布,我们

可以绘制一些全基因组数据并最终尝试识别QTL。

p1 <-plotQTLStats(SNPset =df_filt,var ="nSNPs")

从p1图中,我们可以得到全基因组snp密度。

p2 <-plotQTLStats(SNPset =df_filt,var ="deltaSNP",plotIntervals =TRUE)


超过置信区间的有4个。其中红色p<0.05,绿色P<0.01.

我们再来看一下G'是否是显著的,并且FDR (q)<0.01

p3 <-plotQTLStats(SNPset =df_filt,var ="Gprime",plotThreshold =TRUE,q =0.01)



QTLplots <-plotQTLStats(

SNPset =df_filt,var ="negLog10Pval",

plotThreshold =TRUE,

q =0.01,

subset =c("Chr1","Chr8")

)

提取显著性区间的信息

QTL <-getSigRegions(SNPset =df_filt,alpha =0.01)

提取出csv格式的数据


results <-getQTLTable(SNPset =df_filt,method ="Gprime",alpha =0.01,export =FALSE)

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

推荐阅读更多精彩内容