tigeR免疫治疗数据分析工具学习和整理

news2024/11/30 11:51:43

tigeR整合了多个肿瘤的数据集,用于探索生物标志物和构建预测免疫治疗反应模型。

该工具内置了 11 个黑色素瘤数据集、3 个肺癌数据集、2 个肾癌数据集、1 个胃癌数据集、1 个低级别胶质瘤数据集、1 个胶质母细胞瘤数据集和 1 个头颈鳞状细胞癌数据集的 1060 例具有免疫治疗临床信息的样本。23个重要的免疫治疗反应相关的生物标志物。10种TME去积卷方法工具和7种机器学习算法。

工作流程如下:导入自己的数据—生物标志物评估/TME去卷积—预测模型构建—免疫治疗反应预测

开发者提供的功能还是蛮多的

生物标志物评估

score_biomk():为tigeR中的23种特征生成全面的特征评分矩阵,列代表特征评分,行表示样本名称。

score_biomk_SE():为tigeR中的23种特征生成全面的特征评分矩阵,列代表特征评分,行表示样本名称(返回SummarizedExperiment对象)。

roc_biomk():生成受试者工作特征(ROC)对象及曲线,用于评估预测性能。

diff_biomk():绘制差异分析结果(响应者 vs 非响应者或治疗前 vs 治疗后)。

surv_biomk():计算Cox比例风险分析的风险比、置信区间和P值并绘制KM曲线。

compare_biomk():生成数据集特征AUC的热图。

browser_biomk():生成集成图,包括表示AUC的条形图和表示风险比及P值的点图。

integrate_analysis():执行差异表达分析和生存分析。

肿瘤微环境去卷积

TME_deconvolution():通过10种开源算法进行肿瘤微环境去卷积分析。

fraction_pie():生成饼图,以显示每个样本的细胞分数或相对细胞丰度。

预测模型构建

data_standardization():执行数据标准化,包括将FPKM转换为TPM、去除NA值、应用对数变换及数据标准化处理。

compare_roc():在同一图上绘制所有ROC曲线。

gini_gene():计算Gini指数,并概览基因的分类效率。

diff_gene():返回响应者与非响应者之间的差异表达基因。

build_Model():生成免疫治疗反应预测的机器学习模型。

test_Model():测试由build_Model函数生成的模型。

反应预测 pred_response():预测免疫治疗反应并生成特征热图。

分析流程
1.导入
rm(list = ls())
library(tigeR)
library(ggplot2)
library(BiocParallel)
register(MulticoreParam(workers = 8, progressbar = TRUE)) 

load("consensus.Rdata")
2.数据预处理—整合数据

这一步是制作一个输入数据,常规的表达矩阵和临床信息

开发者在github中提到分析导入的临床数据中必须包含:

Sample ID;

Treatment情况:PRE/POST (患者样本是在治疗前还是治疗后收集的);

Response_NR反应情况:R/N (免疫疗法反应,仅包含response或者non-response)

overall.survival/days: 生存时间,NA数据可不剔除

vital.status:阳性事件发生情况,NA数据可不剔除

以下是开发者提供的示例数据格式

# 创造一个数据
head(exprSet)[1:5,1:5]
#            TCGA-CR-7374-01A TCGA-CV-A45V-01A TCGA-CV-7102-01A TCGA-MT-A67D-01A TCGA-P3-A6T4-01A
# WASH7P            0.5808846        1.4177642        0.6501330       1.20457795        1.3470145
# AL627309.6        3.1179619        6.2504135        1.2197288       3.03883530        3.7995708
# AL627309.7        3.7274096        6.3814948        2.1305708       2.95908846        4.4341943
# WASH9P            1.6390585        1.5213872        1.8508065       2.12561634        1.9865207
# AL732372.2        0.1854162        0.9021871        0.1465869       0.01192063        0.2029653
head(dat)
#                         sample_id vital_status overall_survival_days Treatment response_NR
# TCGA-CR-7374-01A TCGA-CR-7374-01A        Alive              1.000000       PRE           R
# TCGA-CV-A45V-01A TCGA-CV-A45V-01A         Dead              1.066667       PRE           R
# TCGA-CV-7102-01A TCGA-CV-7102-01A         Dead              1.866667       PRE           R
# TCGA-MT-A67D-01A TCGA-MT-A67D-01A        Alive              1.866667      POST           R
# TCGA-P3-A6T4-01A TCGA-P3-A6T4-01A         Dead              2.066667      POST           R
# TCGA-CV-7255-01A TCGA-CV-7255-01A         Dead              2.133333       PRE           R

