R语言:TCGA数据分析一

时间:2021-11-21 15:44:40

引言

我最近在做TCGA数据分析,在处理中遇到的问题及其收获。主要包括:

  • case ID 大小写处理

  • 数据的匹配

涉及到的函数有:

小写

  • tolower

大写

  • toupper

单一的局部匹配

  • grep

多个全局匹配

  • match

保留固定长度的字符

  • substr

大小写处理

在RANseqGene中case ID 为大写的,而Clincial中为小写的。需要对case ID 做转换。

方案一:大写变小写

tolower(colnames(LUAD_RNAseqGene))

方案二:小写变大写

toupper(rownames(LUAD_Clinical))

匹配

grep

在找tumor 的case ID 时,需要采用这个函数将所有的tumor 找出来。

grep("\\.01A",colnames(LUAD_RNAseqGene))

对于normal的查找类似处理。

substr

由于case ID 很长,我们只需要前面的12或16个字符来作为识别验证。

substr(colnames(LUAD_Clinical),1,12) # 保留12位

match

RNA中映射到Clinical中,采用这个函数

例子

#定义a
> a<-c(1,2,3,4)
#定义b
> b<-c(3,4,5,6,7)
#匹配
> match(a,b)
[1] NA NA 1 2
#a和b*同的元素
> a[-which(is.na(match(a,b)))]
[1] 3 4
#a和b*同的元素
> b[match(a,b)]
[1] NA NA 3 4
#a中有的元素而不在b中
> a[is.na(match(a,b))]
[1] 1 2

注:match的结果长度与a保持一致,NA表示该位置元素不在b中,非NA表示该元素在b中的位置。