【生信笔记】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,需要进一步处理才能得到最终的预测结果。

ess怎么求 r语言 r语言aes函数_ess怎么求 r语言

四、得到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,里面存着几个图。

ess怎么求 r语言 r语言aes函数_r语言_02

如果提供了patient_response的话,会输出一个ROC曲线和一个AUC的barplot。

ess怎么求 r语言 r语言aes函数_ess怎么求 r语言_03


ess怎么求 r语言 r语言aes函数_权重_04

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

如果没有patient_response的话,将返回一个点图,代表每个患者的综合得分,同时还有一个箱线图。

ess怎么求 r语言 r语言aes函数_权重_05


ess怎么求 r语言 r语言aes函数_经验分享_06

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

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