上一篇文章介绍的是关于TCGA数据的下载,如果不太清楚怎么下载数据的读者请参考这篇文章:TCGA数据库的利用(一)—— 数据下载!,而本篇文章主要介绍一下数据的处理过程,因为数据下载之后都是单一样本存储而且样本名称都是以非规则性超长字符命名,进行数据分析之前需要把样本名称转化为TCGA样本编号,例如这种形式的:TCGA-A8-A07I-01A-11R-A00Z-07;这里我以乳腺癌的RNA-seq数据作为样例,从数据库中下载了200个乳腺癌样本,每个样本中都含6万多个基因的表达数据。
样本名称转化为TCGA样本编号
数据下载之后如下,每个样本有一个文件夹,里面都会有一个压缩包,解压后会生成一个txt文本,里面含有我们需要的数据;
把每个压缩包的名称变成TCGA样本编号需要借助我们之前从网站下载数据相应的json文件:TCGA数据库的利用(一)—— 数据下载!json文件打开后,会发现每个样本名称跟它的TCGA样本编号被一个大括号所包含,形成一一对应的关系;
这里我就利用了python脚本把样本名与TCGA样本编号建立一个字典,然后进行逐一修改,
修改后的结果如下(注意:修改后的文件还是一个以.gz结尾的压缩包,这里只是修改了前面的名称而已):
数据合并
把下载的所有样本名称转化为TCGA样本编号之后,就需要进行数据整合,把所有样本数据整合到一个文件中;
这里先创建一个空矩阵作为公共矩阵,利用R语言中的gzfile函数读取第一个样本压缩包里面的数据转化为一个二维矩阵,TCGA样本编号设置为数据的列名,基因的ensembl编号设置为数据的行名;
把这个二维矩阵赋给那个公共矩阵,随后的样本数据写一个for循环,读取方式跟第一个相同,不同的是这里创建好的二维矩阵不是赋给公公矩阵,而是以第一列为参照列与前面合成的公共矩阵进行合并,最终可以把最后的矩阵写入一个csv文件夹中;
数据合并结果如下:
基因注释
这一步是把行名为基因的ensembl编号转化为基因官方id,这里利用的是R程序包clusterProfiler和org.Hs.eg.db(这种注释方法会导致注释的基因大大减少):
以上使用的R程序包基本上都需要下载,R语言自身没有,下载方式参照下面的两行代码(把里面的包的名称换成自己需要的名称即可)
最终处理后的数据如下,接下来我们既可以正常地进行分析了,最好在分析之前把处理好的数据备份一下防止数据损坏。
以上涉及的python和R语言代码的完整版,获取方式为:关注微信公众号:小张Python,后台回复关键字 TCGA处理 即可。TCGA系列的下一篇文章将介绍怎么利用程序包limma、edgeR和DESeq2作差异分析,想了解的读者可以提前关注一下。