# Construct SummarizedExperiment Object
SE <- SummarizedExperiment::SummarizedExperiment(
  assays = list(tpm = exprSet), # 笔者这里使用了tpm数据
  colData = dat)
SE
3.治疗反应和生物标志物评估
# 免疫治疗反应
diff_biomk(SE=SE,gene='CD274',type='Response') +
  ggtitle("Responder vs Non-Responder") +
  theme(plot.title = element_text(hjust = 0.5))

# 治疗前后标志物表达情况
diff_biomk(SE=SE,gene='CD274',type='Treatment') +
  ggtitle("Pre-Treatment vs Post-Treatment") +
  theme(plot.title = element_text(hjust = 0.5)) 

简单柱状图,拿来当可视化工具其实也可以

4.生存分析
P <- surv_biomk(SE=SE,gene='CD274')
P$plot <- P$plot +
  ggtitle("Survival analysis") +
  theme(plot.title = element_text(hjust = 0.5))
P

结果不展示了,生存分析的图都是一样的

5.计算一些signature打分

github上提供了siganture的出处(PMID)

sig_res <- score_biomk(SE)
head(sig_res)[1:5,1:5]
#                    IRS       tGE8    MEMTS PRGScore Angiogenesis
# TCGA-CR-7374-01A 1.424 -0.6814479 4.085253 2.607740     3.705173
# TCGA-CV-A45V-01A 2.213  0.3816906 3.174302 2.966450     4.390987
# TCGA-CV-7102-01A 2.518 -0.5168744 4.035125 2.168822     4.856780
# TCGA-MT-A67D-01A 2.518 -0.3286768 3.093744 2.949124     4.595342
# TCGA-P3-A6T4-01A 1.919 -0.7858914 3.075476 2.757526     3.156338
colnames(sig_res)
#  [1] "IRS"                  "tGE8"                 "MEMTS"               
#  [4] "PRGScore"             "Angiogenesis"         "Teffector"           
#  [7] "Myeloid_inflammatory" "IFNG_Sig"             "TLS"                 
# [10] "MSKCC"                "LMRGPI"               "PRS"                 
# [13] "Stemness_signature"   "GRIP"                 "IPS"                 
# [16] "Tcell_inflamed_GEP"   "DDR"                  "CD8Teffector"        
# [19] "CellCycleReg"         "PanFTBRs"             "EMT1"                
# [22] "EMT2"                 "EMT3" 

# 性能评估(AUC)
sig_roc <- 
roc_biomk(SE,
          Weighted_mean_Sigs$IPS,
          method = "Weighted_mean",
          rmBE=TRUE,
          response_NR=TRUE)
sig_roc

6.TME去卷积
## TIMER
frac1 <- deconv_TME(SE,method="TIMER")
head(frac1)[1:5,1:5]
#             TCGA-CR-7374-01A TCGA-CV-A45V-01A TCGA-CV-7102-01A TCGA-MT-A67D-01A TCGA-P3-A6T4-01A
# B.cell            0.11248850       0.05316131       0.03885060       0.09072546       0.05997252
# T.cell.CD4.       0.18586833       0.15912885       0.17968269       0.17242956       0.15125753
# T.cell.CD8.       0.11235710       0.13693879       0.09108573       0.09283824       0.07399370
# Neutrophil        0.10591096       0.15265128       0.12336268       0.15711726       0.13258209
# Macrophage        0.04896193       0.03508171       0.07333701       0.02210920       0.01192845

## CIBERSORT
frac2 <- deconv_TME(SE,method="CIBERSORT")

