TCGA_11

写在前面:本文为微信公众号:生信星球数据挖掘线上班的随堂笔记,感谢小洁老师的付出!

TCGA

TCGA能做的

0.准备工作

0-1 Terminal

Terminal操作系统分为两个部分,一部分称作内核,另一部分成为用户交互界面。终端就是连接内核与交互界面的这座桥,它允许用户在交互界面上打开一个叫做「Terminal 终端」的应用程序,在其中输入命令,系统会直接给出反馈。

  • Git软件:方便管理命令行。使用时右击文件夹[get bush here]
  • Rstudio里有terminal,可连接git。操作方式:tools → terminal → git bash
0-2 Rmd
  • Rmd文件介绍:
---
【头文件】
output: html_document
---
···
【代码块】
···
【正文部分】(无需#)
  1. 插入代码块 ctrl+alt+i
  2. 运行代码


  3. 基本语法同markdown
  4. 渲染导出文件
  5. 代码块选项
  • echo = FALSE 该代码块运行但不显示
  • eval = FALSE 该代码块不运行但显示

1.TCGA数据下载方式

  • TCGA癌症类型
  • 根据mRNA,芯片等等得到预后的结果。
1. TCGA gdc
  • 官方工具
1. 网页选择:manifest(清单文件)——file+case
  1. 数据:counts...+json——RNA-seq+miRNA-seq+exon...
  • counts文件需整理为表达矩阵。
  • json储存样本文件的详细信息。
  1. 临床信息:xml文件——病人ID,生死,分期,死亡时间等等
  • 病人临床信息多于RNA-seq/组学,因为有的人没全测。


    样本ID第14-15位为tumor或normal情况
  • 下载表达矩阵(.htseq.counts.gz)和clinical数据(.xml)

terminal操作

  • ./gdc-client download --help #工作目录下打开gdc-client并执行下载功能-的help文件
  • -d 为文件夹名,-m 文件信息
#下面两行命令在terminal完成,需要更改-m后面的文件名
./gdc-client.exe download -m gdc_manifest_cl.2020-03-23.txt -d clinical
./gdc-client.exe download -m gdc_manifest_mrna.2020-03-23.txt -d mrna
  • gdc和manifast需要在同一个目录下。
  • 使用'length(dir("./clinical/"))'在控制台查看下载进度。
  • 1.从网页选择数据,下载manifest文件,数据存放网站,然后在Repository勾选自己需要的case和file类型。
  • 2.使用gdc-client工具下载
    注意:将gdc-client(mac)或gdc-client.exe(windows)放在工作目录下;将manifest文件放在工作目录下。
options(stringsAsFactors = F)
cancer_type="TCGA-CHOL"
if(!dir.exists("clinical"))dir.create("clinical")
if(!dir.exists("mrna"))dir.create("mrna")
dir()
#下面两行命令在terminal完成
#./gdc-client download -m gdc_manifest_cl.2020-03-23.txt -d clinical
#./gdc-client download -m gdc_manifest_mrna.2020-03-23.txt -d mrna

length(dir("./clinical/"))
length(dir("./mrna/"))

3.整理临床信息

library(XML)
result <- xmlParse("./clinical/142aea0e-7a7b-4ac4-9dbb-0f62e2379599/nationwidechildrens.org_clinical.TCGA-W5-AA2O.xml")
rootnode <- xmlRoot(result)
#rootsize <- xmlSize(rootnode)
#print(rootnode[1])
#print(rootnode[2])
xmldataframe <- xmlToDataFrame(rootnode[2])
head(t(xmlToDataFrame(rootnode[2])))

xmls = dir("clinical/",pattern = "*.xml$",recursive = T)
#列出了文件夹所有的xml文件
#以下为以上的数据处理的函数td
td = function(x){
  result <- xmlParse(file.path("clinical/",x))
  rootnode <- xmlRoot(result)
  xmldataframe <- xmlToDataFrame(rootnode[2])
  return(t(xmldataframe))
}
#循环操作所有文件
cl = lapply(xmls,td)
cl_df <- t(do.call(cbind,cl))
cl_df[1:3,1:3]
clinical = data.frame(cl_df)
clinical[1:4,1:4]

4.整理表达矩阵

count_files = dir("mrna/",pattern = "*.htseq.counts.gz$",recursive = T)

ex = function(x){
  result <- read.table(file.path("mrna/",x),row.names = 1,sep = "\t")
  return(result)
}
head(ex("03aee74e-4e37-4a58-a720-c90e807d2f40/be5bc6a0-9720-47ac-953e-fa8d0c32cd82.htseq.counts.gz"))

exp = lapply(count_files,ex)
exp <- do.call(cbind,exp)
dim(exp)
exp[1:4,1:4]
  • 发现问题:这样产生出来的表达矩阵没有列名。
  • 解决办法:找到一个文件名与样本ID一一对应的文件。cart-json文件。
meta <- jsonlite::fromJSON("metadata.cart.2020-03-23.json")
colnames(meta)
ids <- meta$associated_entities;class(ids) #此处的列名随样本更改
ids[[1]]
class(ids[[1]][,1])
ID = sapply(ids,function(x){x[,1]})
file2id = data.frame(file_name = meta$file_name,
                     ID = ID)
#文件名与TCGA样本ID的对应关系已经得到,接下来是将其添加到表达矩阵中,成为行名。需要找到读取文件的顺序,一一对应修改。
head(file2id$file_name)
head(count_files)
count_files2 = stringr::str_split(count_files,"/",simplify = T)[,2]
count_files2[1] %in% file2id$file_name
#count_files2的顺序就是列名的顺序,根据它来调整file2id的顺序。此处需要再次理解一下match函数。
file2id = file2id[match(count_files2,file2id$file_name),]
colnames(exp) = file2id$ID
exp[1:4,1:4]
#表达矩阵整理完成,需要过滤一下那些在很多样本里表达量都为0的基因。过滤标准不唯一。这里取出至少有9个样本表达量大于1的基因们。
dim(exp)
exp = exp[apply(exp, 1, function(x) sum(x > 1) > 9), ]
dim(exp)
exp[1:4,1:4]

5.分组信息

  • 本样本根据样本ID的第14-15位,给样本分组(tumor和normal),随数据更改——如本次为"TCGA-W5-AA36-01A-11R-A41I-07"。
table(stringr::str_sub(colnames(exp),14,15))
group_list = ifelse(as.numeric(substr(colnames(exp),14,15)) < 10,'tumor','normal')
group_list = factor(group_list,levels = c("normal","tumor"))
table(group_list)
save(exp,clinical,group_list,cancer_type,file = paste0(cancer_type,"gdc.Rdata"))

GDC下载中断?试试这个设置!

2. TCGAbiolinks
3. RTCGA
4. Xena

2.差异分析

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

推荐阅读更多精彩内容