R语言分析5:TMB分型

肿瘤突变负荷(Tumor Mutational Burden, TMB),指肿瘤细胞基因组中,基因的外显子编码区每兆碱基中发生置换和插入或缺失突变的总数。从理论上来说,高TMB(High Tumor Mutational Burden, TMB-H)的肿瘤患者,具有获得更多新生抗原的潜力,并且与肿瘤内异质性有关,能增强肿瘤免疫原性以及与ICI的反应。

要计算样本的TMB值,必须先获取样本的突变数据,TCGA 的突变流程有 4 种,分别是:muse, varscan2, somaticsniper, mutect2。其中 muse 和 somaticsniper 只能计算点突变,无法识别 indel。而目前新版的TCGA不能直接下载4种制作好的maf文件,可通过 "TCGAbiolinks" 整理

1. 使用\color{green}{TCGAbiolinks}包整理突变数据

1.1 MAF文件的下载

# 安装并加载所需的R包
library(TCGAbiolinks)

query <- GDCquery(
    project = "TCGA-STAD", 
    data.category = "Simple Nucleotide Variation",
    data.type = "Masked Somatic Mutation",
    access = "open"
)
  
GDCdownload(query)
  
GDCprepare(query, save = T,save.filename = "TCGA-STAD_SNP.Rdata") # 这里的Rdata文件是一个数据框,可直接用maftools读取使用

1.2 maftools读取处理MAF文件

library(maftools)

load(file = "TCGA-COAD_SNP.Rdata")
maf.stad <- data

## 查看数据
class(maf.stad)
# [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame" 

dim(maf.stad)
# [1] 183107    140

maf.stad[1:5, 1:10]
# # A tibble: 5 × 10
#   Hugo_Symbol Entrez_Gene_Id Center NCBI_Build Chromosome Start_Position End_Position Strand Variant_Classification Variant_Type
#   <chr>                <int> <chr>  <chr>      <chr>               <int>        <int> <chr>  <chr>                  <chr>       
# 1 NEXN                 91624 BI     GRCh38     chr1             77929416     77929416 +      Missense_Mutation      SNP         
# 2 COL24A1             255631 BI     GRCh38     chr1             86125858     86125858 +      Missense_Mutation      SNP         
# 3 LRRC8B               23507 BI     GRCh38     chr1             89593023     89593023 +      Frame_Shift_Del        DEL         
# 4 BPNT1                10380 BI     GRCh38     chr1            220069429    220069429 +      Missense_Mutation      SNP         
# 5 KCNF1                 3754 BI     GRCh38     chr2             10913244     10913244 +      Missense_Mutation      SNP

maf <- read.maf(maf.stad)
# -Validating
# -Silent variants: 45460 
# -Summarizing
# --Possible FLAGS among top ten genes:
#   TTN
#   MUC16
#   SYNE1
#   FLG
# -Processing clinical data
# --Missing clinical data
# -Finished in 8.084s elapsed (23.5s cpu) 

1.3 可视化

# 绘制MAF文件的整体结果图
plotmafSummary(maf = maf, rmOutlier = TRUE, addStat = 'median', dashboard = TRUE)
TMB-1

★ 错义突变和移码插入突变较多;C>T 的点突变类型是最多的;TTN 和 MUC16 两个基因的突变次数最多

# 绘制oncoplot图(只展示前 15 个基因)
vc_cols <- RColorBrewer::brewer.pal(n = 8, name = 'Paired')
names(vc_cols) <- c(
  'Frame_Shift_Del',
  'Missense_Mutation',
  'Nonsense_Mutation',
  'Multi_Hit',
  'Frame_Shift_Ins',
  'In_Frame_Ins',
  'Splice_Site',
  'In_Frame_Del'
)
oncoplot(maf = maf, colors = vc_cols, top = 15)

