经历过linux下载TCGA数据的洗礼,算是把linux系统重新看了一遍最基础的东西,以后遇到新问题在去解决吧。接着往下走,首先是TCGA数据的处理,简单说就是构建用于后期分析的矩阵。TCGA的clinical文件都是“.xml”结尾的文件,所以这个要用R包处理一下。RNAseq文件都是“.counts”文件,这个文件好像和“.txt”没什么区别,我点进去看了就是两列数据,分别为ensembl编号(gene名)和counts数。正常的话,我们RNAseq matrix,行名为样本编号,列名为基因名(后期还要把ensembl名换为symbol基因名),这里我只做了三分之一,后期还要继续研究,好了,下面上代码。
1.clinical matrix构建
rm(list = ls())
library('XML')
library('methods')
getwd()
setwd("C:\\Users\\Solomonteng\\Desktop\\TCGA test\\clinical merge") #这里我用的都是自己的路径,需要的话请修改
dir="C:\\Users\\Solomonteng\\Desktop\\TCGA test\\clinical merge"
cl = lapply(list.files(path = 'C:\\Users\\Solomonteng\\Desktop\\TCGA test\\clinical merge',pattern = '*.xml*') #这里是个lapply循环语句
,function(x){
result <- xmlParse(file = file.path(dir,x)) #简单说就是把文件丢给‘XML’包去处理了
rootnode <- xmlRoot(result)
xmldataframe <- xmlToDataFrame(rootnode[2]) #构建矩阵,但是用的是rootnood【2】,因为【1】是目录文件,【2】才是有实质内容的
return(t(xmldataframe))
})
cl_df <- t(do.call(cbind,cl)) #这里有个t(),是行名和列名互换
save(cl_df,file = 'GDC_TCGA_STAD_clinical_df.Rdata')
2.RNAseq matrix构建
rm(list = ls())
getwd()
setwd('C:/Users/Solomonteng/Desktop/TCGA test/RNAseq merge/')
dir='C:/Users/Solomonteng/Desktop/TCGA test/RNAseq merge/'
mi = lapply(list.files(path = dir,pattern = '*.counts') #循环语句,批量处理
, function(x){
result <- read.table(file = file.path(dir,x),sep = '\t')[,1:2] #读表格
return(result)
})
mi_df <- t(do.call(cbind,mi)) #将mi文件的列,合并
dim(mi_df)
mi_df[1:4,1:4]
colnames(mi_df)=mi_df[1,] #第一行的行名还是要的
mi_df=mi_df[seq(2,nrow(mi_df),by=2),]
mi_df[1:4,1:4]
save(mi_df,file = 'GDC_TCGA_STAD_RNAseq_df.Rdata')
这样就处理好了,都是用了lapply,所以都是批量处理,但是RNAseq matrix还没有完成,所以明天继续策!加油!