### TCGA临床数据下载与整理教程(代码+注释)!!! ########################################################################################### ### 第一步:网页筛选下载(示例:肺腺癌LUAD) ## 百度"TCGA GDC",进入网址:https://portal.gdc.cancer.gov/ ## 进入官网,点击"Repository",在左侧栏里选择"Cases" ## 在"Primary Site"(原发位置)里点击选择"bronchus and lung" ## 在"Program"(项目)里点击选择"TCGA" ## 在"Project"里点击选择"TCGA-LUAD"这一亚型 ## 没有特殊研究目的的话,其它选项全部默认 ## 在左侧栏里选择"Files" ## 在"Data Category"(数据目录)里点击选择"clinical" ## 在"Data Format"(数据格式)里点击选择"bcr xml" ## 点击"Add All Files to Cart",添加进购物车(添加之前注意清空购物车) ## 点击右上角购物车"Cart" ## 下载Cart文件(打包文件):点击"Download" - "Cart" ## 这边下载的是xml文件,下面处理时需要用R包XML ## 完成(1) ### 也可以在"Download" - "Cart"页面左边的"Clinical"按钮处下载tsv格式的临床信息文件(2) ### 注意: ## tsv文件里的死亡时间和最后随访时间比xml文件里的新,所以做生存分析最好下载tsv文件!!! ## xml文件里有些临床指标在tsv文件里没有,不过tsv文件里临床指标更多!!! ### 这里再介绍使用国内Sangerbox软件下载xml格式临床信息文件的方法: ## 点击"TCGA简易下载工具" - "TCGA-LUAD" - "临床随访信息" - "Clinical BCR XML" - 下载 ## 完成啦 ########################################################################################### ### 第二步(方法1):读取上面已下载好的tsv格式的临床信息文件 ## 注意修改路径! getwd() ### 读取 TSVClinicalDataPath <- "/Users/yuanshi/Desktop/生信笔记/C_TCGA临床数据下载与整理/clinical.cart.2020-07-17/clinical.tsv" FromeTSVClinData <- read.table(TSVClinicalDataPath, sep = "t", header = T, fill = TRUE, quote = "") ### read.table里各项参数的意义,参考:https://oindrilasen.com/2018/01/error-in-scanfile-file-while-suing-read_table/ ### 提取部分我们需要的临床数据: partlyTSVClinData <- FromeTSVClinData[,c("case_submitter_id", "gender", "days_to_death", "days_to_last_follow_up", "vital_status", "ajcc_pathologic_stage", "ajcc_pathologic_t", "ajcc_pathologic_n", "ajcc_pathologic_m")] ### 更换列名 colnames(partlyTSVClinData) <- c("Barcode","Gender","DeathTime", "FollowTime","VitalStatus","Stage", "T_Stage","N_Stage","M_Stage") ### 去重:我们想要的那一行为FALSE,所以要取反 partlyTSVClinData <- partlyTSVClinData[!duplicated(partlyTSVClinData$Barcode),] ### 保存一下 partlyTSVClinDataFN <- "partlyTSVClinData.csv" write.csv(partlyTSVClinData, file = partlyTSVClinDataFN, row.names = F, quote = F) ########################################################################################### ### 第二步(方法2):读取上面已下载好的xml格式的临床信息文件 ### 示例xml文件百度云链接:https://pan.baidu.com/s/1mSoTpbISeEQ4z1vzVcLnaA 密码:ot2k ### 获取已下载的xml文件的地址并读取(整体压缩包需要先解压一下) getwd() XMLClinicalDataPath <- "/Users/yuanshi/Desktop/生信笔记/C_TCGA临床数据下载与整理/XML" partlyXMLClinDataFN <- "partlyXMLClinData.csv" ################# ### 数据处理!!! dir.create("tempClinXMLFiles") filepath <- dir(path = XMLClinicalDataPath,full.names = TRUE) ### 将所有文件移动到同一个文件夹tempClinXMLFiles下 ### 使用以下循环: for(wd in filepath){ files <- dir(path = wd,pattern = "xml$") # 查看满足条件(pattern=xml)的文件 fromfilepath <- paste(wd,"/",files,sep = "") tofilepath <- paste("./tempClinXMLFiles/",files,sep = "") file.copy(fromfilepath,tofilepath) } ################# ### 临床数据整合!!! setwd("./tempClinXMLFiles") xmlFileNames <- dir(path = "./", pattern = "xml$") # list.files()函数也可以 library(XML) library(methods) FromeXMLClinData <- lapply(xmlFileNames, function(x){ # x = xmlFileNames[1] result <- xmlParse(file = x) rootnode <- xmlRoot(result) xmldataframe <- xmlToDataFrame(rootnode[2]) return(t(xmldataframe))}) ### 上面这段代码不错 FromeXMLClinData <- t(do.call(cbind, FromeXMLClinData)) ### 返回上级目录,保存一下 setwd("../") write.csv(FromeXMLClinData, file = "FromeXMLClinData.csv") ### 转换成数据框格式 FromeXMLClinData <- as.data.frame(FromeXMLClinData) ### 提取部分我们需要的临床数据: partlyXMLClinData <- data.frame(Barcode = FromeXMLClinData$bcr_patient_barcode, Vital_status = FromeXMLClinData$vital_status, days_to_death = FromeXMLClinData$days_to_death, lastFollowupTime = FromeXMLClinData$days_to_last_followup, Stage = FromeXMLClinData$stage_event) ### 保存一下 write.csv(partlyXMLClinData, file = partlyXMLClinDataFN, row.names = F, quote = F) ### 完结撒花!!! ### 完结撒花!!! ### 完结撒花!!!
学习学习 。很不错。