R语言easier包预测免疫治疗响应

news/2024/11/7 13:53:55/

【生信笔记】R语言easier包预测免疫治疗响应

这个包发表于2021年,以患者的RNA序列数据作为输入,来预测免疫治疗的结果。文章的DOI是:doi: 10.1016/j.patter.2021.100293.

用户手册在:http://127.0.0.1:27097/library/easier/doc/easier_user_manual.html

输入的表达矩阵要求是RNA-Seq数据,原始的Counts数据和TPM数据都可以。

easier包主要包括以下几个功能:

一、计算免疫反应的特征(Compute hallmarks of immune response)

compute_scores_immune_response函数能够对多个不同的免疫特征进行打分,主要包括:

函数里的selected_scores参数可以选择输出哪些Hallmarks。比如我们指定2个Hallmarks进行计算:

> immune_response_scores <- compute_scores_immune_response(RNA_tpm = tpm)

结果是一个dataframe,行是样本,列是分数。

> head(immune_response_scores)CYT       TLS     IFNy Ayers_expIS
TCGA-05-4244-01A  6.804592  8.771665 5.044553    4.562678
TCGA-05-4250-01A 43.445152  8.315098 7.135774    6.035539
TCGA-05-4382-01A 11.721161 19.004632 6.411094    5.380301
TCGA-05-4384-01A 10.612710 17.434152 4.950731    4.482248
TCGA-05-4389-01A 35.632111 16.462322 7.097995    6.227765
TCGA-05-4390-01A  4.065595  4.934187 4.510498    3.948847

二、对TME定量描述的计算

这里主要是为后面计算免疫治疗响应准备数据,分以下几个部分。

(一)细胞成分

比CIBERSORT简单一些,不需要读入LM22的文件,但是相应的只有9个类别。

> str(cell_fractions)
'data.frame':    486 obs. of  11 variables:$ B         : num  0.00607 0.01211 0.02209 0.00391 0.01051 ...$ M1        : num  0.2832 0.1664 0.1915 0.1058 0.0712 ...$ M2        : num  0.0561 0.037 0.0834 0.1553 0.0607 ...$ Monocyte  : num  0 0 0 0 0 ...$ Neutrophil: num  0.0543 0.0468 0.0118 0.033 0.1042 ...$ NK        : num  0.00814 0 0.00452 0.00526 0.002 ...$ CD4 T     : num  0.0436 0.0595 0.0353 0.0356 0.0369 ...$ CD8+ T    : num  0.00919 0.03629 0.00194 0.00504 0.03537 ...$ Treg      : num  0.0436 0.0221 0.0353 0.0229 0.0369 ...$ DC        : num  0 0 0 0 0 ...$ Other     : num  0.539 0.642 0.649 0.656 0.679 ...

(二)通路活性方面

主要是评估14条信号通路的活性,包括Androgen、EGFR、Estrogen、Hypoxia、JAK-STAT、MAPK、NFkB、p53、PI3K、TGFb、TNFa、Trail、VEGF、WNT的活性。注意这一步只能输入Counts。

> pathway_activities <- compute_pathway_activity(RNA_counts = , remove_sig_genes_immune_response = TRUE)
> str(pathway_activities)
'data.frame':    486 obs. of  14 variables:$ Androgen: num  3765 3789 3613 3869 3695 ...$ EGFR    : num  53.65 210.41 9.37 -82.37 -20.52 ...$ Estrogen: num  2399 2439 2357 2425 2333 ...$ Hypoxia : num  7787 7853 8095 7170 7132 ...$ JAK-STAT: num  6883 7086 6912 6595 7129 ...$ MAPK    : num  1441 1662 1357 1294 1313 ...$ NFkB    : num  6823 6829 7326 6383 6561 ...$ p53     : num  4677 4646 4592 4871 4845 ...$ PI3K    : num  -3602 -3513 -3465 -3635 -3571 ...$ TGFb    : num  3038 3224 3419 3096 2969 ...$ TNFa    : num  7198 7124 7564 6556 6708 ...$ Trail   : num  118 120 135 100 142 ...$ VEGF    : num  -417 -508 -503 -564 -488 ...$ WNT     : num  630 647 698 656 697 ...

(三)转录因子活性

能够对118个转录因子的活性进行评估

