【R语言】临床特征分组,多分类转换成二分类

2022-09-21 17:46:05 浏览数 (1)

前面我们提到过T分期一般可以分成T1,T2,T3和T4四个期。另外一个常用的临床特征是组织病理分期,一般也是分为四期stage I,stage II, stage III和stage IV。四组在我们做差异表达分析的时候是比较麻烦的。

☞R代码TCGA差异表达分析

☞零代码TCGA差异表达分析

最简单的方法是将四个期合并成两个期。今天天我们就来聊聊如何用R来将四分期的临床特征转换成二分期。

首先我们还是先来获取相关癌症的临床特征。这在☞TCGAbiolinks获取癌症临床信息一文里面已经讲过了。这里还是以胆管癌TCGA-CHOL为例,如果对其它的癌症感兴趣,可以在☞TCGA数据库中癌症名称缩写一文中找到目前TCGA中63个癌症的缩写。

代码语言:javascript复制
#安装TCGAbiolinks包
BiocManager::install("TCGAbiolinks")
#加载TCGAbiolinks包
library(TCGAbiolinks)
#下载TCGA-CHOL这个项目相关的临床信息,这个项目是胆管癌
clinical <- GDCquery_clinic(project = "TCGA-CHOL", type = "clinical")

然后我们获取样本TNM分期中的T分期。根据T分期的定义,T1和T2期的肿瘤大小相对较小,所以用gsub将T1和T2替换成small,将T3和T4替换成big。这样我们就有两个组了,便于后面做差异表达分析。看看size较大的肿瘤跟size较小的肿瘤中,基因表达有没有显著差异。具体操作的时候,我们发现T2期实际上又进一步分成了T2a和T2b。当然我们替换两次也是可以的。如果情况比这个更复杂呢,还有T2c,T2d等等,怎么办。难道我们要一一去替换吗?我们可以利用☞正则表达式,在正则表达式中“.*”可以用来匹配任意字符串,所以T2.*就可以匹配我们刚才说到的所有情况。

代码语言:javascript复制
T=clinical$ajcc_pathologic_t

T=gsub("T1.*","small",T)
T=gsub("T2.*","small",T)
T=gsub("T3.*","big",T)
T=gsub("T4.*","big",T)

对于组织病理分期stage I,stage II, stage III和stage IV,我们可以把一二期作为早期,三四期作为晚期。这里替换有一个小技巧。如果先从stage I开始替换,为了匹配所有的可能出现的情况我们也要使用stage I.*,那么问题来了,stage I.*也可以匹配stage II和stage III,这样就会造成错误。

所以我们反过来做,先从IV和III开始替换,这样对I和II没有影响。等III和IV都替换完了,直接把剩下的以stage开头的都替换成early,因为剩下的肯定都是I和II的。

代码语言:javascript复制
stage=clinical$ajcc_pathologic_stage
stage=gsub("Stage IV.*","advanced",stage)
stage=gsub("Stage III.*","advanced",stage)
stage=gsub("Stage.*","early",stage)

参考资料:

☞R代码TCGA差异表达分析

☞零代码TCGA差异表达分析

☞TCGAbiolinks获取癌症临床信息

☞TCGA数据库中癌症名称缩写

☞正则表达式

0 人点赞