## MCPCounter
frac3 <- deconv_TME(SE,method="MCPCounter")

## xCell
frac4 <- deconv_TME(SE,method="xCell")

## IPS
frac5 <- deconv_TME(SE,method="IPS")

## EPIC
frac6 <- deconv_TME(SE,method="epic")

## ESTIMATE
frac7 <- deconv_TME(SE,method="ESTIMATE")

## ABIS
frac8 <- deconv_TME(SE,method="ABIS")

## ConsensusTME
frac9 <- deconv_TME(SE,method="ConsensusTME")

## quanTIseq
frac10 <- deconv_TME(SE,method="quanTIseq")

# 可视化免疫细胞比例
cell1 <- c("T cells CD4","Neutrophil", "Macrophage","mDCs","B cells", "T cells CD8")
# frac1是TIMER结果
pie1 <- fraction_pie(cell_name_filter(frac1),
                     feature=factor(cell1, 
                                    levels = cell1))
class(pie1)


# 寻找影响免疫治疗反应的关键细胞类型
# TIMER
TM <- deconv_TME(SE,method = "TIMER")
library(SummarizedExperiment)
TM_SE <- SummarizedExperiment(assays=SimpleList(TM),
                               colData=colData(SE))
browse_biomk(SE=TM_SE)
# Setting levels: control = N, case = R
# Setting direction: controls > cases
# Setting levels: control = N, case = R
# Setting direction: controls < cases
# Setting levels: control = N, case = R
# Setting direction: controls < cases
# Setting levels: control = N, case = R
# Setting direction: controls < cases
# Setting levels: control = N, case = R
# Setting direction: controls > cases
# Setting levels: control = N, case = R
# Setting direction: controls < cases
# Error in data.frame(time, status, Score = x) : 
#  arguments imply differing number of rows: 0, 493

跟IOBR很相似,TME得到一批去卷积的结果

笔者这里创造的数据有点问题,找关键细胞类型这里报错,但是不要紧,因为这个找关键细胞群在正式分析的时候也只能做一个很小很小的辅助。

7.构建预测模型

首先构建SummarizedExperiment对象,放进去分析即可 (开发者没有提供更多示例数据)

train_set <- list(MEL_GSE91061, MEL_phs000452, RCC_Braun_2020)
mymodel <- build_Model(Model='NB', 
                       SE=train_set, 
                       feature_genes=Stem.Sig, 
                       response_NR = TRUE)

test_Model(mymodel,MEL_78220)
8.免疫治疗反应预测
res <- pred_response(SE=SE,
              Signature = ipt, #NULL
              method = "Weighted_mean", #"Average_mean", "Weighted_mean","GSVA"
              threshold = 0.8,
              PT_drop = FALSE,
              sort_by = "Customed.Signature",
              group_by = "Customed.Signature",
              show.val = TRUE,
              show.Observed = T,
              rankscore = FALSE)
class(res)
head(res[[1]]$data)
#             Sample     Group Value
# 1 TCGA-CR-7395-01A Predicted     N
# 2 TCGA-UF-A7JV-01A Predicted     N
# 3 TCGA-BA-A6DB-01A Predicted     N
# 4 TCGA-CV-6940-01A Predicted     N
# 5 TCGA-CN-A498-01A Predicted     N
# 6 TCGA-CV-7407-01A Predicted     N
table(res[[1]]$data$Group)
# Predicted  Observed 
#       493       493 
ggsave("res.pdf",width = 20,height = 36)

这个工具能够快速的输出一些数据,帮助研究者做一个前期探索工作,而且主要功能在于预测模型构建和治疗反应评估,这一块是我们使用者急切需要的。得到了数据之后我们再自行做一下可视化即可。

笔者既往也写过多个免疫相关的分析工具和数据库,推文如下: 预测癌症免疫治疗反应-TIDE数据库学习及知识整理 https://mp.weixin.qq.com/s/7wDCMyYhDEwqwtp4DSbmsA

