文章目录
前言
本文主要用于介绍TCGA初始数据的处理,数据融合,基因ID转换,数据融合以及数据的可视化!
一、数据处理
options(stringsAsFactors = F) # 将下面的文件不转化为因子
setwd('G:\\R\\TCGA')
dir.create("SampleFiles")
filepath <- dir(path = "./gdc_DL_20220311_105839.325315",full.names = TRUE)
for (wd in filepath) {
files <- dir(path = wd,pattern = "gz$") # 查看满足条件
fromfilepath <- paste(wd,"\\",files,sep="") # 拼接函数
tofilepath <- paste(".\\SampleFiles\\",files,sep="")
file.copy(fromfilepath,tofilepath)
}#将文件复制到SampleFiles中
# 解压所有文件并删除原文件
setwd("./SampleFiles")
countfields <- dir(path = ".\\",pattern = "gz$")#查看满足条件的文件
library(R.utils)#解压函数
sapply(countfields, gunzip)#将zip文件全部解压
#处理json文件
library(rjson)
metadata_json_File <- fromJSON(file = "../metadata.cart.2022-03-11.json")#“..”表示返回上一级目录
json_File_Info3 <- data.frame(filename=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_Info3 <- rbind(json_File_Info3,data.frame(filesName=file_name,TCGA_Barcode=TCGA_Barcode))
}#得到文件名与条形码对应的表格
rownames(json_File_Info3) <- json_File_Info3[,1]#将文件名变为行名
write.csv(json_File_Info3,file="../json_File_Info.csv")#写入数据,本地文件,用Excel就可以打开
二、数据融合
代码如下(示例):
filesName_To_TCGA_BarcodeFile <- json_File_Info3[-1]#删除掉filesName列
countsFileNames <- dir(pattern = "counts$")#读入所文件,获取counts矩阵
allSampleRawcounts <- data.frame()#定义一个储存数据的数据框
for (txtFile in countsFileNames) {
# 每一个循环读取一个文件
SampleCounts <- read.table(txtFile,header = FALSE)
rownames(SampleCounts) <- SampleCounts[,1]
SampleCounts <- SampleCounts[-1]
#根据filesName_To_TCGA_BarcodeFile文件中文件的名称与barcode对应关系,命名列名
colnames(SampleCounts) <- filesName_To_TCGA_BarcodeFile[paste(txtFile,".gz",sep=""),]
if(dim(allSampleRawcounts)[1]==0){
allSampleRawcounts <- SampleCounts
}
else{
allSampleRawcounts <- cbind(allSampleRawcounts,SampleCounts)
}
}
write.csv(allSampleRawcounts,file = "../allSampleRawcounts.csv")#备份文件
ensembl_id <- substr(rownames(allSampleRawcounts),1,15)#去掉版本号
rownames(allSampleRawcounts) <- ensembl_id
#RawCounts.cs文件与allSampleRawcounts文件的区别在与行名的ensenbl去掉了版本号
write.csv(allSampleRawcounts,file = "../R