单细胞转录组高级分析六:TCGA生存分析
The following article is from 生信会客厅 Author Kinesin
上期专题我们介绍了单细胞转录组数据的基础分析,然而那些分析只是揭开了组织异质性的面纱,还有更多的生命奥秘隐藏在数据中等待我们发掘。本专题将介绍一些单细胞转录组的高级分析内容:多样本批次校正、转录因子分析、细胞通讯分析、基因集变异分析和更全面的基因集富集分析。不足之处请大家批评指正,欢迎添加Kinesin微信交流探讨!
前言
We next utilized clinical data and bulk mRNA-seq data from The Cancer Genome Atlas (TCGA) (Liu et al., 2018) to determine whether CD4+ TFH signatures in HNSCC were related to survival (STAR Methods).
本篇文章将模拟原文的过程做一个生存分析,但是我在原文中找不到TFH signatures对应的200个基因,所以只能用其中的几个基因模拟一下。本次分析的结果与原文会有一定差异,大家关注生存分析如何操作即可。
UCSC Xena下载数据
UCSC Xena简介
UCSC是加利福尼亚大学圣克鲁兹分校(University of California, Santa Cruz)的简称,UCSC Xena是他们开发的一个癌症基因组学数据分析平台。该平台整合了多个癌症公共数据库的资源,比如来自TCGA, ICGC等大型癌症研究项目的数据,不仅可以下载各个数据集,还提供在线分析功能。
生存分析
##安装生存分析R包
BiocManager::install(c("survival","survminer"), update = F)
##读取HNSC数据集的表达矩阵和临床信息
library(survival)
library(survminer)
library(tidyverse)
dir.create("Survival")
TCGAexpr <- read.delim("Data/TCGA-HNSC.htseq_fpkm.tsv", check.names=F)
id.annota <- read.delim("Data/gencode.v22.annotation.gene.probeMap", check.names=F)
id.annota <- id.annota[, 1:2]
TCGAexpr <- merge(id.annota, TCGAexpr, by.x="id", by.y="Ensembl_ID")
TCGAexpr <- aggregate(TCGAexpr[,-c(1,2)], list(TCGAexpr$gene), FUN=sum)
TCGAexpr <- column_to_rownames(TCGAexpr,"Group.1")
#过滤表达量过低的基因,减少分析数据量
TCGAexpr <- TCGAexpr[rowSums(TCGAexpr)>10, ] %>% as.matrix()
TCGAclin <- read.delim("Data/TCGA-HNSC.survival.tsv", check.names = F)
TCGAclin <- TCGAclin[TCGAclin$sample %in% names(TCGAexpr),]
TCGAclin <- TCGAclin[,-3]
we first defined our TFH gene set based on the top 200 differentially upregulated genes between CD4+ Tconv cluster 1 and CD4+ Tconv cluster 7, which represent the two terminal-most differentiated states of CD4+ T cells. As a test statistic for enrichment in the bulk expression profile from each patient, we used the Kolmogorov-Smirnov (KS) test to compare genes in the gene set versus those not in the gene set.
TFHset = list(c('PDCD1', 'CXCL13', 'TIGIT', 'TOX', 'MAF', 'CXCR5', 'CD40LG', 'IL6ST'))
names(TFHset) <- 'TFHset'
ES <- gsva(TCGAexpr, TFHset)
ES <- data.frame(t(ES), check.names=F)
TCGAclin <- merge(TCGAclin, ES, by.x="sample", by.y=0)
TCGAclin$TFH.set = ifelse(TCGAclin$TFHset>median(TCGAclin$TFHset),'high','low')
png('Survival/survival.png', 800, 600)
ggsurvplot(survfit(Surv(OS.time, OS)~TFH.set, data=TCGAclin), conf.int=F, pval=TRUE)
dev.off()
write.csv(TCGAclin, 'Survival/TCGAclin.csv', row.names = F)
res.cox <- coxph(Surv(OS.time, OS)~TFHset, data=TCGAclin)
res.cox
# Call:
# coxph(formula = Surv(OS.time, OS) ~ TFHset, data = TCGAclin)
# coef exp(coef) se(coef) z p
# TFHset -0.3702 0.6906 0.1371 -2.7 0.00694
# Likelihood ratio test=7.33 on 1 df, p=0.006786
# n= 545, number of events= 252
z值:Wald统计值,它对应于每个回归系数与其标准误差的比率(z = coef / se(coef))。
coef:回归系数,正数表示危险(死亡风险)较高,负数代表危险较低。
exp(coef):在此代表危险比(HR,hazard ratio)。
当然了,更多生存分析相关教程,见生信技能树:
细节也值得你认真读完;
基因表达量高低分组的cox和连续变量cox回归计算的HR值差异太大? 学徒作业-两个基因突变联合看生存效应 TCGA数据库里面你的基因生存分析不显著那就TMA吧 对“不同数据来源的生存分析比较”的补充说明 批量cox生存分析结果也可以火山图可视化 既然可以看感兴趣基因的生存情况,当然就可以批量做完全部基因的生存分析 多测试几个数据集生存效应应该是可以找到统计学显著的! 我不相信kmplot这个网页工具的结果(生存分析免费做) 为什么不用TCGA数据库来看感兴趣基因的生存情况 200块的代码我的学徒免费送给你,GSVA和生存分析 集思广益-生存分析可以随心所欲根据表达量分组吗 生存分析时间点问题 寻找生存分析的最佳基因表达分组阈值 apply家族函数和for循环还是有区别的(批量生存分析出图bug) TCGA数据库生存分析的网页工具哪家强 KM生存曲线经logRNA检验后也可以计算HR值
“ID转换和生存分析”群的钉钉群号: 35371384,如果你下载钉钉软件,搜索进群这个能力都没有,我还是建议你放弃学生信哈!
如果你也想开启自己的生物信息学数据处理生涯,加入生信技能树小圈子,还等什么呢,赶快行动起来吧! 发邮件(jmzeng1314@163.com)给生信技能树创始人jimmy就有惊喜哦!当然了,不能是辣鸡或者骚扰邮件啦,带上自己的简历和想学习交流的诚心吧!
获取帮助
本教程的目的在于把常用的单细胞分析流程串起来,适合有一定R语言基础的朋友参考。分析原理和代码我没有详细解释,官网有详细的教程和权威的解释,翻译好的中文教程也有多个版本,有兴趣的可以搜索一下。如果您学习本教程有一定困难,可以点击 “阅读原文” 找到作者联系方式,获取帮助。
如果你对单细胞转录组研究感兴趣,但又不知道如何入门,也许你可以关注一下下面的课程
生信爆款入门-第8期(线上直播4周,马拉松式陪伴,带你入门)你的生物信息入门课
数据挖掘学习班第6期(线上直播3周,马拉松式陪伴,带你入门) 医学生/医生首选技能提高课
生信技能树的2019年终总结 你的生物信息成长宝藏
看完记得顺手点个“在看”哦!
长按扫码可关注