? ? ? ? 因为使用的是百度李彦宏的文章数据,大家会比较倾向于处理tcga的肿瘤突变数据,虽然仅仅是输入数据的不一样,后续分析都是靠 maftools 这个包,maftools 全能无需我再吹嘘,必须花十几个小时认真掌握它!
? ? ? ? 假如大家是在 https://xenabrowser.net/datapages/ ,找到 ? GDC TCGA Breast Cancer (BRCA) (20 datasets) ,数据库提供了4种somatic突变的maf文件供下载,somatic mutation (SNPs and small INDELs) ,一般来说我们选择GATK团队出品的MuTect2 软件拿到的somatic突变数据文件;
这个时候呢,你会发现下载的突变数据是tsv格式,并不是maf格式,读入这样的tsv格式的肿瘤突变是信息需要一定技巧哦!
Data?from?different?samples?is?combined?into?mutationVector;?"Hugo_Symbol",?"Chromosome",?"Start_Position",?"End_Position",?"Reference_Allele",?"Tumor_Seq_Allele2",?"Tumor_Sample_Barcode",?"HGVSp_Short"?and?"Consequence"?data?are?renamed?accordingly?and?presented;?"dna_vaf"?data?is?added?and?is?calculated?by?"t_alt_count"/"t_depth".
如下所示的文件;
https://gdc-hub.s3.us-east-1.amazonaws.com/download/TCGA-BRCA.mutect2_snv.tsv.gz
如果我们仅仅是读入 TCGA-BRCA.mutect2_snv.tsv.gz,会发现它没办法导入到maftools包。
我简单的修改了一下读入方式,代码如下:
rm(list = ls())
require(maftools)##同library,加载包
options(stringsAsFactors = F)
library(data.table)
setwd("C:\\Users\\23217\\Desktop\\8")
tmp=fread('TCGA-BRCA.mutect2_snv.tsv.gz')
##fread类似于read.table,但更快捷。能自动检测 sep, colClasses 和nrows 等控件。
head(tmp)
colnames(tmp) =c( "Tumor_Sample_Barcode", "Hugo_Symbol",
"Chromosome", "Start_Position",
"End_Position", "Reference_Allele", "Tumor_Seq_Allele2",
"HGVSp_Short" , 'effect' ,"Consequence",
"vaf" )
##将原矩阵的 列名 更换 为上述。
tmp$Entrez_Gene_Id =1
tmp$Center ='ucsc'
tmp$NCBI_Build ='GRCh38'
tmp$NCBI_Build ='GRCh38'
tmp$Strand ='+'
tmp$Variant_Classification = tmp$effect
##在数据结构中添加上述部分
tail(sort(table(tmp$Variant_Classification )))
##table()为 总结 表格中 各变量出现次数。
##sort为升序或降序排列变量
##tail 返回向量矩阵的最后部分
tmp$Tumor_Seq_Allele1 = tmp$Reference_Allele
tmp$Variant_Type = ifelse(
tmp$Reference_Allele %in% c('A','C','T','G') & tmp$Tumor_Seq_Allele2 %in% c('A','C','T','G'),
'SNP','INDEL'
)
##ifelse(cond,statment1,statment2) 如果cond成立,执行statment1,否则执行statment2,可以对数据做递归循环。
##{
####%in%相当于match()函数的一个缩写。用来判断一个数组或矩阵是否包含在另一个数组或矩阵里。举个例子一目了然:
####首先复制两个变量a和b
#### a <- 1:5
#### b <- 3:7
#### a %in% b #看a的元素是否包含在b中 输出结果如下:
#### [1] FALSE FALSE TRUE TRUE TRUE
##}
table(tmp$Variant_Type )
tcga.brca = read.maf(maf = tmp,
vc_nonSyn=names(tail(sort(table(tmp$Variant_Classification )))))
##read.maf读取以制表符作为分隔的maf文件
oncoplot(maf = tcga.brca, top = 10) # 高频突变的前10个基因
##oncoplot(maf, top) maf为read.maf产生的maf对象,,top为取前多少个基因画图。
画图结果:
?
?
|