R语言做生信

TCGA临床数据matrix构建(处理.xml文件)和RNAse

2018-11-17  本文已影响52人  SolomonTeng

经历过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还没有完成,所以明天继续策!加油!

上一篇下一篇

猜你喜欢

热点阅读