TCGA體細胞突變系列教程--胃癌

jimmy

生信技能樹聯盟創始人

有這個想法很久了,我教了很多人如何批量下載TCGA數據,以及分析各個癌症的somatic突變信息以及TMB,還有突變的特徵頻譜。

下載TCGA所有癌症的maf文件計算TMB

下載TCGA所有癌症的maf文件做signature分析

TCGA計劃的4個找somatic mutation的軟件使用體驗

但是限於時間和知識背景,雖然代碼方面問題不大,但是即使把所有的數據全部走一波我的流程我也可能會看不懂,所以希望某些背景相關朋友能根據我教的知識來分析一波。

腫瘤突變分析越來越火了,一起來學習一下吧。今天和大家一起探索TCGA數據中胃癌突變的情況。

今天的探索分爲兩個部分:

1.Mutation

1)數據下載

目前TCGA突變分析的數據vcf格式數據是受限的,所以我們這應用maf文件進行分析。具體下載方式。 直接去TCGA官網下載數據也不難,都很容易,並且工具都在添加一些新的功能,比如最近添加的CNV的分析,舉一反三的看ICGC的應用方式幾乎和TCGA的應用方式是一樣的。

2)工具

主要用的R包,maftools,deconstructSigs以及他們的依賴包,後面的代碼會詳細的解釋。安裝過程有時候會非常痛苦,但是一般都能解決,安裝R包的終結方式應該是“耐心”。如果網絡安裝不太好的話建議大家先下載下來,應用本地安裝,安裝後加載包時可能出現缺少依賴包,這時再耐心的安裝依賴包即可。應用這種方式,目前沒有遇到怎麼也安裝不上的包(當然了版本本身不支持的情況除外)。

3)代碼和結果