预测癌症免疫治疗反应-EaSleR学习和知识整理 https://mp.weixin.qq.com/s/0FcSHn8g9C4eU3XDxNEWxw

IOBR一站式免疫浸润分析R包及结果热图展示 https://mp.weixin.qq.com/s/uANDLb8qz12ifTWCGgMPIw

转录组8种免疫浸润分析方法整理 https://mp.weixin.qq.com/s/sy-HT1znQYTcktN3ef-djw

参考资料:
  1. tigeR: Tumor immunotherapy gene expression data analysis R package. iMeta.2024 Aug(R包).

  2. TIGER: A Web Portal of Tumor Immunotherapy Gene Expression Resource. Genomics Proteomics. Bioinformatics.2023 Apr;21(2):337-348(数据库).

  3. github:https://github.com/YuLab-SMU/tigeR

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2215427.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络资源模板--Android Studio 实现简易新闻App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易新闻App 二、项目测试环境 三、项目详情 登录页 用户输入&#xff1a; 提供账号和密码输入框&#xff0c;用户可以输入登录信息。支持“记…

2022年10月自考《操作系统概论》02323试题

目录 一.选择题 二.填空题 三.简答题 四.综合体 一.选择题 1.以下各种操作系统中&#xff0c;对可靠性要求最高的是 &#xff08;书中&#xff09;P25页 A.分时操作系统 B.实时操作系统 C.多道批处理系统 D.单道批处理系统 2.一个进程正常执行完毕时&#xff0c;需要对其…

简述光密度仪日常中的用途及光密度测量方法

光密度仪在日常中的用途 光密度仪在众多领域发挥着重要作用。在医疗领域&#xff0c;它常用于检测生物样本中的物质浓度&#xff0c;如血液中特定成分的含量测定。在化学分析中&#xff0c;可精确测量溶液的浓度&#xff0c;为实验和研究提供准确数据。在工业生产中&#xff0…

go+bootstrap实现简单的注册登录和管理

概述 使用&#xff0c;gomysql实现了用户的登录&#xff0c;注册&#xff0c;和管理的简单功能&#xff0c;不同用户根据不同权限显示不同的内容 实战要求&#xff1a; 1、用户可以注册、登录&#xff1b; 2、登录后可以查看所有的注册的用户&#xff1b; 3、管理员操作对用…

PHP(一)从入门到放弃

参考文献&#xff1a;https://www.php.net/manual/zh/introduction.php PHP 是什么&#xff1f; PHP&#xff08;“PHP: Hypertext Preprocessor”&#xff0c;超文本预处理器的字母缩写&#xff09;是一种被广泛应用的开放源代码的多用途脚本语言&#xff0c;它可嵌入到 HTML…

Qt/C++编写的mqtt调试助手使用说明

一、使用说明 第一步&#xff0c;选择协议前缀&#xff0c;可选mqtt://、mqtts://、ws://、wss://四种&#xff0c;带s结尾的是走ssl通信&#xff0c;ws表示走websocket通信。一般选默认的mqtt://就好。第二步&#xff0c;填写服务所在主机地址&#xff0c;可以是IP地址也可以…

使用LSPatch+PlusNE修改手机软件

一、问题概述 国内使用一些软件&#xff0c;即使科学上网&#xff0c;打开都是网络错误&#xff0c;更换节点同样如此。 二、软件下载 通过官网或者正规商店(如Google play)下载并且安装。 是的&#xff0c;先要下载一个无法使用的版本&#xff0c;后续对其进行修改。 三、下…

代码随想录(七) —— 二叉树部分

1. 二叉树的四种遍历方式的理解 前序遍历&#xff0c;中序遍历&#xff0c;后序遍历&#xff1b;层次遍历 结合另一篇博客&#xff0c;关于灵神的题单刷题 二叉树刷题记录-CSDN博客 理解&#xff1a; 在二叉树类型题目中&#xff0c;遍历顺序的选择需要根据具体问题来确定…

算法笔记day04

