用R語言對vcf文件進(jìn)行數(shù)據(jù)挖掘.3 從vcf文件里提取有用信息

目錄

  1. 前言
  2. 方法簡介
  3. 從vcf文件里提取有用信息
  4. tidy vcfR
  5. vcf可視化1
  6. vcf可視化2
  7. 測序深度覆蓋度
  8. 窗口縮放
  9. 如何單獨分離染色體
  10. 利用vcf信息判斷物種染色體倍數(shù)
  11. CNV分析

提取矩陣數(shù)據(jù)

一般的VCF文件都很大歼跟,用手動提取里面的信息肯定不大現(xiàn)實断凶。用vcfR就可以輕松實現(xiàn)。
vcfR自帶測試文件vcfR_test。就用這個文件來操作一下吧。

library(vcfR)
data("vcfR_test")
head(vcfR_test)
[1] "***** Object of class 'vcfR' *****"
[1] "***** Meta section *****"
[1] "##fileformat=VCFv4.3"
[1] "##fileDate=20090805"
[1] "##source=myImputationProgramV3.1"
[1] "##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta"
[1] "##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d [Truncated]"
[1] "##phasing=partial"
[1] "First 6 rows."
[1] 
[1] "***** Fixed section *****"
     CHROM POS       ID          REF   ALT      QUAL FILTER
[1,] "20"  "14370"   "rs6054257" "G"   "A"      "29" "PASS"
[2,] "20"  "17330"   NA          "T"   "A"      "3"  "q10" 
[3,] "20"  "1110696" "rs6040355" "A"   "G,T"    "67" "PASS"
[4,] "20"  "1230237" NA          "T"   NA       "47" "PASS"
[5,] "20"  "1234567" "microsat1" "GTC" "G,GTCT" "50" "PASS"
[1] 
[1] "***** Genotype section *****"
     FORMAT        NA00001          NA00002          NA00003       
[1,] "GT:GQ:DP:HQ" "0|0:48:1:51,51" "1|0:48:8:51,51" "1/1:43:5:.,."
[2,] "GT:GQ:DP:HQ" "0|0:49:3:58,50" "0|1:3:5:65,3"   "0/0:41:3"    
[3,] "GT:GQ:DP:HQ" "1|2:21:6:23,27" "2|1:2:0:18,2"   "2/2:35:4"    
[4,] "GT:GQ:DP:HQ" "0|0:54:7:56,60" "0|0:48:4:51,51" "0/0:61:2"    
[5,] "GT:GQ:DP"    "0/1:35:4"       "0/2:17:2"       "1/1:40:3"    
[1] 
[1] "Unique GT formats:"
[1] "GT:GQ:DP:HQ" "GT:GQ:DP"   
[1] 

在分區(qū)Genotype里,通過觀察FORMAT列可以看到一共有四種類型的數(shù)據(jù)GT:GQ:DP:HQ,至于這四種類型的數(shù)據(jù)個各自代表什么意思大家可以查閱知乎百度谷歌。我們可以提取出我們想要的數(shù)據(jù)類型荧止。比方說最重要的GT(genotype)。

gt <- extract.gt(vcfR_test)
gt
           NA00001 NA00002 NA00003
rs6054257  "0|0"   "1|0"   "1/1"  
20_17330   "0|0"   "0|1"   "0/0"  
rs6040355  "1|2"   "2|1"   "2/2"  
20_1230237 "0|0"   "0|0"   "0/0"  
microsat1  "0/1"   "0/2"   "1/1" 

同樣阶剑,我們也可以提取例如DP(測序深度Read Depth)的數(shù)字矩陣跃巡。

gt <- extract.gt(vcfR_test, element = 'DP', as.numeric = TRUE)
gt
           NA00001 NA00002 NA00003
rs6054257        1       8       5
20_17330         3       5       3
rs6040355        6       0       4
20_1230237       7       4       2
microsat1        4       2       3

值的注意的是這里用到了參數(shù)as.numeric = TRUE使得數(shù)據(jù)自動轉(zhuǎn)換成了數(shù)字。但是并不是對所有類型的數(shù)據(jù)都有效牧愁,比方說我們重復(fù)一下提取gt素邪。

> gt <- extract.gt(vcfR_test, element = 'GT', as.numeric = TRUE)
> gt
           NA00001 NA00002 NA00003
rs6054257        0       1       1
20_17330         0       0       0
rs6040355        1       2       2
20_1230237       0       0       0
microsat1        0       0       1

在沒有任何報錯的情況下gt變成了一堆毫無意義的數(shù)字,很明顯不合理猪半,不要用這些經(jīng)過錯誤轉(zhuǎn)換的數(shù)據(jù)進(jìn)行下一步分析兔朦,比方說喜聞樂見的主成分分析。

數(shù)據(jù)拆分

在一些類型的數(shù)據(jù)里可能會出現(xiàn)一個以上的結(jié)果磨确,比方說上面的HQ數(shù)據(jù)沽甥。

> gt <- extract.gt(vcfR_test, element = 'HQ')
> gt
           NA00001 NA00002 NA00003
rs6054257  "51,51" "51,51" ".,."  
20_17330   "58,50" "65,3"  NA     
rs6040355  "23,27" "18,2"  NA     
20_1230237 "56,60" "51,51" NA     
microsat1  NA      NA      NA  

一般情況下我們只需要每一列的第一個數(shù)字

> myHQ1 <- masplit(gt[,1:2], sort = 0)
> myHQ1
           NA00001 NA00002
rs6054257       51      51
20_17330        58      65
rs6040355       23      18
20_1230237      56      51
microsat1       NA      NA

不需要samtools之類的軟件我們也可以實現(xiàn)vcf數(shù)據(jù)讀取自由,關(guān)鍵是可以直接寫入內(nèi)存進(jìn)行下一步的統(tǒng)計分析和數(shù)據(jù)可視化乏奥,個人感覺是很有效的提高了生產(chǎn)力摆舟。值得花時間學(xué)習(xí)一下這個工具。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者恨诱。
  • 序言:七十年代末媳瞪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子照宝,更是在濱河造成了極大的恐慌蛇受,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硫豆,死亡現(xiàn)場離奇詭異龙巨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)熊响,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诗赌,“玉大人汗茄,你說我怎么就攤上這事∶簦” “怎么了洪碳?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長叼屠。 經(jīng)常有香客問我瞳腌,道長,這世上最難降的妖魔是什么镜雨? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任嫂侍,我火速辦了婚禮,結(jié)果婚禮上荚坞,老公的妹妹穿的比我還像新娘挑宠。我一直安慰自己,他們只是感情好颓影,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布各淀。 她就那樣靜靜地躺著,像睡著了一般诡挂。 火紅的嫁衣襯著肌膚如雪碎浇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天璃俗,我揣著相機(jī)與錄音奴璃,去河邊找鬼。 笑死旧找,一個胖子當(dāng)著我的面吹牛溺健,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼鞭缭,長吁一口氣:“原來是場噩夢啊……” “哼剖膳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起岭辣,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤吱晒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沦童,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仑濒,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年偷遗,在試婚紗的時候發(fā)現(xiàn)自己被綠了墩瞳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡氏豌,死狀恐怖喉酌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泵喘,我是刑警寧澤泪电,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站纪铺,受9級特大地震影響相速,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鲜锚,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一突诬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烹棉,春花似錦攒霹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伏社,卻和暖如春抠刺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摘昌。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工速妖, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聪黎。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓罕容,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锦秒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容