新版TCGA的突變SNP數(shù)據(jù)下載和整理

關(guān)于TCGAbiolinks包的學(xué)習(xí)前面一共介紹了5篇推文躬贡。

今天繼續(xù)學(xué)習(xí)如何使TCGAbiolinks下載和整理MAF格式的突變數(shù)據(jù)。

之前的TCGA的MAF文件是可以下載的露懒,每個癌癥包含4種軟件得到的突變文件:

之前能下載,現(xiàn)在不能了

后來就改版了,不讓你隨便下載了升筏。但其實還是可以下載的涯雅,只不過沒有那么多選擇了鲜结!

現(xiàn)在的情況是每個樣本都是一個單獨的maf文件,需要下載后自己整理活逆,就像整理表達矩陣那樣精刷。

MAF文件的下載

但是現(xiàn)在我們有TCGAbiolinks,根本不需要自己動手蔗候,直接三步走即可得到我們需要的MAF文件怒允。

library(TCGAbiolinks)

query <- GDCquery(
    project = "TCGA-COAD", 
    data.category = "Simple Nucleotide Variation",
    data.type = "Masked Somatic Mutation",
    access = "open"
)
  
GDCdownload(query)
  
GDCprepare(query, save = T,save.filename = "TCGA-COAD_SNP.Rdata")

這樣得到的這個Rdata文件其實是一個數(shù)據(jù)框,不過由于內(nèi)容和之前的MAF文件一模一樣锈遥,所以也是可以直接用maftools讀取使用的纫事。

maftools是一個非常強大的突變數(shù)據(jù)可視化和分析的R包勘畔,這個包在bioconductor上,需要的自行安裝丽惶。

無縫對接maftools

由于我們在第一步已經(jīng)下載過了炫七,所以這里就不用下載了,直接加載保存好的數(shù)據(jù)蚊夫。

我們以TCGA-COAD的數(shù)據(jù)作為演示诉字。

library(maftools)

load(file = "./TCGA-SNP/TCGA-COAD_SNP.Rdata")

maf.coad <- data

簡單看一下這個數(shù)據(jù):

class(maf.coad)
## [1] "data.frame"

dim(maf.coad)
## [1] 252664    141

maf.coad[1:10,1:10]
##    X1 Hugo_Symbol Entrez_Gene_Id Center NCBI_Build Chromosome Start_Position
## 1   1        AGRN         375790    BCM     GRCh38       chr1        1046481
## 2   1       ACAP3         116983    BCM     GRCh38       chr1        1295539
## 3   1      CALML6         163688    BCM     GRCh38       chr1        1916980
## 4   1       PRKCZ           5590    BCM     GRCh38       chr1        2150972
## 5   1      WRAP73          49856    BCM     GRCh38       chr1        3635995
## 6   1        CHD5          26038    BCM     GRCh38       chr1        6142440
## 7   1      CAMTA1          23261    BCM     GRCh38       chr1        7663513
## 8   1      ERRFI1          54206    BCM     GRCh38       chr1        8014193
## 9   1      SLC2A7         155184    BCM     GRCh38       chr1        9022922
## 10  1         PGD           5226    BCM     GRCh38       chr1       10411462
##    End_Position Strand Variant_Classification
## 1       1046481      +        Frame_Shift_Del
## 2       1295539      +      Missense_Mutation
## 3       1916980      +                 Silent
## 4       2150972      +                 Silent
## 5       3635995      +                 Silent
## 6       6142440      +      Missense_Mutation
## 7       7663513      +                 Silent
## 8       8014193      +      Missense_Mutation
## 9       9022922      +      Missense_Mutation
## 10     10411462      +                 Silent

可以看到是一個data.frame類型的文件。

這個文件一共有252664行知纷,141列壤圃,包含了gene symbol,突變類型琅轧,突變位置伍绳,導(dǎo)致的氨基酸變化等信息。

下面就直接用read.maf()函數(shù)讀取即可乍桂,沒有任何花里胡哨的操作冲杀!

maf <- read.maf(maf.coad)
## -Validating
## -Silent variants: 63597 
## -Summarizing
## --Mutiple centers found
## BCM;WUGSC;BCM;WUGSC;BCM;BI--Possible FLAGS among top ten genes:
##   TTN
##   SYNE1
##   MUC16
## -Processing clinical data
## --Missing clinical data
## -Finished in 6.000s elapsed (5.690s cpu)

然后就是進行各種可視化操作,毫無難度:

plotmafSummary(maf = maf, rmOutlier = TRUE, addStat = 'median', dashboard = TRUE)
image.png

