Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >细数绘制一张全景图所遇到的坑

细数绘制一张全景图所遇到的坑

作者头像
生信技能树
发布于 2019-05-13 10:53:40
发布于 2019-05-13 10:53:40
1.2K00
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

大家好,我是生信技能树学徒,前面我们带来了大量的表达数据挖掘实战演练,但是TCGA数据库之丰富程度,值得我们花费多年时间继续探索,现在带来的是突变全景图,如果你对之前的教程感兴趣,可以点击学习 菜鸟团(周一数据挖掘专栏)成果展

就是上面这张全景,我重复出来的是下面这个样子

数据准备

绘制全景图需要maf格式的突变信息文件以及临床信息文件。

还是从XENA上进行下载

需要注意,这里储存突变信息的文件需要是maf格式,和我们之前根据是否存在该基因的突变对样本进行分类的文件不同。

处理数据-R-maftools

1. 读取临床信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tumor_type <- "LIHC"
Rdata_file <- paste('./data/', tumor_type, '.phenoData.Rdata', sep = '')
if (!file.exists( Rdata_file )) {
  phenoData <- read.table( destfile,
                           header = T,
                           sep = '\t',
                           quote = '' )
  rownames( phenoData ) <- phenoData[ , 1]
  colnames( phenoData )[1] <- "Tumor_Sample_Barcode"
  phenoData[1:5, 1:5]
  save( phenoData, file = Rdata_file )
}else{
  load( Rdata_file )
}

这里是遇到的第一个坑:我们看一下临床信息的“Tumor_Sample_Barcode”,是16位的短ID,但是后来在使用read.maf读取maf文件时,发现下载的maf文件的“Tumor_Sample_Barcode”是长ID,就存在了两个ID不匹配,从而导致临床信息被直接略过了。我去github上翻看了一下作者的代码,read.maf也可以接受数据框。所以就把maf文件先读取进来,处理一下ID。

2. 读取maf文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
maf <- data.table::as.data.table(read.csv(file = "./raw_data/TCGA.LIHC.mutect.DR-10.0.somatic.maf.gz", 
                                          header = TRUE, sep = '\t', 
                                          stringsAsFactors = FALSE, comment.char = "#"))
maf$Tumor_Sample_Barcode <- substr(maf$Tumor_Sample_Barcode, 1, 16)

require(maftools) 
## 作者用到了HBVHCV的临床信息
phenoData$HBV <- ifelse(phenoData$hist_hepato_carc_fact == 'Hepatitis B', 'HBV', 'others')
phenoData$HCV <- ifelse(phenoData$hist_hepato_carc_fact == 'Hepatitis C', 'HCV', 'others')
phenoData[phenoData$neoplasm_histologic_grade == ""] <- 'no_reported'
## 这个函数不强求直接读取文本文件,也可以读取数据变量
laml <- read.maf(maf, clinicalData = phenoData)
laml 

laml@data <- laml@data[grepl('PASS', laml@data$FILTER), ]

接下来绘图遇到了第二个坑,关于factor的问题,以及颜色的对应关系的列表如何制作,绘图的函数怎么调用颜色信息。

3. 绘图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(RColorBrewer)
png(paste0('oncoplot_top26_phone', tumor_type, '.png'), res = 150,
    width = 1500, height = 1080)

## 文章中这些driver gene是Mutsig挑选出来的,文章里面提供了,就直接使用了这个数据
genes = c("TP53", "CTNNB1", "ALB", "AXIN1", "BAP1", "KEAP1", "NFE2L2", "LZTR1", "RB1", "PIK3CA", "RPS6KA3", "AZIN1", "KRAS", "IL6ST", "RP1L1", "CDKN2A", "EEF1A1", "ARID2", "ARID1A", "GPATCH4", "ACVR2A", "APOB", "CREB3L3", "NRAS", "AHCTF1", "HIST1H1C")

## 为突变类型的分类数据设置颜色
variantClass <- names(table(laml@data$Variant_Classification))
col = c(RColorBrewer::brewer.pal(n = 4, name = 'Set1'),
        RColorBrewer::brewer.pal(n = 5, name = 'Set2'))
names(col) = variantClass
col

## 绘图的时候我们使用的数据是laml,临床信息在clinical.data里面
## 绘图函数要求这些设置颜色的数据是factor,所以我们要把加到图上的
## 临床信息转变为因子
laml@clinical.data$neoplasm_histologic_grade <- 
  as.factor(laml@clinical.data$neoplasm_histologic_grade)
gradecolors = RColorBrewer::brewer.pal(n = 4,name = 'Spectral')
names(gradecolors) = levels(laml@clinical.data$neoplasm_histologic_grade)

laml@clinical.data$race.demographic <- 
  as.factor(laml@clinical.data$race.demographic)
Racecolors = RColorBrewer::brewer.pal(n = 5,name = 'Spectral')
names(Racecolors) = levels(laml@clinical.data$race.demographic)

