TCGA数据库的利用(二)—— 数据处理

上一篇文章介绍的是关于TCGA数据的下载,如果不太清楚怎么下载数据的读者请参考这篇文章:TCGA数据库的利用(一)—— 数据下载!,而本篇文章主要介绍一下数据的处理过程,因为数据下载之后都是单一样本存储而且样本名称都是以非规则性超长字符命名,进行数据分析之前需要把样本名称转化为TCGA样本编号,例如这种形式的:TCGA-A8-A07I-01A-11R-A00Z-07;这里我以乳腺癌的RNA-seq数据作为样例,从数据库中下载了200个乳腺癌样本,每个样本中都含6万多个基因的表达数据。

样本名称转化为TCGA样本编号

数据下载之后如下,每个样本有一个文件夹,里面都会有一个压缩包,解压后会生成一个txt文本,里面含有我们需要的数据;

Snipaste_2019-05-11_23-24-53.png

把每个压缩包的名称变成TCGA样本编号需要借助我们之前从网站下载数据相应的json文件:TCGA数据库的利用(一)—— 数据下载!json文件打开后,会发现每个样本名称跟它的TCGA样本编号被一个大括号所包含,形成一一对应的关系;

Snipaste_2019-05-11_23-25-33.png

这里我就利用了python脚本把样本名与TCGA样本编号建立一个字典,然后进行逐一修改,

Snipaste_2019-05-12_07-28-24.png

修改后的结果如下(注意:修改后的文件还是一个以.gz结尾的压缩包,这里只是修改了前面的名称而已):

Snipaste_2019-05-11_23-27-24.png

数据合并

把下载的所有样本名称转化为TCGA样本编号之后,就需要进行数据整合,把所有样本数据整合到一个文件中;

这里先创建一个空矩阵作为公共矩阵,利用R语言中的gzfile函数读取第一个样本压缩包里面的数据转化为一个二维矩阵,TCGA样本编号设置为数据的列名,基因的ensembl编号设置为数据的行名;

Snipaste_2019-05-12_23-14-08.png

把这个二维矩阵赋给那个公共矩阵,随后的样本数据写一个for循环,读取方式跟第一个相同,不同的是这里创建好的二维矩阵不是赋给公公矩阵,而是以第一列为参照列与前面合成的公共矩阵进行合并,最终可以把最后的矩阵写入一个csv文件夹中;

数据合并结果如下:

Snipaste_2019-05-13_13-52-30.png

基因注释

这一步是把行名为基因的ensembl编号转化为基因官方id,这里利用的是R程序包clusterProfiler和org.Hs.eg.db(这种注释方法会导致注释的基因大大减少):

Snipaste_2019-05-11_23-17-12.png

以上使用的R程序包基本上都需要下载,R语言自身没有,下载方式参照下面的两行代码(把里面的包的名称换成自己需要的名称即可)

Snipaste_2019-05-11_23-21-54.png

最终处理后的数据如下,接下来我们既可以正常地进行分析了,最好在分析之前把处理好的数据备份一下防止数据损坏。

Snipaste_2019-05-13_13-54-58.png

以上涉及的python和R语言代码的完整版,获取方式为:关注微信公众号:小张Python,后台回复关键字  TCGA处理  即可。TCGA系列的下一篇文章将介绍怎么利用程序包limma、edgeR和DESeq2作差异分析,想了解的读者可以提前关注一下。

  • 24
    点赞
  • 203
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大飞1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值