是不是非常簡單睹酌,雖然沒有直接提供單個癌癥的MAF文件权谁,但是使用TCGAbiolinks后,會直接幫我們整理好憋沿,沒有任何難度旺芽。

如果你由于各種原因不能使用這個包下載數(shù)據(jù),那你可以直接用網(wǎng)頁下載辐啄,然后按照我之前的推文進行整理:TCGA下載和表達矩陣整理:最適合初學(xué)者的教程 - 簡書 (jianshu.com)

但是這個方法用在表達譜數(shù)據(jù)是沒有問題的采章,理論上用在其他類型的數(shù)據(jù)都是可以的,但是我并沒有嘗試過壶辜,歡迎大家使用后留言悯舟。

如果你在網(wǎng)絡(luò)上看見一個叫xxx.pl的文件,并且需要付費獲取砸民,建議你不要花這個冤枉錢抵怎,不值那個價,希望大家多多擦亮眼睛岭参!

如果你非要用手撕代碼的方式自己整理便贵,也是非常簡單的,比整理轉(zhuǎn)錄組數(shù)據(jù)的表達矩陣簡單100倍冗荸。

自己整理成MAF格式

首先你要去GDC TCGA的官網(wǎng)下載某個癌癥的所有的maf文件,還是以TCGA-COAD為例利耍,下載好之后是這樣的:

image.png

每個樣本第一個文件夾蚌本,每個文件夾下面有一個.gz結(jié)尾的壓縮文件盔粹,這個文件解壓縮之后就是大家熟悉的.maf文件大,但是只是一個樣本的~

image.png

把這個.maf文件用VScode打開后是這樣的:

image.png

不妨多解壓幾個打開看一看程癌,都是一樣的結(jié)構(gòu)舷嗡,所以就很簡單了,把所有的文件讀取進來然后直接rbind()即可嵌莉。

但是在此之前我們可以先讀取一個試試看:

# 路徑必須正確
tmp <- read.table("G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/007c2ae4-bbd2-42c6-ab67-bf016fbddb51/982004b5-52e1-4a69-97d3-25bdcb77b026.wxs.aliquot_ensemble_masked.maf.gz",
                  skip = 7, # 前面7行都不要
                  sep = "\t", # 必須指定
                  header = T # 有行名
                  )

tmp[1:10,1:8]
##    Hugo_Symbol Entrez_Gene_Id Center NCBI_Build Chromosome Start_Position
## 1        NOC2L          26155    BCM     GRCh38       chr1         945088
## 2         SDF4          51150    BCM     GRCh38       chr1        1217753
## 3      B3GALT6         126792    BCM     GRCh38       chr1        1233752
## 4         MIB2         142678    BCM     GRCh38       chr1        1629520
## 5         NADK          65220    BCM     GRCh38       chr1        1765325
## 6         GNB1           2782    BCM     GRCh38       chr1        1804562
## 7        PANK4          55229    BCM     GRCh38       chr1        2510063
## 8       PRXL2B         127281    BCM     GRCh38       chr1        2588386
## 9       PRDM16          63976    BCM     GRCh38       chr1        3412316
## 10      WRAP73          49856    BCM     GRCh38       chr1        3633442
##    End_Position Strand
## 1        945088      +
## 2       1217753      +
## 3       1233752      +
## 4       1629520      +
## 5       1765325      +
## 6       1804562      +
## 7       2510063      +
## 8       2588386      +
## 9       3412316      +
## 10      3633442      +                                                                        

非常順利进萄,和上面那個整理好的格式一模一樣,唯一不同就是這個只是一個樣本的锐峭。

下面我們就批量讀取并合并就好了中鼠!

# 確定文件路徑!
dir.path <- "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation"

# 獲取所有maf文件路徑
all.maf <- list.files(path = dir.path, pattern = ".gz", 
                      full.names = T, recursive = T)

# 看看前3個
all.maf[1:3]
## [1] "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/007c2ae4-bbd2-42c6-ab67-bf016fbddb51/982004b5-52e1-4a69-97d3-25bdcb77b026.wxs.aliquot_ensemble_masked.maf.gz"
## [2] "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/010f9040-294d-4d14-a2b4-80d7a11625dd/5083b949-1bf3-4bc2-bf4f-f668f8a13792.wxs.aliquot_ensemble_masked.maf.gz"
## [3] "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/0148fff1-b8af-4bf0-8bcd-de1ff9f750f3/2c16cfe2-bf6d-4a39-af3a-9dfd5ada3e17.wxs.aliquot_ensemble_masked.maf.gz"

