如果你做了全基因組、全外顯子組或者targeted sequencing,,拿到了一堆基因變異位點(diǎn)(SNP),,下一步你該分析點(diǎn)什么? 如果還沒(méi)有頭緒,,你可以認(rèn)識(shí)一下這個(gè)神器:maftools,,不僅馬上有了分析思路,還能收獲一堆結(jié)果~
這是一個(gè)R包,,先來(lái)看一下這個(gè)包都能干點(diǎn)什么:
具體用法可以看官網(wǎng)說(shuō)明書: http:///packages/release/bioc/manuals/maftools/man/maftools.pdf 這個(gè)包好在哪里呢,?
首先,MAF是非常常見(jiàn)的描述基因突變的文件形式,,只要拿到這么一個(gè)文件,,就可以做一系列的突變分析。
第二,,最基本的和稍微進(jìn)階一點(diǎn)的突變分析套路,,maftools已經(jīng)給你安排的明明白白的了,這些結(jié)果也夠研究一陣的了,。
那么什么是MAF(Mutation Annotation Format ),,可以看下這個(gè)鏈接https://docs.gdc./Data/File_Formats/MAF_Format/,里面除了說(shuō)了什么MAF外,,還對(duì)MAF格式的每個(gè)列名做了解釋說(shuō)明,,一般來(lái)說(shuō)我們從TCGA下載是突變文件都是MAF格式的。 如果是VCF格式的突變分析結(jié)果,,那么可以用vcf2maf工具從vcf轉(zhuǎn)化為MAF格式,,至于為什么我想說(shuō)要轉(zhuǎn)為MAF格式呢,因?yàn)橛袀€(gè)maftools這個(gè)R包,,其基礎(chǔ)MAF格式可以做很多分析以及可視化工作,,特別方便! 在R中安裝maftools包 if (!require('BiocManager')) install.packages('BiocManager') BiocManager::install('maftools')
有了包,,下一步就是讀入數(shù)據(jù)開(kāi)始分析啦~
先看看你需要給它什么樣的數(shù)據(jù)? 必須給的文件包括(Required input files)MAF文件 - 可以將MAF壓縮成 .gz結(jié)尾的文件作為input,,也可以不壓縮,。 如果你還需要臨床分析,,再給一個(gè)臨床數(shù)據(jù)文件(可選)。 如果有拷貝數(shù)數(shù)據(jù)也可以給,,maftools接受GISTIC的輸出文件(這一類文件也可選),。
讀入MAF文件這里我用一個(gè)示例數(shù)據(jù),這個(gè)示例數(shù)據(jù)只要值安裝了maftools就可以用,,讀入文件用 read.maf這個(gè)函數(shù) #從示例中載入MAF文件的路徑 laml.maf = system.file('extdata', 'tcga_laml.maf.gz', package = 'maftools') #從示例中載入臨床數(shù)據(jù)文件的路徑,,包括生存數(shù)據(jù)、病理數(shù)據(jù),。此文件不是必須文件,。 laml.clin = system.file('extdata', 'tcga_laml_annot.tsv', package = 'maftools') #讀入MAF文件 laml = read.maf(maf = laml.maf, clinicalData = laml.clin)
讀入MAF后,可以總結(jié)一下這個(gè)文件中樣本(samples)的情況:
# Shows sample summary. getSampleSummary(laml) # 結(jié)果為每個(gè)樣本的變異類型總結(jié):
Tumor_Sample_Barcode Frame_Shift_Del Frame_Shift_Ins In_Frame_Del ## 1: TCGA-AB-3009 0 5 0 ## 2: TCGA-AB-2807 1 0 1 ## 3: TCGA-AB-2959 0 0 0 ## 4: TCGA-AB-3002 0 0 0 ## 5: TCGA-AB-2849 0 1 0
總結(jié)一下這個(gè)文件中基因(Gene)的情況: # Shows gene summary. getGeneSummary(laml) # 結(jié)果為每個(gè)基因的變異類型總結(jié):
## Hugo_Symbol Frame_Shift_Del Frame_Shift_Ins In_Frame_Del In_Frame_Ins ## 1: FLT3 0 0 1 33 ## 2: DNMT3A 4 0 0 0 ## 3: NPM1 0 33 0 0 ## 4: IDH2 0 0 0 0 ## 5: IDH1 0 0 0 0
對(duì)MAF還不是很了解的同學(xué),,可以看看這里,,這個(gè)命令展示了MAF文件中所有列的名稱??梢粤私庖幌翸AF都包含哪些內(nèi)容,。
# 展示一下MAF所有列都是什么 # Shows all fields in MAF getFields(laml)
## [1] 'Hugo_Symbol' 'Entrez_Gene_Id' 'Center' ## [4] 'NCBI_Build' 'Chromosome' 'Start_Position' ## [7] 'End_Position' 'Strand' 'Variant_Classification' ## [10] 'Variant_Type' 'Reference_Allele' 'Tumor_Seq_Allele1' ## [13] 'Tumor_Seq_Allele2' 'Tumor_Sample_Barcode' 'Protein_Change' ## [16] 'i_TumorVAF_WU' 'i_transcript_name'
如果有臨床信息,可以看一下臨床信息什么樣子:
# shows clinical data associated with samples getClinicalData(laml)
4.1 MAF概覽
plotmafSummary函數(shù)將每個(gè)樣本中的變體數(shù)顯示為堆積條形圖,,將變體類型顯示為 Variant_Classification 匯總的箱形圖,。我們可以在堆積的條形圖中添加平均線或中線,以顯示整個(gè)群組中變體的平均值/中值數(shù),。
plotmafSummary(maf = laml, rmOutlier = TRUE, addStat = 'median', dashboard = TRUE, titvRaw = FALSE)
4.2 突變?nèi)皥D(Oncoplots)這個(gè)圖是一個(gè)必備圖了,,推薦大家都要掌握。現(xiàn)在基本全部有關(guān)基因突變的文章,,第一張可視化的圖就是這個(gè)了,。 這個(gè)圖的目的是展示所有樣本的變異情況,比如哪些基因突變頻率較高,,那種類型變異比較多,,所有樣本突變呈現(xiàn)什么樣的pattern等。#這里只展示了突變檢出率top10的基因,。參數(shù)可以自己調(diào)整 #oncoplot for top ten mutated genes. oncoplot(maf = laml, top = 10)
如果只想挑幾個(gè)感興趣的基因看突變譜也可以:
oncostrip(maf = laml, genes = c('DNMT3A','NPM1', 'RUNX1'))
4.3 Transition and Transversions.titv函數(shù)將SNP分類為轉(zhuǎn)換和顛換,,并以各種方式返回匯總表的列表。匯總數(shù)據(jù)也可以顯示為一個(gè)箱線圖,,顯示六種不同轉(zhuǎn)換的總體分布,并作為堆積條形圖顯示每個(gè)樣本中的轉(zhuǎn)換比例,。 laml.titv = titv(maf = laml, plot = FALSE, useSyn = TRUE) #plot titv summary plotTiTv(res = laml.titv)
4.4 氨基酸改變的棒棒糖圖??棒棒糖圖顯示了蛋白質(zhì)結(jié)構(gòu)上的突變點(diǎn),。許多癌基因,某些位點(diǎn)比其他位點(diǎn)更容易突變,,變異頻率更高,,這些位置被認(rèn)為是突變熱點(diǎn)(hot-spots),。棒棒糖圖可以用于顯示它們以及其他突變。我們可以使用函數(shù)lollipopPlot繪制這樣的圖,。這個(gè)功能要求我們?cè)趍af文件中有氨基酸改變信息,。然而,MAF文件沒(méi)有關(guān)于命名氨基酸變化字段的明確指南,,不同的研究具有不同的氨基酸變化的字段(或列)名稱,。默認(rèn)情況下,lollipopPlot查找列AAChange,,如果在MAF文件中找不到它,,則會(huì)打印所有可用字段并顯示警告消息。對(duì)于以下示例,,MAF文件包含字段/列名稱“Protein_Change”下的氨基酸變化,。我們將使用參數(shù)AACol手動(dòng)指定它。此函數(shù)還將繪圖作為ggplot對(duì)象返回,,如果需要,,用戶稍后可以修改該對(duì)象。 #lollipop plot for DNMT3A, which is one of the most frequent mutated gene in Leukemia. lollipopPlot(maf = laml, gene = 'DNMT3A', AACol = 'Protein_Change', showMutationRate = TRUE)
4.5 瀑布圖(Rainfall plots)
癌癥基因組,,特別是實(shí)體瘤會(huì)有些位點(diǎn)存在超突變(hyper-mutations),。rainfallPlot 這個(gè)函數(shù)可以將這一現(xiàn)象通過(guò)瀑布圖體現(xiàn)出來(lái)。 brca <- system.file('extdata', 'brca.maf.gz', package = 'maftools') brca = read.maf(maf = brca, verbose = FALSE)
rainfallPlot(maf = brca, detectChangePoints = TRUE, pointSize = 0.6)
4.6 Plotting VAF如果你的MAF文件有VAF信息的話,,可以簡(jiǎn)單畫個(gè)箱線圖看看所有樣本在不同gene上的VAF分布,,vafCol就是指定MAF列中的VAF的列名。 plotVaf(maf = laml, vafCol = 'i_TumorVAF_WU') 前面show了那么多圖,,然而只算得上現(xiàn)成的數(shù)據(jù)做了用圖形的形式展示了出來(lái),,也就是可視化。 下面才開(kāi)始針對(duì)數(shù)據(jù)的分析,,可以說(shuō)功能很強(qiáng)大了5.1 基因之間的伴發(fā)互斥關(guān)系癌癥中的許多引起疾病的基因共同發(fā)生或在其突變模式中顯示出強(qiáng)烈的互斥性,。這個(gè)分析有什么意義呢?比如,,有研究發(fā)現(xiàn)肺癌患者存在EGFR(L858R/R832H)和ALK(E13; A20/A19; E14)共突變,。而共突變較單驅(qū)動(dòng)突變?cè)谟盟庍x擇、療效上就會(huì)有不同,,需注意,。可以使用somaticInteractions函數(shù)檢測(cè)這種相互排斥或共同發(fā)生的基因組,其執(zhí)行成對(duì)的Fisher's Exact檢驗(yàn)以檢測(cè)這種顯著的基因?qū)?。somaticInteractions函數(shù)還使用cometExactTest來(lái)識(shí)別涉及> 2個(gè)基因的潛在改變的基因集,。#exclusive/co-occurance event analysis on top 10 mutated genes. somaticInteractions(maf = laml, top = 25, pvalue = c(0.05, 0.1))
深綠色的為樣本中傾向共同發(fā)生突變的基因;而深黃色為互斥基因,,也就是在一個(gè)樣本中,,“有我沒(méi)他,,有他沒(méi)我”的基因。 ## gene1 gene2 pValue oddsRatio 00 11 01 10 Event ## 1: ASXL1 RUNX1 0.0001541586 55.215541 176 4 12 1 Co_Occurence ## 2: IDH2 RUNX1 0.0002809928 9.590877 164 7 9 13 Co_Occurence ## 3: IDH2 ASXL1 0.0004030636 41.077327 172 4 1 16 Co_Occurence ## 4: FLT3 NPM1 0.0009929836 3.763161 125 17 16 35 Co_Occurence
## 5: SMC3 DNMT3A 0.0010451985 20.177713 144 6 42 1 Co_Occurence
## pair event_ratio ## 1: ASXL1, RUNX1 4/13 ## 2: IDH2, RUNX1 7/22 ## 3: ASXL1, IDH2 4/17 ## 4: FLT3, NPM1 17/51 ## 5: DNMT3A, SMC3 6/43 ## --- ## 296: ASXL1, PLCE1 0/9 ## 297: FAM5C, RAD21 0/10 ## 298: FAM5C, PLCE1 0/9 ## 299: PLCE1, RAD21 0/9 ## 300: EZH2, PLCE1 0/
5.2 生存分析 (Survival analysis)1) Mutation in any given genes用DNMT3A這個(gè)基因來(lái)做個(gè)例子,,比較一下DNMT3A野生型和DNMT3A突變型的樣本,,在生存時(shí)間上是不是有明顯區(qū)別。所以genes = 'DNMT3A'#Survival analysis based on grouping of DNMT3A mutation status mafSurvival(maf = laml, genes = 'DNMT3A', time = 'days_to_last_followup', Status = 'Overall_Survival_Status', isTCGA = TRUE)
2)Predict genesets associated with survival鑒別引起更差生存的基因集
#Using top 20 mutated genes to identify a set of genes (of size 2) to predict poor prognostic groups prog_geneset = survGroup(maf = laml, top = 20, geneSetSize = 2, time = 'days_to_last_followup', Status = 'Overall_Survival_Status', verbose = FALSE)
## Gene_combination P_value hr WT Mutant ## 1: FLT3_DNMT3A 0.00104 2.510 164 18 ## 2: DNMT3A_SMC3 0.04880 2.220 176 6 ## 3: DNMT3A_NPM1 0.07190 1.720 166 16 ## 4: DNMT3A_TET2 0.19600 1.780 176 6 ## 5: FLT3_TET2 0.20700 1.860 177 5 ## 6: NPM1_IDH1 0.21900 0.495 176 6 ## 7: DNMT3A_IDH1 0.29300 1.500 173 9 ## 8: IDH2_RUNX1 0.31800 1.580 176 6 ## 9: FLT3_NPM1 0.53600 1.210 165 17 ## 10: DNMT3A_IDH2 0.68000 0.747 178 4
## 11: DNMT3A_NRAS 0.99200 0.986 178 4
Above results show a combination (N = 2) of genes which are associated with poor survival (P < 0.05). We can draw KM curve for above results with the function mafSurvGroup mafSurvGroup(maf = laml, geneSet = c('DNMT3A', 'FLT3'), time = 'days_to_last_followup', Status = 'Overall_Survival_Status')
5.3 兩個(gè)隊(duì)列的比較不同癌癥的突變譜是不同的,,我們可以通過(guò)比較兩個(gè)隊(duì)列來(lái)鑒別不同的突變基因,。比如,Madan et. al 文章中顯示,,復(fù)發(fā)的急性早幼粒細(xì)胞白血?。╮elapsed APL)有PML和RARA突變的趨勢(shì),而原發(fā)急性早幼粒細(xì)胞白血?。╬rimary APL)則沒(méi)有,。 這種兩個(gè)隊(duì)列間的差異可以用mafCompare函數(shù)來(lái)鑒別,函數(shù)在兩個(gè)隊(duì)列多有基因中用fisher test鑒別差異化突變基因,。 #讀入Primary APL MAF primary.apl = system.file('extdata', 'APL_primary.maf.gz', package = 'maftools') primary.apl = read.maf(maf = primary.apl) #讀入Relapse APL MAF relapse.apl = system.file('extdata', 'APL_relapse.maf.gz', package = 'maftools') relapse.apl = read.maf(maf = relapse.apl) #兩個(gè)MAF比較 #Considering only genes which are mutated in at-least in 5 samples in one of the cohort to avoid bias due to genes mutated in single sample. pt.vs.rt <- mafCompare(m1 = primary.apl, m2 = relapse.apl, m1Name = 'Primary', m2Name = 'Relapse', minMut = 5) print(pt.vs.rt)
## $results ## Hugo_Symbol Primary Relapse pval or ci.up ci.low ## 1: PML 1 11 1.529935e-05 0.03537381 0.2552937 0.000806034 ## 2: RARA 0 7 2.574810e-04 0.00000000 0.3006159 0.000000000 ## 3: RUNX1 1 5 1.310500e-02 0.08740567 0.8076265 0.001813280 ## 4: FLT3 26 4 1.812779e-02 3.56086275 14.7701728 1.149009169 ## 5: ARID1B 5 8 2.758396e-02 0.26480490 0.9698686 0.064804160 ## 6: WT1 20 14 2.229087e-01 0.60619329 1.4223101 0.263440988 ## 7: KRAS 6 1 4.334067e-01 2.88486293 135.5393108 0.337679367 ## 8: NRAS 15 4 4.353567e-01 1.85209500 8.0373994 0.553883512 ## 9: ARID1A 7 4 7.457274e-01 0.80869223 3.9297309 0.195710173 ## adjPval ## 1: 0.0001376942 ## 2: 0.0011586643 ## 3: 0.0393149868 ## 4: 0.0407875250 ## 5: 0.0496511201 ## 6: 0.3343630535 ## 7: 0.4897762916 ## 8: 0.4897762916 ## 9: 0.7457273717 ## ## $SampleSummary ## Cohort SampleSize ## 1: Primary 124 ## 2: Relapse 58
5.3.1 Forest plots上面分析結(jié)果顯示了PML和RARA在復(fù)發(fā)APL中突變比原發(fā)APL更多,。下面,將這個(gè)結(jié)果可視化一下,。一般會(huì)用到森林圖,。forestPlot(mafCompareRes = pt.vs.rt, pVal = 0.1, color = c('royalblue', 'maroon'), geneFontSize = 0.8)
5.3.2 Co-onco plots
另外一種可視化辦法,就是將基因在兩個(gè)不同隊(duì)列中的oncoplot并排畫出來(lái),??梢酝瑫r(shí)比對(duì)同一基因在不同隊(duì)列中的突變頻率、突變類型的不同,。 不得不說(shuō),,這個(gè)包做的挺全面的,實(shí)在是太貼心了,。
#給一組基因 genes = c('PML', 'RARA', 'RUNX1', 'ARID1B', 'FLT3') #畫基因在兩個(gè)隊(duì)列中的oncoplot coOncoplot(m1 = primary.apl, m2 = relapse.apl, m1Name = 'PrimaryAPL', m2Name = 'RelapseAPL', genes = genes, removeNonMutated = TRUE)
5.3.3 Lollipop plot-2還記得第一部分可視化里面介紹的棒棒糖圖嗎,?
這里有了兩個(gè)隊(duì)列,還可以來(lái)一個(gè)兩個(gè)狀態(tài)比較的棒棒糖圖?? lollipopPlot2(m1 = primary.apl, m2 = relapse.apl, gene = 'PML', AACol1 = 'amino_acid_change', AACol2 = 'amino_acid_change', m1_name = 'Primary', m2_name = 'Relapse')
上半部分展示了原發(fā)中PML蛋白變異位點(diǎn),,下半部分展示了復(fù)發(fā)中PML蛋白變異位點(diǎn),。 maftools包很強(qiáng)大,還有很多功能可以開(kāi)發(fā),,有興趣的同學(xué)可以去官網(wǎng)自己研究下,。https:///packages/release/bioc/vignettes/maftools/inst/doc/maftools.html#1_introduction
|