最近课题原因需要下载TCGA项目的SNP数据,按照以前的经验直接进TCGA下一个整合的就好,但现在更新之后SNP数据变成和count数据一样是按照样本存放的,因此下载后需要整合在一起。这里记录下载、整合过程。
1.下载
首先进入TCGA官网https://portal.gdc.cancer.gov/,点击Repository
进入筛选页面,首先在Files栏下,Data Category选择simple nucleotide variation,Data Format选择maf,Access选择open,然后点击Cases栏,Program选择TCGA,Project这里我选择的是PAAD
在选择要下载的数据后,点击页面中Add All Files to Cart,然后进入Cart
然后点击Download→Cart,将所有文件以gz压缩包的形式下载到本地
2.处理
数据下载后得到一个gz文件,将其解压,然后利用R语言批量处理并整合数据
# 设置工作地址为解压后的文件地址
setwd()
# 创建一个目录保存所有结果
dir.create('0000_all_maf')
# 下载的文件名为36个字母才是所需的,其他的可以忽略
dir_all <- dir()[nchar(dir()) == 36]
for (dir_maf in dir_all) {
#内部文件也是压缩的,需要解压出来并保存到之前创建的目录中
maf_file <- list.files(dir_maf, pattern = ".*maf")
if (grepl('gz$',maf_file)){
R.utils::gunzip(paste0(dir_maf,"/",maf_file))
}
file_extracted <- list.files(dir_maf, pattern = ".*maf$")
file.copy(paste0(dir_maf,"/",file_extracted),"0000_all_maf")
}
# 将工作地址设置为之前创建的目录
setwd()
file_extracted_maf <- list.files()
first_file <- read.delim(file_extracted_maf[1], header = T, sep = '\t', comment.char = '#',stringsAsFactors = F)
for (extracted_maf in file_extracted_maf[2:length(file_extracted_maf)]) {
file_appended <- read.delim(extracted_maf, header = T, sep = '\t', comment.char = '#',stringsAsFactors = F)
first_file <- rbind(first_file,file_appended)
}
PAAD_maf <- first_file
# 测试是否可以读入到maftools中
# library(maftools)
# PAAD_maf = read.maf(PAAD_maf)
这里的代码只是为了将所有文件存在在一起,其实不用一定要保存到某个位置,而可以直接读取整合,也不用解压,甚至不用创建一个first_file,而直接创建一个PAAD_maf为空dataframe,然后一个一个rbind即可。anyway,代码不重要,实现目的即可。
还有一个参考的方法,利用maftools批量读取再merge到一起,也是很方便(https://cloud.tencent.com/developer/article/1983809)
library(maftools)
library(tidyverse)
mafFilePath = dir(path = "./DLBC_SNV/",pattern = "masked.maf.gz$",full.names = T,recursive=T)
mafdata <- lapply(mafFilePath, function(x){read.maf(x,isTCGA=TRUE)})
snv_data = merge_mafs(mafdata)