# 使用 somaticInteractions 函数检测互斥突变或同时突变的基因
somaticInteractions(maf = maf, top = 25, pvalue = c(0.05, 0.1))
TMB-2

★ 上方的条形图展示的是样本的突变负荷(若有样本的突变负荷特别高,在后续分析时可考虑是否将其作为离群点去除),右侧的直方图展示了基因的每种突变类型的情况
★ 突变率靠前的基因中,同时出现突变的基因对偏多

# 绘制Oncostrip(展示特定基因在样本中的突变情况)
oncostrip(maf = maf, genes = c("PTGS2","NNMT","CA9"))
TMB-3
# 绘制Transitions Transversions汇总图
laml.titv = titv(maf = maf, plot = FALSE, useSyn = TRUE)
plotTiTv(res = laml.titv)
TMB-4.png

★ 转换和颠换图 (Transition and transversion plot, Ti/Tv) 显示了STAD中SNV的分布,分为 6 个转换和颠换事件。堆积条形图(底部)显示了MAF文件中每个样本的突变谱分布

2. 计算 TMB

stad.tmb <- tmb(maf, captureSize = 38, logScale = T)
dim(stad.tmb)
# [1] 431   6

head(stad.tmb)
#            Tumor_Sample_Barcode total total_perMB total_perMB_log   group Tumor_Sample_ID
# 1: TCGA-RD-A8N4-01A-21D-A364-08     1  0.02631579      -1.5797836 TMB_low    TCGA-RD-A8N4
# 2: TCGA-HU-A4GJ-01A-11D-A25D-08     2  0.05263158      -1.2787536 TMB_low    TCGA-HU-A4GJ
# 3: TCGA-RD-A8N0-01A-12D-A364-08     2  0.05263158      -1.2787536 TMB_low    TCGA-RD-A8N0
# 4: TCGA-FP-8210-01A-11D-2340-08     3  0.07894737      -1.1026623 TMB_low    TCGA-FP-8210
# 5: TCGA-VQ-A8PQ-01A-11D-A410-08     5  0.13157895      -0.8808136 TMB_low    TCGA-VQ-A8PQ
# 6: TCGA-BR-A44T-01A-32D-A24D-08     7  0.18421053      -0.7346856 TMB_low    TCGA-BR-A44T

# 根据TMB平均值进行分组
library(dplyr)
stad.tmb <- stad.tmb %>% mutate(group = if_else(total_perMB_log > mean(total_perMB_log), "TMB_high","TMB_low"))

3. 结合临床数据进行生存分析

# 只取前12位患者编号
stad.tmb$patient <- substr(stad.tmb$Tumor_Sample_Barcode, 1, 12)

# 加载自身临床数据
clin_info[1:4,1:4]
#   patient         entity_submitter_id status time
# 1 TCGA-BR-A4J4 TCGA-BR-A4J4-01A-12R-A251-31      0   16
# 2 TCGA-BR-A4IZ TCGA-BR-A4IZ-01A-32R-A251-31      1  273
# 3 TCGA-RD-A7C1 TCGA-RD-A7C1-01A-11R-A32D-31      1  507
# 4 TCGA-BR-6852 TCGA-BR-6852-01A-11R-1884-13      0 1367

TMB <- merge(clin, stad.tmb, by = "patient")

fit <- survfit(Surv(time, status) ~ group, data = TMB)

ggsurvplot(fit, data = TMB,
           pval = T,
           risk.table = T,
           surv.median.line = "hv", #添加中位生存曲线
           palette = c("red", "blue"),  #更改线的颜色
           legend.labs = c("High risk","Low risk"), #标签
           legend.title = "TMB Score",
           title = "Overall survival", #标题
           ylab = "Cumulative survival (percentage)", xlab = " Time (Days)", #更改横纵坐标
           censor.shape = 124, censor.size = 2, conf.int = FALSE, #删失点的形状和大小
           break.x.by = 500 #横坐标间隔
)
TMB-5
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容