TCGA | GEO | 文献阅读 | 数据库 | 理论知识
R语言 | Bioconductor | 服务器与Linux
最近有粉丝留言,TCGA数据库发生更新,下载的数据和之前的不一样。比如转录组,之前是HTSeq流程的数据,现在是STAR-Counts的数据。具体的数据信息参考:
https://docs.gdc.cancer.gov/Data/Release_Notes/Data_Release_Notes/#data-release-320
下载后的数据,打开是这样的。都放在了一个文件中。
这里分享一下怎么提取数据。
数据的下载和之前的教程一样【14-TCGA数据库下载整理】。只不过这里选择的是STAR-Counts了。加入购物车后下载下面的文件。
我先写2个函数,一个是处理读入json文件的函数,该文件包括文件信息和样本barcode的关系。
processingJsonFiles <- function(jsonFile){
library(rjson)
metadata_json_File <- fromJSON(file=jsonFile)
json_File_Info <- data.frame(filesName = c(),TCGA_Barcode = c())
for(i in 1:length(metadata_json_File)){
TCGA_Barcode <- metadata_json_File[[i]][["associated_entities"]][[1]][["entity_submitter_id"]]
file_name <- metadata_json_File[[i]][["file_name"]]
json_File_Info <- rbind(json_File_Info,data.frame(filesName = file_name,TCGA_Barcode = TCGA_Barcode))
}
rownames(json_File_Info) <- json_File_Info[,1]
json_File_Info <-json_File_Info[-1]
return(json_File_Info)
}
jsonFile是下载的json文件的完整路径。
下面的函数是提取数据的函数。
getTCGA_RNAseq_data = function(filepath,jsonFileInfo,data_type){
datamatrix = data.frame()
for(wd in filepath){
#每一个循环读取一个文件
tempPath <- unlist(strsplit(wd,"/"))
filename <- tempPath[length(unlist(strsplit(wd,"/")))]
message(paste0("微信公众号:MedBioInfoCloud提示:正在读入文件:\n",filename))
oneSampExp <- read.table(wd,comment.char = "#",header = T,sep = "\t")
oneSampExp = oneSampExp[-c(1:4),]
# 根据jsonFileInfo文件中文件名称与barcode对应关系,命名列名
if(wd == filepath[1]){
oneSampExp = oneSampExp[,c("gene_id","gene_name","gene_type",data_type)]
colnames(oneSampExp) <- c("gene_id","gene_name","gene_type",jsonFileInfo[filename,"TCGA_Barcode"])
datamatrix = oneSampExp
}else{
oneSampExp = oneSampExp[,c("gene_id",data_type)]
colnames(oneSampExp) <- c("gene_id",jsonFileInfo[filename,"TCGA_Barcode"])
datamatrix = merge(datamatrix,oneSampExp,by = "gene_id")
}
}
return(datamatrix)
}
filepath 是下载的数据路径。通过dir等类似的函数获取的路径向量。比如,我们下载的数据是一个压缩包,解压后,将文件名重新命名为data。
filepath = dir(path = "./data",
pattern = "counts.tsv$",
full.names = T,
recursive = T)
jsonFileInfo是processingJsonFiles函数获取的结果。
data_type是下面中的一种。
"unstranded";
"stranded_first";
"stranded_second";
"tpm_unstranded";
"fpkm_unstranded";
"fpkm_uq_unstranded"
对应文件中的信息
下面就可以获取数据了,想要什么就获取什么。一般就是TPM和FPKM。
jsonFileInfo <- processingJsonFiles(jsonFile = "metadata.cart.2022-04-05.json ")
filepath = dir(path = "./data",
pattern = "counts.tsv$",
full.names = T,
recursive = T)
dat = getTCGA_RNAseq_data(filepath =filepath,
jsonFileInfo = jsonFileInfo,
data_type = "fpkm_unstranded")
head(dat)[,1:5]
原来TCGA数据库的下载,使用TCGAbiolinks包是否还可以处理数据,我还没有试,但下载数据应该是没有问题的。
对于之前版本的数据。我之前文章【数据库数据 | TCGA数据库33种癌症的 transcriptome profiling (RNA-Seq) 数据】有已经处理好的数据,大家可以下载。
最后,有用的给个赞赏!
经 典 栏 目
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
