從TCGA表達(dá)矩陣?yán)锊鸪雠鋵?duì)樣本

0.需求

TCGA里的數(shù)據(jù)tumor多normal少,想要挑選出配對(duì)樣本進(jìn)行差異分析。(并不是說(shuō)必須挑配對(duì)樣本才能做哦,直接做也是可以的)

1.數(shù)據(jù)

這里使用的數(shù)據(jù)是TCGA的CHOL表達(dá)矩陣。

rm(list = ls())
load("exp.Rdata")
dim(exp)
## [1] 30348    45
exp[1:4,1:4]
##                    TCGA-W5-AA36-01A-11R-A41I-07
## ENSG00000000003.13                         2504
## ENSG00000000419.11                         1272
## ENSG00000000457.12                          504
## ENSG00000000460.15                          123
##                    TCGA-W5-AA2H-01A-31R-A41I-07
## ENSG00000000003.13                          226
## ENSG00000000419.11                         1146
## ENSG00000000457.12                          602
## ENSG00000000460.15                          162
##                    TCGA-ZU-A8S4-11A-11R-A41I-07
## ENSG00000000003.13                         4107
## ENSG00000000419.11                          741
## ENSG00000000457.12                          312
## ENSG00000000460.15                          170
##                    TCGA-WD-A7RX-01A-12R-A41I-07
## ENSG00000000003.13                         9646
## ENSG00000000419.11                         1266
## ENSG00000000457.12                         1317
## ENSG00000000460.15                          451
head(colnames(exp))
## [1] "TCGA-W5-AA36-01A-11R-A41I-07"
## [2] "TCGA-W5-AA2H-01A-31R-A41I-07"
## [3] "TCGA-ZU-A8S4-11A-11R-A41I-07"
## [4] "TCGA-WD-A7RX-01A-12R-A41I-07"
## [5] "TCGA-3X-AAVC-01A-21R-A41I-07"
## [6] "TCGA-3X-AAVE-01A-11R-A41I-07"

從TCGA ID里可以找到tumor和normal的分組,統(tǒng)計(jì)它們的數(shù)量:

table(stringr::str_sub(colnames(exp),14,15)<10)
## 
## FALSE  TRUE 
##     9    36

2.代碼實(shí)現(xiàn)

配對(duì)樣本的共同點(diǎn)是病人ID(前12位)一致,根據(jù)這個(gè)來(lái)匹配即可。

先拆分成tumor和normal兩個(gè)矩陣,根據(jù)ID的14和15位來(lái)拆

library(stringr)
exp_nor = exp[,str_sub(colnames(exp),14,15) > 10]
exp_tum = exp[,str_sub(colnames(exp),14,15)<=10]

有normal樣本的病人的ID,是normal組樣本ID的前12位,也是exp_nor的行名。

patient = str_sub(colnames(exp_nor),1,12)

然后將tumor矩陣中與patient相匹配的樣本名選出來(lái),能匹配到的就會(huì)被挑出來(lái)。%in%從來(lái)都是R語(yǔ)言里的一個(gè)神技能:%in%很簡(jiǎn)單

k = str_sub(colnames(exp_tum),1,12) %in% patient;table(k) 
## k
## FALSE  TRUE 
##    27     9
exp_tum = exp_tum[,k]

可以把表達(dá)矩陣拼回去咯:

exp2 = cbind(exp_tum,exp_nor)
dim(exp2)
## [1] 30348    18

就相當(dāng)于把表達(dá)矩陣按列取子集了,tumor和normal各九個(gè)樣本,后面可以拿來(lái)做配對(duì)樣本的差異分析哦,例如下面這張圖,就是COAD數(shù)據(jù)配對(duì)差異分析得到的差異基因熱圖。

轉(zhuǎn)錄組的差異分析在這里:TCGA(轉(zhuǎn)錄組)差異分析三大R包及其結(jié)果對(duì)比

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容