source("https://bioconductor.org/biocLite.R")
chooseBioCmirror() #選擇一個就近的鏡像
biocLite("maftools")#安裝
(maftools:http://bioconductor.org/packages/release/bioc/vignettes/maftools/inst/doc/maftools.html)
library(maftools)
Mandatory fields(必須字段): Hugo_Symbol, Chromosome, Start_Position, End_Position, Reference_Allele, Tumor_Seq_Allele2, Variant_Classification, Variant_Type and Tumor_Sample_Barcode(樣本名,此字段溝通樣本的maf文件和臨牀信息的關鍵,前者).

laml = read.maf(maf="STAD.mutectAdjustBarcode.maf.txt",clinicalData="clinical.STAD.tsv")#read.maf()函數有兩個最關鍵的參數maf,clinicalData,這個兩個數據框只需要共同的Tumor_Sample_Barcode,這個一點用起來非常方便,很多帖子並沒有提到此處,詳細信息可參考maftools的官網。注意:TCGA直接下載的maf文件第16列即爲樣品名(例如:TCGA-FP-A4BE-11A-11D-A24F-08),但是直接下載的臨牀數據的樣本名(例:TCGA-FP-A4BE)是不同的,此處需要整理成一致後讀入。

getFields(laml) #查看有哪些字段,TCGA下載的數據120個字段

getClinicalData(laml) #查看臨牀信息
getSampleSummary(laml) #查看每個樣品發生突變的情況,此處就可以計算tumor mutation load,TML=Missense_Mutation/外顯子數。
plotmafSummary(maf = laml, rmOutlier = TRUE, 
               addStat = 'median', dashboard = TRUE,
               titvRaw=FALSE)#繪製整體的突變情況
#waterfall plot
#We will draw oncoplots for top ten mutated genes.
oncoplot(maf = laml, top = 20, fontSize = 12)
#繪製前20個突變基因的瀑布圖。oncoplot()中參數gene=c()可以指定基因名,繪製感興趣的基因的瀑布圖

此圖繪製出了胃癌中突變前20的基因。其中可以看到TP53等著名基因的突變。渴望探索的小夥伴可以去TCGA的官網試試一樣可以繪製出此圖,點選即可。

maftools的最核心的功能可能就介紹完了,但是maftools的功能遠不止這些,其實臨牀信息方面我們還沒有進行探索,同時maftools還可以進行某個基因突變情況的生存分析,這個下次帶大家進行。網上有很多好的帖子介紹,最好的帖子還是官方的介紹。

2. Mutation Signature

首先了解mutation signature的概念,現在很多生信文章中提到Signature 1 ,Signature 3等,看到這個有點困惑,通讀了這篇文章Signatures of mutational processes in human cancer[https://www.nature.com/articles/nature12477]。

文章中提到Different mutational processes often generate different combinations of mutation types, termed ‘signatures’.

(不同的突變過程可以產生不同的突變類型的組合),稱爲“特徵”。

這個概念給我的感覺是在混亂中用數學統計分析查找規律,並應用規律。

那腫瘤的突變特徵如何計算呢?

source('http://bioconductor.org/biocLite.R');
chooseBioCmirror()
install.packages('deconstructSigs')
# dependencies 'BSgenome', 'BSgenome.Hsapiens.UCSC.hg19' 
BiocInstaller::biocLite('BSgenome')
BiocInstaller::biocLite('BSgenome.Hsapiens.UCSC.hg19')
BiocInstaller::biocLite('BSgenome.Hsapiens.UCSC.hg38')
BiocInstaller::biocLite('BSgenome.Hsapiens.NCBI.GRCh38')
#先把這些包裝上,後面幾個包比較大,建議大家先下載然後本地安裝。都可以安裝成功的。(BSgenome.Hsapiens.UCSC.hg38 vs BSgenome.Hsapiens.NCBI.GRCh38  https://www.biostars.org/p/340852/)

####這段代碼簡單可以看出,NCBI的chromosome直接用的數字,而UCSC用的是chrX,這點應該看到。
genome.ncbi <- BSgenome.Hsapiens.NCBI.GRCh38
seqlengths(genome.ncbi)

genome.ucsc<-BSgenome.Hsapiens.UCSC.hg38
seqlengths(genome.ucsc)
####


suppressPackageStartupMessages(library("deconstructSigs"))
suppressPackageStartupMessages(library("BSgenome"))
library("BSgenome.Hsapiens.NCBI.GRCh38")#此處加載這個註釋包的原因爲TCGA的maf文件目前註釋GRCh38
options(stringsAsFactors = F)
str(laml) #查看數據結構,從maf文件中拿到我們需要的數據

mut = laml@data
head(mut)
getField(laml@data)

a=mut[,c(16,5,6,11,13)]
colnames(a)=c( "Sample","chr", "pos","ref",  "alt")
head(a)

a$Sample=as.character(a$Sample)
a=a[nchar(a$ref)==1 & nchar(a$alt)==1,]
#NCBI.GRCh38染色體號無“chr”,所以要替換掉

a2=cbind(a[,-2],chr=gsub("chr","",a$chr))
dim(a2)
head(a2)
tail(a2)
sigs.input <- mut.to.sigs.input(mut.ref = a2, 
                                sample.id = "Sample", 
                                chr = "chr", 
                                pos = "pos", 
                                ref = "ref", 
                                alt = "alt",
                                bsg = BSgenome.Hsapiens.NCBI.GRCh38 #此處一定要注意到版本的問題否則結果可能是錯的。
                                )
class(sigs.input)
head(t(sigs.input))

#下面的語句,批量計算每個樣本的signature。核心的函數就是whichSignatures()
w=lapply(unique(a2$Sample), function(i){
  ## signatures.cosmic signatures.nature2013
  sample_1 = whichSignatures(tumor.ref = sigs.input, 
                             signatures.ref = signatures.cosmic, 
                             sample.id =  i, 
                             contexts.needed = TRUE,
                             tri.counts.method = 'default')
  return(sample_1$weights)
})


w=do.call(rbind,w)
plotSignatures(plot_example, sub = 'example')
library(pheatmap)
#繪製熱圖
pheatmap(t(w),cluster_rows = F,cluster_cols = T)
pheatmap(w,cluster_rows = T,cluster_cols = F)
繪製得到這些突變和突變特徵遠遠不是學習的結束,而是開始,利用這些突變可以挖掘文章探索突變以及突變特徵的意義等等,寫到這裏我感覺把文章都告訴你怎麼寫了,加油吧,小夥伴們。

參考文獻:

1. 下載TCGA所有癌症的maf文件做signature分析

2. 腫瘤突變數據可視化神器-maftools

其他參考內容文章內已經有鏈接。

後記:

寫貼子時反覆回顧代碼感覺,收穫很大。感謝技能樹!如有錯訛望及時批評指正,共同進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章