美文网首页R语言做生信
TCGA临床数据matrix构建(处理.xml文件)和RNAse

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

作者: SolomonTeng | 来源:发表于2018-11-17 22:32 被阅读52次

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/bwzifqtx.html