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

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


大家好,我是生信技能树学徒,前面我们带来了大量的表达数据挖掘实战演练,但是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()

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容