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

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

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

标题: Comprehensive and Integrative Genomic Characterization of Hepatocellular Carcinoma

链接: https://www.cell.com/cell/fulltext/S0092-8674(17)30639-6

数据准备

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

还是从XENA上进行下载

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

处理数据-R-maftools

1. 读取临床信息

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文件

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) 
## 作者用到了HBV和HCV的临床信息
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. 绘图

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()

(0)

相关推荐

  • 强生巧心布局,谋求功能性治愈乙肝

    来源:Informa旗下Scrip网站 作者:Joseph Haas 在11月11日-15日波士顿召开的美国肝病研究学会年会(AASLD2016)上,强生全方位展示了自己的在研乙肝产品,包括衣壳蛋白抑 ...

  • 干扰素的临床应用,只知道抗病毒?

    干扰素(interferon, IFN)是一组天然存在的细胞因子,最初是以其干扰处理细胞病毒复制的能力而得名.干扰素具有重要的免疫调节.抗病毒.抗血管生成.抗增殖和抗肿瘤活性. 干扰素的分类和作用机制 ...

  • maftools : 总结、分析、可视化

    转自:程凉皮儿:https://www.jianshu.com/p/7b02459defedmaftools_2clp02 June, 2020maftools : 总结.分析.可视化 MAF文件ma ...

  • 不能忍,手撕某宝配置单,细数某宝电脑配置单上的那些坑!

    下面这张图是某位咨询者发来的,具体来源不明,但看这样式,很像某宝的配置宣传图,我要告诉各位的是,看到这种配置单,立马走人,管它什么商家,满满的都是坑,我们来挨个细数一下! 1.CPU:注意这里用了一个 ...

  • 10张珍贵老照片,细数1958年人民生活点点滴滴......

    毛主席和亚洲.非洲.拉丁美洲的青年合影,很珍贵了 1958年,欢迎抗美援朝志愿军回国! 1958年,炼钢现场忙碌的场景 妇女能顶半边天,图为妇女和钢铁 妈妈在一旁织毛衣,儿子在一旁写作业,这样的场景太 ...

  • 细数张哲瀚先生戴过的耳饰

    愿以此为窗,与您共赏天下珠宝. 见文好,我们是<珠宝玉之窗>! 之前分享张哲瀚先生佩戴的一些项链和戒指的时候,有好些朋友提到他那些年曾经戴过的那些耳钉,也看到不少朋友发表了一些对于男生戴耳 ...

  • 〖 聚焦•旭成科技〗一张图细数2016锂电圈的这八宗“最”!

    摘  要 锂电大数据特别列举了今年中国锂电市场八件"最"事件,力求将事实还原给读者,勾勒出今年中国锂电市场的成长线路. 2016年已经过去了,从年初骗补事件爆发开始,在三元电池被禁 ...

  • “粤东最牛民校”校长张复昌离任!细数其办学传奇

    扫码加入名师说粉丝交流群 欢迎加入名师说粉丝交流群,互相交流和掌握更多深圳教育相关资讯.需要加群的粉丝请添加小助理微信"ignite2017"或者扫描以上二维码,备注"入 ...

  • 香港天王大赞TVB剧集小花新婚老公,细数四大天王的挚友,两男神睡一张床

    就像早前艺人麦秋成与汤怡大婚,本身就已经引起了不少网友的关注,事关大家对麦秋成的对象都还停留在蔡思贝身上,关于他和汤怡的感情,可以说是收藏的十分神秘了. 而在两人的婚礼上还出现了一位神秘男子,那就是郭 ...

  • 【推荐诗人】张艳朝|细数平常(组诗七首)

    诗人简介 张连畅,原名张艳朝,70后暖男.湖北省蕲春县向桥乡黄土村人,现居上海.中国诗歌网注册认证诗人,中国爱情诗人,<望月文学>编委.特约作家.业余喜好即兴诗文,为工作舒压,为生活寻乐. ...

  • 细数作家张贤亮的多面体人生

    <灵与肉><绿化树><男人的一半是女人>这些都是当代文坛家喻户晓的名作,但是这些作品的作者张贤亮却于2014年9月27日14时在银川去世,享年78岁.消息传来,各界 ...

  • 细数男子网坛的几张扑克脸

    最近看到一张坊间流传的对比图很有意思."其他球员"打球时候面目狰狞,毫无美感:费德勒击球瞬间总是能保持那份优雅,面部表情淡定从容. 当然,对于不喜欢费德勒的人来说,总是顶着一张&q ...