> tf_activities <- compute_TF_activity(RNA_tpm = tpm)
> str(tf_activities)
'data.frame':    486 obs. of  118 variables:$ AR    : num  -0.709 1.233 -2.683 -1.041 -1.452 ...$ ARNTL : num  2.389 0.821 1.489 -0.25 0.22 ...$ ATF1  : num  1.191 2.22 1.093 -0.459 0.268 ...$ ATF2  : num  0.201 2.197 0.425 0.823 -0.4 ...$ ATF4  : num  0.727 1.965 0.259 -0.992 -0.409 ...$ ATF6  : num  0.825 0.341 2.062 0.326 1.216 ...$ BACH1 : num  1.216 0.497 0.338 1.645 2.544 ...$ CDX2  : num  -1.3392 -0.5584 -0.8671 -0.8286 0.0699 ...$ CEBPA : num  1.775 2.059 1.663 0.097 1.424 ...$ CEBPB : num  1.084 0.993 0.781 0.482 1.155 ...$ CEBPD : num  0.4532 -0.0117 0.3975 0.5953 0.5444 ...

表格很长,这里就不全部展示了。

(四)配体-受体权重与细胞间相互作用

手册的描述:使用衍生的癌症特异性细胞间网络,可以对867个配体-受体的权重进行量化。使用配体-受体权重作为输入,可以得出169个细胞-细胞相互作用分数。结果跟上面的类似,这里也不展示了。

总结一下,这一步我们获得了cell_fractions、pathway_activities、tf_activities、lrpair_weights、ccpair_scores一共5个变量,接下来这5个变量要全部(或部分)输入到一个函数里来预测免疫治疗的响应。

三、获取患者对免疫反应的预测

> predictions <- predict_immune_response(pathways = pathway_activities,immunecells = cell_fractions,tfs = tf_activities,lrpairs = lrpair_weights,ccpairs = ccpair_scores,cancer_type = cancer_type, verbose = TRUE)

这个函数的输入包括5个内容,都是上面计算得出来的结果。另外还需要指定癌种,主要包括:膀胱尿路上皮癌(BLCA)、BRCA浸润癌(BRCA)、宫颈癌和宫颈癌(CESC)、结直肠癌(CRC)、多形性胶质母细胞瘤(GBM)、头颈部鳞状细胞癌(HNSC)、肾透明细胞癌(KIRC)、肾肾乳头状细胞癌(KIRP)、肝细胞癌(LIHC)、肺腺癌(LUAD),肺鳞状细胞癌(LUSC)、非小细胞肺癌(NSCLC[LUAD+LUSC])、卵巢浆液性囊腺癌(OV)、胰腺癌(PAAD)、前列腺癌(PRAD)、皮肤黑色素瘤(SKCM)、胃腺癌(STAD)、甲状腺癌(THCA)、子宫内膜体癌(UCEC)。
这一步得到的结果predictions是一个list,需要进一步处理才能得到最终的预测结果。
predictions

四、得到ICB治疗的预测结果

通过函数retrieve_easier_score可以对上面的list进行处理得到easier预测的免疫治疗响应评分。如果有TMB信息还可以联合TMB信息进行评估。

> easier_derived_scores <- retrieve_easier_score(predictions_immune_response = predictions,TMB_values = TMB,easier_with_TMB = c("weighted_average", "penalized_score"),weight_penalty = 0.5)

得到的结果是一个dataframe,里面存着不同方法得到的免疫治疗响应的评分。其中easier_score是不纳入TMB信息的得分。

> str(easier_derived_scores)
'data.frame':    482 obs. of  3 variables:$ easier_score: num  -0.356 0.135 0.162 -0.552 0.348 ...$ w_avg_score : num  0.229 0.268 0.395 0.213 0.285 ...$ pen_score   : num  -0.356 0.135 0.662 -0.552 0.348 ...

这里TMB有两种纳入的方法,一种是加权,一种是惩罚得分,可以两个都算出来看看。另外,输入的TMB必须为一个Named_num。否则会报错。

除了上面这个函数,还可以通过函数assess_immune_response进行处理。

> output_eval_with_resp <- assess_immune_response(predictions_immune_response = predictions,patient_response = patient_ICBresponse,RNA_tpm = RNA_tpm,TMB_values = TMB,easier_with_TMB = "weighted_average",weight_penalty = 0.5)

这个函数的参数patient_response是由用户提供的每个患者的治疗信息,整理成两个因子的字符向量输入(Non-responders = NR, Responders = R),如果没有治疗信息的话可以直接把这个参数删掉。

