3. TCGA读取数据就是第一个大困难

前期文章:
1. 在TCGA中找到并下载意向数据
2. TCGA: 如果不了解数据,何以读取数据?

前言

说起来前面真的有点犯傻,在读取metaData和clinical之后,个人非常想要快点把表达量数据也读取出来,于是在这两个data里面找了半天也没找到表达量counts,然后就放。。。放弃了。今天重新打开之后注意到一个叫做raw data的文件夹,等下?这不就是我之前下载的1222个数据吗!前面还信誓旦旦的写了2. TCGA: 如果不了解数据,何以读取数据?,现在就是活生生的例子,我果然不懂数据,于是读了个寂寞。

1. 数据到底在哪儿

数据存在raw data文件夹下,可以看到每个样本都有独立的文件夹,而文件夹内只有一个.gz文件。

raw data

2. 数据长什么样

那么我们该检查一下.gz文件内的data长什么样,在windows中我们无法使用已有的软件打开.gz文件,于是我们在该文件下右键调用Git Bash Here

image.png

调用Git Bash Here之后,使用代码打开文件泳衣查阅,这里我的代码是

zcat e30e547e-eeff-4a1f-829b-b6ec9e79f02a.htseq.counts.gz | less
## 使用less发现内容太多,所以更改为head和tail检查数据表头和结尾。
zcat e30e547e-eeff-4a1f-829b-b6ec9e79f02a.htseq.counts.gz | head
zcat e30e547e-eeff-4a1f-829b-b6ec9e79f02a.htseq.counts.gz | tail

数据查阅结果如下,我们发现数据没有表头,第一列是ensemble ID,且已经按照ensemble ID依次递增排序的,对应的第二列则为表达量counts,表格结束后有几句描述的话语,这应该不是我们想要读到数据框内的内容。

image.png

3. 收集文件名用以作为数据框的表头

检查目前我们拥有的所有文件,使用代码dir()列出当前文件夹下所有文件的名字。结合我们前面了解到的情况,每个样本有单独的文件夹,因此我们通过代码dir()只能看到文件夹的名字,而真正文件的名字还是没法看到,为此我们最好把所有的.gz文件移动到同一个文件夹下面,这里我是在Git Bash Here中使用代码cp */*.gz ./

image.png

在各种翻阅数据后得知,文件名是file_name (例如:00a47e69-ef6a-4be9-827d-d48609859a7e.htseq.counts.gz),而TCGA样本名叫做associated_entities(例如:aliquot, TCGA-AR-A1AS-01A-11R-A12P-07, e7b64cc3-9b2b-4938-9896-84b640d1586f, 7d681cc6-689d-41c8-9e84-e13733089ec9)。因此我们需要整理出一个file_name和TCGA样本名的表格

metadata<- fromJSON( file = "metadata.cart.2020-10-08.json", 
                     method = "C", 
                     unexpected.escape = "error", 
                     simplify = TRUE ) 
# 使用dplyr的select()函数
# select() picks variables based on their names.
library(dplyr)
metadata_id <- metadata %>% 
  dplyr::select(c(file_name,associated_entities)) 
# 使用了管道符%>%
metadata_id

可以看到这个表格仍然较为初步,因为第二列并不是最终的TCGA ID。通过搜索我们可知TCGA ID一般长这样:
TCGA_ID

所以我们检查metadata_id中哪一部分可以提取出TCGA ID

class(metadata_id[,2])
class(metadata_id[,2][1])
## 检查第二列数据类型,发现为list中还包含着list
metadata_id[,2][[1]]$entity_submitter_id
## 通过各种检查后发现entity_submitter_id是我们所要查找的TCGA ID
id_df <- data.frame() # 创建一个空的数据框
# 使用for循环,将metadata_id中第一列作为数据框id_df的第一列;# metadata_id第二列的entity_submitter_id作为数据框id_df的第二列。
image.png

4. 读取数据

自己写代码很复杂,推荐使用TCGAbiolinks完成。困了,下次接着写。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354