laml@clinical.data$gender.demographic <- 
  as.factor(laml@clinical.data$gender.demographic)
Gendercolors = c("#b3e2cd", "#fb9a99")
names(Gendercolors) = levels(laml@clinical.data$gender.demographic)

laml@clinical.data$HBV <- 
  as.factor(laml@clinical.data$HBV)
HBVcolors = c("#ffffb3", "#e31a1c")
names(HBVcolors) = levels(laml@clinical.data$HBV)

laml@clinical.data$HCV <- 
  as.factor(laml@clinical.data$HCV)
HCVcolors = c("#1b9e77", "#fc8d62")
names(HCVcolors) = levels(laml@clinical.data$HCV)

## 绘图函数需要一个list
phecolors = list(neoplasm_histologic_grade = gradecolors,
                 race.demographic = Racecolors,
                 gender.demographic = Gendercolors,
                 HBV = HBVcolors,
                 HCV = HCVcolors)
## clinicalFeatures是从laml@clinical.data里面挑取数据,所以
## 一定要是laml@clinical.data里面的列名
oncoplot(maf = laml, 
         colors = col, 
         bgCol = "#ebebeb", borderCol = "#ebebeb",
         genes = genes, GeneOrderSort = F, keepGeneOrder = T,
         fontSize = 7 , legendFontSize = 7,
         annotationFontSize = 7,
         annotationTitleFontSize = 7,
         sortByMutation = T,
         showTumorSampleBarcodes = F,
         annotationColor = phecolors,
         clinicalFeatures = c("neoplasm_histologic_grade",
                              "race.demographic",
                              "gender.demographic",
                              "HBV",
                              "HCV"))