目录 1. 在字符串中找出连续最长的数字串 2.岛屿数量 3.拼三角 1. 在字符串中找出连续最长的数字串 字符串中找出连续最长的数字串_牛客题霸_牛客网 (nowcoder.com) 算法思路&#xff1a; 这是一道简单的双指针题目&#xff0c;首先用i遍历数组&#xff0c;当遍历到数字的时…

春日技术辅导:Spring Boot课程答疑

3系统分析 3.1可行性分析 通过对本课程答疑系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本课程答疑系统采用JAVA作为开发语言&#xff0c;Spring Boot框…

数据驱动,漫途能耗管理系统打造高效节能新生态!

在我国能源消耗结构中&#xff0c;工业企业所占能耗比例相对较大。为实现碳达峰、碳中和目标&#xff0c;工厂需强化能效管理&#xff0c;减少能耗与成本。高效的能耗管理系统通过数据采集与分析&#xff0c;能实时监控工厂能源使用及报警情况&#xff0c;为节能提供数据。构建…

JVM 调优篇10 使用arthas排优

一 Arthas的作用 1.1 作用 1. 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种类相关的 Exception&#xff1f; 2.是否有一个全局视角来查看系统的运行状况&#xff1f; 3. 有什么办法可以监控到JVM的实时运行状态&#xff1f; 4. 怎么快速定位应用的热点&#x…

TensorFlow详细配置

Anaconda 的安装路径配置系统环境变量 1 windows path配置 2 conda info C:\Users\Administrator>conda info active environment : None user config file : C:\Users\Administrator\.condarc populated config files : C:\Users\Administrator\.condarc …

【含文档】基于Springboot+Vue的高校科研信息管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

mybatis之入门(详细介绍)

1.Mybatis简介 MyBatis 是一个开源、轻量级的数据持久化框架&#xff0c;是 JDBC 和 Hibernate 的替代方案。MyBatis 内部封装了 JDBC&#xff0c;简化了加载驱动、创建连接、创建 statement 等繁杂的过程&#xff0c;开发者只需要关注 SQL 语句本身。 1.1.什么是Mybatis MyB…

VSCODE 导入cubeide工程

1.下载vscode及插件STM32 VS Code Ectersion 版本号1.0.0&#xff0c;之后这个有导入功能。 2.等待自动安装对应插件&#xff0c;提示缺少什么就补什么 3.在左侧出现stm32图标。点击Import a local project导入本地项目。 4.报错 [{"resource": "/f:V11/cmak…

【Linux】进程控制:从fork到exec

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; 进程创建 &#x1f95d; fork函数初识&#x1f95d; 写时拷贝&#x1f95d; fork常规用法&#x1f95d; fork调用失败的原因 二&#xff1a;&#x1f525;…

群晖使用Docker搭建NASTool自动化观影工具并实现在线远程管理

文章目录 前言1. 本地搭建Nastool2. nastool基础设置3. 群晖NAS安装内网穿透工具4. 配置公网地址5. 配置固定公网地址 前言 本文主要分享一下如何在群晖NAS中本地部署Nastool&#xff0c;并结合cpolar内网穿透工具&#xff0c;轻松实现公网环境远程管理与访问本地NAS中储存的影…

惠普电脑怎么开启vt_惠普电脑开启vt虚拟化图文教程(支持新旧bios开启方法)

最近使用惠普电脑的小伙伴们问我&#xff0c;惠普电脑怎么开启vt虚拟。大多数可以在Bios中开启vt虚拟化技术&#xff0c;当CPU支持VT-x虚拟化技术&#xff0c;有些电脑会自动开启VT-x虚拟化技术功能。而大部分的电脑则需要在Bios Setup界面中&#xff0c;手动进行设置&#xff…

数字媒体产业园区:创新资源集聚,助力企业成长

在当今数字化浪潮汹涌的时代&#xff0c;数字媒体产业园区作为创意与技术的交汇点&#xff0c;正以其独特的魅力和无限的潜力&#xff0c;成为助力企业成长的重要平台。其中&#xff0c;“数字媒体产业园区”以其创新资源的集聚效应&#xff0c;为入驻企业提供了广阔的发展空间…