然后直接讀取就行了沿癞,覺得慢可以用data.table::fread()加快速度援雇。

maf.list <- lapply(all.maf, read.table, 
                   skip = 7, 
                   sep = "\t", 
                   header = T)

然后直接合并即可,如果不放心可以看看列數(shù)列名是不是一樣椎扬,100%一樣惫搏,我們就不看了。

# lapply(maf.list, dim)

maf.merge <- do.call(rbind,maf.list)

目前為止看似一切順利蚕涤,本以為即將結(jié)束筐赔,但是沒想到橫生枝節(jié)!

竟然讀取不了揖铜,而且我們得到的這個maf.merge竟然只有137665行茴丰!和252664行的差距實在是太大了!

# 讀取失斅弧较沪!
maf1 <- read.maf(maf.merge)

## -Validating
## --Removed 5 duplicated variants
## --Non MAF specific values in Variant_Classification column:
##   3UTR   DEL T   T   -   novel       TCGA-A6-6781-01A-22D-1924-10    TCGA-A6-6781-10A-01D-1924-10

果然不檢查數(shù)據(jù)是不行的!

然后只能回過頭去看哪里出了問題失仁,通過仔細使用VScode直接打開maf文件和我們讀取的文件對比尸曼,發(fā)現(xiàn)了問題。

Variant_Classification這一列中萄焦,有一些3'UTR / 5'UTR這樣的類型控轿,但是在使用read.table()讀取的時候竟然識別不出來!

小丑竟是我自己拂封!

image.png

所以直接導(dǎo)致遇到這個之后的所有行都是錯位的茬射,而且少了非常多行。

生氣懊扒在抛!

但是找到問題之后解決就非常簡單,換個函數(shù)就行了萧恕,我們直接用data.table::fread()讀雀账蟆肠阱!

maf.list <- lapply(all.maf, data.table::fread, 
                   sep = "\t", 
                   header = T,
                   skip = 7 
                   )

maf.merge <- do.call(rbind,maf.list)

dim(maf.merge)
## [1] 252664    140

現(xiàn)在就和前面的數(shù)據(jù)一模一樣了,252664行朴读,140列(少了一列是表示來自于第幾個樣本屹徘,沒有用)。

# 讀取成功衅金!
maf1 <- read.maf(maf.merge)
## -Validating
## -Silent variants: 63597 
## -Summarizing
## --Mutiple centers found
## BCM;WUGSC;BCM;BI;BCM;WUGSC--Possible FLAGS among top ten genes:
##   TTN
##   SYNE1
##   MUC16
## -Processing clinical data
## --Missing clinical data
## -Finished in 3.970s elapsed (3.730s cpu)
plotmafSummary(maf = maf1, rmOutlier = TRUE, addStat = 'median', dashboard = TRUE)
image.png

簡單噪伊!下次說說這個maftools的使用。

覺得有用請多多轉(zhuǎn)發(fā)~拒絕不必要的花錢氮唯!難道免費的不如付費的香鉴吹??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末您觉,一起剝皮案震驚了整個濱河市拙寡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌琳水,老刑警劉巖肆糕,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異在孝,居然都是意外死亡诚啃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門私沮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來始赎,“玉大人,你說我怎么就攤上這事仔燕≡於猓” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵晰搀,是天一觀的道長五辽。 經(jīng)常有香客問我,道長外恕,這世上最難降的妖魔是什么杆逗? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮鳞疲,結(jié)果婚禮上罪郊,老公的妹妹穿的比我還像新娘。我一直安慰自己尚洽,他們只是感情好悔橄,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般橄维。 火紅的嫁衣襯著肌膚如雪尺铣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天争舞,我揣著相機與錄音,去河邊找鬼澈灼。 笑死竞川,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叁熔。 我是一名探鬼主播委乌,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荣回!你這毒婦竟也來了遭贸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤心软,失蹤者是張志新(化名)和其女友劉穎壕吹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體删铃,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡耳贬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了猎唁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咒劲。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诫隅,靈堂內(nèi)的尸體忽然破棺而出腐魂,到底是詐尸還是另有隱情,我是刑警寧澤逐纬,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布蛔屹,位于F島的核電站,受9級特大地震影響风题,放射性物質(zhì)發(fā)生泄漏判导。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一沛硅、第九天 我趴在偏房一處隱蔽的房頂上張望眼刃。 院中可真熱鬧,春花似錦摇肌、人聲如沸擂红。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昵骤。三九已至树碱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間变秦,已是汗流浹背成榜。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹦玫,地道東北人赎婚。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像樱溉,于是被迫代替她去往敵國和親挣输。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

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