dev.off()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
带临床信息的肿瘤突变maf文件分析维度更多
每个癌症都去找各自的肿瘤突变maf文件很麻烦,所以我们才会选择 PanCanAtlas Publications Scalable Open Science Approach for Mutation Calling of Tumor Exomes Using Multiple Genomic Pipelines ,详见:https://gdc.cancer.gov/about-data/publications/mc3-2017 :它提供如下所示的文件:
生信技能树
2021/10/12
1.3K0
maftools | 从头开始绘制发表级oncoplot(瀑布图)
对于组学数据的分析和展示来说,maftools算是一个宝藏“R包”,可用于MAF格式的组学数据的汇总,分析和可视化展示。
生信宝典
2019/09/16
7.9K0
maftools | 从头开始绘制发表级oncoplot(瀑布图)
maftools需要的文件如何自己整理
今天给大家演示下如何用自己的数据完成maftools的分析,主要是snp文件和临床信息的制作,其实很简单,但是网络上的教程都说的不清楚。
医学和生信笔记
2022/11/15
1.2K0
maftools需要的文件如何自己整理
TCGA数据库:SNP数据的下载整理及其可视化
单核苷酸多态性主要是指在基因组水平上由单个核苷酸的变异所引起的DNA序列多态性。它是人类可遗传的变异中最常见的一种,占所有已知多态性的90%以上。SNP在人类基因组中广泛存在,平均每300个碱基对中就有1个,估计其总数可达300万个甚至更多。SNP是一种二态的标记,由单个碱基的转换或颠换所引起,也可由碱基的插入或缺失所致。SNP既可能在基因序列内,也可能在基因以外的非编码序列上。
DoubleHelix
2020/05/26
8.7K1
数据分析:基因突变瀑布图统计以及可视化
生信学习者
2024/11/19
1020
数据分析:基因突变瀑布图统计以及可视化
ggplot2绘制突变全景图
附件下载地址:https://ehoonline.biomedcentral.com/articles/10.1186/s40164-021-00200-x
医学和生信笔记
2022/11/15
1.3K0
ggplot2绘制突变全景图
生信代码:绘制基因组突变全景图
对于基因组突变全景图相信大家并不陌生,它是基因组学突变数据最基本的可视化展示方法之一。一张漂亮的,高大上的基因突变全景图不仅能展示出丰富的信息,还能为你的文章增色不少,其绘制方法也多种多样。今天我们则来看看最常用的两个包maftools和ComplexHeatmap在绘制基因组突变全景图上的异同。首先让我们来简单的了解下这两个包:
科研菌
2021/02/19
6.5K0
生信代码:绘制基因组突变全景图
TCGA体细胞突变系列教程--胃癌
有这个想法很久了,我教了很多人如何批量下载TCGA数据,以及分析各个癌症的somatic突变信息以及TMB,还有突变的特征频谱。
生信技能树
2018/12/07
9.8K0
TCGA体细胞突变系列教程--胃癌
19-等位基因突变的肿瘤异质性(mutant-allele tumor heterogeneity,MATH)分数计算
生物信息数据分析教程视频——13-3种R包(DESeq2、edgeR和limma)进行RNAseq的差异表达分析与比较
DoubleHelix
2023/02/27
4700
19-等位基因突变的肿瘤异质性(mutant-allele tumor heterogeneity,MATH)分数计算
TCGA的28篇教程-所以癌症的突变全景图
有了MAF格式的突变数据,比如TCGA里面的乳腺癌的1000个左右的样本的突变信息,就很容易走maftool这个包,进行绘图,代码如下:
生信技能树
2018/09/21
5.6K1
TCGA的28篇教程-所以癌症的突变全景图
maftools癌症体细胞变异(突变)分析工具学习
Maftools 是一个专门用于分析和可视化突变数据的 R 包。全名为 "Mutation Annotation Format Tools",它主要处理 MAF(Mutation Annotation Format)文件,这种文件格式广泛用于存储和共享癌症基因组中的突变数据。 Maftools 的主要功能包括:
凑齐六个字吧
2024/09/02
3300
maftools癌症体细胞变异(突变)分析工具学习
中国人肝癌全基因组项目部分图表重现
前面推文介绍过文章 Deep whole-genome analysis of 494 hepatocellular carcinomas,详情见:中国人肝癌全基因组项目。
生信菜鸟团
2024/04/25
2790
中国人肝癌全基因组项目部分图表重现
不是maf格式的somatic突变数据就没办法读入到maftools了么
因为使用的是百度李彦宏的文章数据,大家会比较倾向于处理tcga的肿瘤突变数据,虽然仅仅是输入数据的不一样,后续分析都是靠 maftools 这个包,maftools 全能无需我再吹嘘,必须花十几个小时认真掌握它!
生信技能树
2021/08/25
2K0
不是maf格式的somatic突变数据就没办法读入到maftools了么
相关性热图、圈图、弦图(笔记)
如下所示,可以看到有多个样品,每个样品都有多个基因表达量,这个时候我们比较关心的是这些基因的表达量相关性(在多个样品),基因与基因之间有两两组合相关性:
生信技能树
2023/02/27
2.7K0
相关性热图、圈图、弦图(笔记)
突变位点生存分析
好奇怪,最近大家完成学徒作业的积极性很差,是习题太难了吗?一个简单突变位点做生存分析居然拖了一两个月才有人提交笔记!前面的题目见:学徒作业-两个基因突变联合看生存效应 (2020-04-26出题),下面看其中一个学徒的答案哦,同时也欢迎大家继续提交笔记给我哈,有机会认识我!加油哈,广大粉丝们
生信技能树
2020/06/19
1.8K0
突变位点生存分析
GenVisR 绘制全基因组突变景观图
上期分享了ComplexHeatmap R包中的oncoprint用于绘制全基因组突变景观图(上期精彩点击ComplexHeatmap 绘制全基因组突变景观图),小伙伴们很感兴趣,后台收到很多测试和代码的需求,看来大家都有对美好事物的追求。通过上期分享发现绘制全基因组突变景观图也不是很复杂,理顺了还是比较容易的。今天小编仍带给大家另外一款可以绘制全基因组突变景观图的R包-GenVisR,这款R包可以绘制:
作图丫
2022/03/29
1.3K0
GenVisR 绘制全基因组突变景观图
批量COX回归生存分析图,指定挑选lncRNA基因,森林图,ROC曲线打包给你
(点评:其实也可以是突变与否的信息,或者其它组学信息,生存分析重点是研究分组,需要表达量,也是根据表达量高低进行分组而已)
生信技能树
2019/05/13
6.6K0
1行代码计算肿瘤突变负荷TMB
肿瘤突变负荷(TMB, tumor mutation burden)在生信数据挖掘领域是很古老的东西了,没想到还有人在用它进行各种分析...
医学和生信笔记
2023/02/14
1.9K1
1行代码计算肿瘤突变负荷TMB
单基因生信分析流程(1)一文解决TCGA数据下载整理问题
在平常科研工作中,经常有师兄师姐师弟师妹问我:我现在有一个单基因,我该怎么开展生信研究?出现这个问题的原因是:(1)目前生信研究火热也逐渐受到认可(2)许多医学生在开展实验研究的同时,如果结合生信,则自己的结论和工作量更加吸引到编辑和手审稿人(3)现有的geo、TCGA或者其他免费公开数据库确实是很多研究者的第一选择。
用户1359560
2019/05/14
4.7K0
单基因生信分析流程(1)一文解决TCGA数据下载整理问题
「R」数据可视化14: 瀑布图
Wiki上介绍的瀑布图分为两种,一类是2D形式,另一类是3D形式。我们简单介绍一下2D形式的瀑布图。该类瀑布图用于描述一系列中间正值或负值如何影响初始值。通常,初始值和最终值(端点)由整列表示,而中间值则显示为基于上一列的值开始的浮动列。这些列可以用不同的颜色标记,以区分正值和负值。
王诗翔呀
2020/07/03
2.6K0
「R」数据可视化14: 瀑布图
推荐阅读
相关推荐
带临床信息的肿瘤突变maf文件分析维度更多
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验