2. TCGA: 如果不了解数据,何以读取数据?

在上篇文章中1. 在TCGA中找到并下载意向数据我们提到为数据下载做准备工作时,我们一共下载了四个文件如下:

prepare

心想假如没有人告诉你要下载这么多,而你也是一片空白,你该如何去开展下面的工作?在这里,按照我们湿实验工作者的尿性来看,实验中遇到不懂的,都要搞懂,就好像你在做WB的时候什么时候要用β-BH(β巯基乙醇)的loading buffer,什么时候又不用需要搞得清楚明白。那么在这里同样的,每个文件的作用,也需要搞明白。

1. gdc-client

这其实非常好理解,gdc-client就是一个TCGA提供的用于下载数据的客户端,只要下载下来即可。但我们TDC data transfer tool中会gdc-client根据不同系统有不用版本,不同时间也有不同版本。我该如何选?按照昨晚的经验,我们的建议是:下载最新的。

使用旧版本下载失败

image.png

更新版本后重新运行代码,下载成功。除了gdc-client版本问题需要注意之外,最好每次下载使用的各种帮助文件都是最新下载的。
image.png

2. clinic.cart.2020-10-08.json and metadata.cart.2020-10-08.json

这文件是我们在购物车中结算数据时,特地选择的json文件。此时你可能同我一样,为什么非要选JSON格式,难道TSV不行吗?当然可以!JSON也不过是一种数据格式而已。


image.png
2.1 TSV则是类似txt+cst的组合体,可以看到TSV格式的clinical.cart数据下有3个被压缩的tsv文件。如此看来,似乎是只有一个文件的JSON格式的读取步骤更简单了。
image.png
2.2 JSON

(1)JSON无法在windows上打开,此时还是搜索打发,我的做法是在谷歌上搜索“read json data in r”,之后在搜索结果中找到看起来比较靠谱的结果。
(2)此时我们看到一个很明显的结果是rjson package。按照教程使用代码install.packages("rjson"), library("rjson")安装并激活rjson之后,我们首先要做的是看说明书,明白这个R包该如何使用。
(3)一般来说我们会在R语言中用代码?rjson调出帮助文档,而这边显示调出的并未包含有usage,因此直接在谷歌上再次搜索“rjson usage”后找到使用文档。

rjson instruction

(4)从说明书中我们可以看到rjson这个包一共有3个命令fromJSON, newJSONParser, toJSON,其功能分别为将json转为R object,批量转json为R object,将R object转为json。由于我们此次下载的数据仅为单一的json文件,因此选择命令fromJSON,其用法如下:

fromJSON( json_str, file, method = "C", unexpected.escape = "error", simplify = TRUE )

参数含义:
(1)json_str: a JSON object to convert需要转化的JSON对象
(2)file:the name of a file to read the json_str from; this can also be a URL. Only one of
json_str or file must be supplied.
(3)method:use the C implementation, or the older slower (and one day to be depricated) R implementation
(4)unexpected.escape:changed handling of unexpected escaped characters. Handling value should be one of "error", "skip", or "keep"; on unexpected characters issue an error, skip
the character, or keep the character
(5)simplify:If TRUE, attempt to convert json-encoded lists into vectors where appropriate.
If FALSE, all json-encoded lists will be wrapped in a list even if they are all of the same data type.

读取数据

metadata<- fromJSON( file = "metadata.cart.2020-10-08.json", 
                     method = "C", 
                     unexpected.escape = "error", 
                     simplify = TRUE ) # 可以看到读入的数据为list
image.png

通过各种方法检查数据,同时也要思考我们到底需要什么样的数据。一般来说,我们会想要一个表达矩阵/数据框,列为样本,行为基因名;同时还会需要每个样本的生存数据,以用于做生存曲线分析。

image.png

当然,读取JSON格式文件的R包有很多个,此时如果有时间可以查一下到底哪个包更好用哦~

3. gdc_manifest_20201007_170018.txt

打开后可见是每个样本的相关信息,gdc-client也是通过读取manifest文件内的样本ID来下来数据的。


结语:无论如何,我们最终需要整理出来的数据类型是数据框,需要包含有样本ID以及基因表达信息,临床生存信息等等,以供后续分析所需。由于这部分我还在学习,因此没法放在这篇文章内了。但这篇文章的整体思路则是,通过了解自己的准备文件内容、格式去查找自己所需的工具,通过搜索大法和自学解决自己的问题。世界上不需要努力就可以掌握的东西,除非自己主动,不然无论如何也是学不下去的,所以千万不要盲目相信有了所谓的帖子,自己就可以顺畅的走下去。每一个步骤都有可能出bug,只有自己在每个细节中有到位的思考,才能学到属于自己的知识。不然也是旱鸭子看别人游泳:白开心。

你可能感兴趣的:(2. TCGA: 如果不了解数据,何以读取数据?)