• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      未分类

      • 首页
      • 博客
      • 未分类
      • maftools | 从头开始绘制发表级oncoplot(瀑布图)

      maftools | 从头开始绘制发表级oncoplot(瀑布图)

      • 发布者 一览
      • 分类 未分类
      • 日期 2020年3月8日
      • 评论 0评论

      参考:https://mp.weixin.qq.com/s?__biz=MzIyNDI1MzgzOQ==&mid=2650394240&idx=1&sn=44b7769942c63fb94c2547a5ad5bb771&chksm=f01cac60c76b25766587c8af2338d06dc39646479d748f5a33ea2bb588251f719b21118a6c17&scene=21#wechat_redirect

      对于组学数据的分析和展示来说,maftools算是一个宝藏“R包”,可用于MAF格式的组学数据的汇总,分析和可视化展示。

         随着癌症基因组学的进步, 突变注释格式 (MAF) 被广泛用于存储检测到的somatic variants。The Cancer Genome Atlas 项目对30多种不同的癌症进行了测序,每种癌症类型的样本量超过200种。maftools-R包能够有效的汇总,分析和可视化MAF格式的文件。

         maftools函数主要分为可视化和分析两个模块,其主要功能及简短的描述如下所示,使用时只需读取MAF文件然后降MAF对象传递给所需要的绘图或分析功能即可。

      本次主要使用R-maftools包绘制组学突变结果(MAF)的oncoplot或者叫“瀑布图”。

      一、 载入R包,数据

      1) 载入maftools包

      if (!require("BiocManager"))
         install.packages("BiocManager")
      BiocManager::install("maftools")

      2) 载入数据

      通过read.maf函数读入MAF文件,将各种数据(组学基因突变,拷贝数变异,临床数据,表达数据等)汇总并将其存储为MAF对象。

      library(maftools)
      #TCGA-LAML MAF file (gz)
      laml.maf = system.file('extdata', 'tcga_laml.maf.gz', package = 'maftools')
      #clinical information (optional)
      laml.clin = system.file('extdata', 'tcga_laml_annot.tsv', package = 'maftools')
      
      laml = read.maf(maf = laml.maf, clinicalData = laml.clin)

      MAF对象中除了上面基因突变数据和对应的临床数据外,还可以加入拷贝数变异,表达数据等其他数据类型,后面需要的时候会添加。

      二、 MAF对象汇总

      1) 展示MAF重点变量的summary信息

      #Shows sample summry.
      getSampleSummary(laml)
      #Shows gene summary.
      getGeneSummary(laml)
      #Shows all fields in MAF
      getFields(laml)
      #shows clinical data associated with samples
      getClinicalData(laml)
      #Writes maf summary to an output file with basename laml.
      write.mafSummary(maf = laml, basename = 'laml')

      上图为临床数据(getClinicalData)的summary结果,其余可自行输入查看结果。

      2) 绘制MAF-summary图

      使用 plotmafSummary 绘制 maf 文件的summary信息,如下:

      #plotmafSummary
      plotmafSummary(maf = laml, rmOutlier = TRUE, addStat = 'median', dashboard = TRUE, titvRaw = FALSE)

      堆叠的 barplot展示maf 文件中每个样本中的变异数量,并添加中位线,以显示队列间的中位数变异数量。箱线图展示variant_Classification的变异类型。

      三、 绘制oncoplot(瀑布)图

      1 绘制基础oncoplots(瀑布图)

      oncoplots或者瀑布图可以很好的展示maf文件中的变异信息,侧面条形图和顶部条形图可分别由drawRowBar和drawColBar参数控制。

      #展示top20的变异genes.
      oncoplot(maf = laml, top = 20)

      注:变异注释为Multi_Hit表示同一样本中突变多次的基因。

      2 更改变异类型的颜色

      #此处使用RColorBrewer的颜色,当然也可以使用任意颜色
      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'
      )
      #查看变异类型对应的颜色
      print(vc_cols)
      #>   Frame_Shift_Del Missense_Mutation Nonsense_Mutation         Multi_Hit
      #>         "#A6CEE3"         "#1F78B4"         "#B2DF8A"         "#33A02C"
      #>   Frame_Shift_Ins     In_Frame_Ins       Splice_Site     In_Frame_Del
      #>         "#FB9A99"         "#E31A1C"         "#FDBF6F"         "#FF7F00"
      
      oncoplot(maf = laml, colors = vc_cols, top = 20)

      3 添加copy number 信息

      可以使用两种方式向maf文件中添加SCNA信息

      • GISTIC result
      • Custom copy number table
      3.1 GISTIC results

      GISTIC会得到很多结果,此处只需要四个文件即可:all_lesions.conf_XX.txt, amp_genes.conf_XX.txt, del_genes.conf_XX.txt, scores.gistic:

      #GISTIC results
      all.lesions =
       system.file("extdata", "all_lesions.conf_99.txt", package = "maftools")
      amp.genes =
       system.file("extdata", "amp_genes.conf_99.txt", package = "maftools")
      del.genes =
       system.file("extdata", "del_genes.conf_99.txt", package = "maftools")
      scores.gis =
       system.file("extdata", "scores.gistic", package = "maftools")
      
      #Read GISTIC results along with MAF
      laml.plus.gistic = read.maf(
       maf = laml.maf,
       gisticAllLesionsFile = all.lesions,
       gisticAmpGenesFile = amp.genes,
       gisticDelGenesFile = del.genes,
       gisticScoresFile = scores.gis,
       isTCGA = TRUE,
       verbose = FALSE,
       clinicalData = laml.clin
      )
      #绘制含有SCNA信息的oncolpot
      oncoplot(maf = laml.plus.gistic, top = 20)
      3.2 Custom copy-number table

      可以自定义一个copy-number结果,例如,让我们在随机的 20 个样本中创建 DNMT3A 的假 SCNA变异。

      set.seed(seed = 1234)
      barcodes = as.character(getSampleSummary(x = laml)[,Tumor_Sample_Barcode])
      #Random 20 samples
      dummy.samples = sample(x = barcodes,
                            size = 20,
                            replace = FALSE)
      
      #Genarate random CN status for above samples
      cn.status = sample(
       x = c('Amp', 'Del'),
       size = length(dummy.samples),
       replace = TRUE
      )
      
      custom.cn.data = data.frame(
       Gene = "DNMT3A",
       Sample_name = dummy.samples,
       CN = cn.status,
       stringsAsFactors = FALSE
      )
      
      head(custom.cn.data)
      #>     Gene Sample_name CN
      #> 1 DNMT3A TCGA-AB-2898 Amp
      #> 2 DNMT3A TCGA-AB-2879 Amp
      #> 3 DNMT3A TCGA-AB-2920 Del
      #> 4 DNMT3A TCGA-AB-2866 Amp
      #> 5 DNMT3A TCGA-AB-2892 Amp
      #> 6 DNMT3A TCGA-AB-2863 Amp
      
      #添加SCNA信息
      laml.plus.cn = read.maf(maf = laml.maf,
                             cnTable = custom.cn.data,
                             verbose = FALSE)
      
      oncoplot(maf = laml.plus.cn, top = 10)

      4 添加 significance values

      输入data.frame格式的数据,包括gene and q值两列即可:

      #MutSig results
      laml.mutsig = system.file("extdata", "LAML_sig_genes.txt.gz", package = "maftools")
      
      oncoplot(
       maf = laml,
       mutsig = laml.mutsig,
       mutsigQval = 0.01,
      )

      5 临床信息 annotations

      1)使用存储在 clinical.data 中的变量进行注释

      #使用FAB_classification注释
      oncoplot(maf = laml, clinicalFeatures = 'FAB_classification')

      2)临床信息注释的变量同样可以自定义颜色:

      #更改FAB classification的颜色设置
      fabcolors = RColorBrewer::brewer.pal(n = 8,name = 'Spectral')
      #颜色和变量的种类要一样多
      names(fabcolors) = c("M0", "M1", "M2", "M3", "M4", "M5", "M6", "M7")
      fabcolors = list(FAB_classification = fabcolors)
      
      oncoplot(
       maf = laml,
       clinicalFeatures = 'FAB_classification',
       sortByAnnotation = TRUE,
       annotationColor = fabcolors
      )

      3)注释多个临床数据

      oncoplot(
         maf = laml,
         clinicalFeatures = c('FAB_classification','SEX','Overall_Survival_Status'),
         annotationColor = fabcolors)

      以上就是如何使用R-maftools包完成瀑布图绘制的简单介绍,然后基本上也就完成了文献的Fig1 ?。

      开篇就说了maftools对于组学数据的分析和展示来说,算是一个宝藏“R包”,因此后续还会介绍其他的汇总,分析和可视化功能。

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      一览

      上一篇文章

      maftools|TCGA肿瘤突变数据的汇总,分析和可视化
      2020年3月8日

      下一篇文章

      ggalluvial|炫酷桑基图(Sankey),你也可以秀
      2020年3月8日

      你可能也喜欢

      2-1675088548
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      30 1月, 2023
      9-1675131201
      如何快速批量修改 Git 提交记录中的用户信息
      26 1月, 2023
      8-1678501786
      肿瘤细胞通过改变CD8+ T细胞中的丙酮酸利用和琥珀酸信号来调控抗肿瘤免疫应答。
      7 12月, 2022

      留言 取消回复

      要发表评论,您必须先登录。

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?