TCGA临床数据下载与整理

### 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)
### 完结撒花!!!
### 完结撒花!!!
### 完结撒花!!!
生物信息学

生存分析曲线作图代码

2020-8-13 21:34:12

生物信息学

点线图和阶梯图的画法

2020-8-14 23:09:37

加入Q群
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索