这个函数会输出一个list,里面存着几个图。
output_eval_with_resp

如果提供了patient_response的话,会输出一个ROC曲线和一个AUC的barplot。
ROC(来自官方的示例图片)
Barplot(同样来自官方的示例图片)

如果同时还提供了TMB的话,将返回一个散点图,显示综合方法、easier score和TMB的AUC值。

如果没有patient_response的话,将返回一个点图,代表每个患者的综合得分,同时还有一个箱线图。
dotplot(来自官方的示例图片)
来自官方的示例图片

之后就可以用这个easier prediction score去做各种各样的分析啦!
ient_response的话,将返回一个点图,代表每个患者的综合得分,同时还有一个箱线图。
[外链图片转存中…(img-YSw4sICp-1650789699131)]
[外链图片转存中…(img-SzY7Szy4-1650789699132)]

之后就可以用这个easier prediction score去做各种各样的分析啦!

以上是个人对easier包的简单探索,欢迎大家批评指正、多多交流!


http://www.ppmy.cn/news/601492.html

相关文章

R语言之数据清洗与准备

数据清洗与准备 环境配置 library(mlbench) # 将会使用到包中的BostonHousing数据集 library(funModeling) # 探索性数据分析工具包&#xff0c;本节内容中将会使用到它的status()函数&#xff0c;打印整体数据质量 library(tidyverse) # 数据转化工具包&#xff0c;本节内容…

R语言复习总结

&#xff01;&#xff01;&#xff01;重点&#xff01;&#xff01;&#xff01;&#xff1a;data.frame 绘图 矩阵第一章#R语言是区分大小写的解释型语言 #rm()函数用于删除数据区中的数据第二章#R语言下标从1开始#向量 vector <- c(20173561,1709,20173562,1707)#矩阵 …

R语言 随机森林

关注微信公共号&#xff1a;小程在线 关注CSDN博客&#xff1a;程志伟的博客 R版本&#xff1a;3.6.1 randomForest包&#xff1a;提供randomForest()函数用于随机森林的建立 rflmpute()函数&#xff1a;对数据缺失值进行插补 treesize()函数&#xff1a; 查看模型每颗决策…

TCP三挥四握

TCP三挥四握 TCP最关键的三个步骤&#xff1a;建立连接、数据传输、释放连接&#xff0c;这里的三次握手实现的是服务端和客户端建立连接&#xff1b;四次握手实现的是服务端和客户端释放连接。 三次握手&#xff1a; 建立数据连接 TCP连接需要三次握手的原因&#xff1a; 三次…

【python】蜜蜂算法优化决策树回归的超参数

蜜蜂算法介绍 蜜蜂算法是一种基于蜜蜂的群体行为模拟的解优算法。其灵感来源于蜜蜂在寻找食物、建筑巢穴等任务中的群体行为。蜜蜂算法通过对这种行为的模拟来实现搜索空间中最优解的寻找。 蜜蜂算法的基本思想是&#xff0c;将参数空间视为蜂巢&#xff0c;并在参数空间中展开…

JS逆向系列之猿人学爬虫第16题-window蜜罐

文章目录 目标网站参数定位与加密逻辑分析补全后的jspython调用测试往期逆向文章推荐目标网站 https://match.yuanrenxue.cn/match/16参数定位与加密逻辑分析 t就是时间戳,m是我们主要逆向的参数,跟栈进入window

实测STM32 DMA的数据传输速率不如CPU

测试平台&#xff1a;STM32F407ZGT6 测试内容&#xff1a;用CPU和DMA同样搬运32KB的数据&#xff08;内存到内存&#xff09;&#xff0c;对比搬运耗时 测试代码&#xff1a; 1.DMA初始化 void SRAM_DMA_Config(u8 *sbuf,u8 *aimbuf,u32 bufsize) {DMA_InitTypeDef DMA_In…

STM32F103C8T6单片机实现DMA在串口2的收发应用

说明&#xff1a;其他项目文件没有添加&#xff0c;主要实现DMA的接收&#xff08;字节必须满足设定值才可以触发DMA中断&#xff0c;当前设定值为32个字节&#xff09;&#xff0c;main函数检查接收到数据后&#xff0c;通过DMA发送给串口调试助手&#xff1b; 1&#xff09;…