0.需求
从乳腺癌样本中筛选出TNBC样本。
三阴性乳腺癌(TNBC)是指癌组织免疫组织化学检查结果为雌激素受体(ER)、孕激素受体(PR)和人表皮生长因子受体-2(Her-2)均为阴性的乳腺癌,占所有乳腺癌病理类型的10%-20.8%,具有特殊的生物学行为和临床病理特征,多见于绝经前女士和肥胖人群。
https://www.yixue.com/三阴乳腺癌
1.找资料
这个临床资料放在了:
然后找到BRCA-phenodata就是了
虽然TCGA hub里面的数据比较旧,后面有新版本的数据了,但是人毕竟还是那些人,原来的临床信息并没有改变,新版本只是基因的版本变化而已。照常可以用。
2.读取和选列
下载下来并读取它。虽然没有后缀但并不耽误读取。
rm(list = ls())
pd = read.delim("TCGA.BRCA.sampleMap_BRCA_clinicalMatrix")
dim(pd)
#> [1] 1247 194
可见这个文件里存放的是全部brca样本的临床信息。从中找到ER、PR、HER2 status,三个全部都是Negative的那就是三阴性乳腺癌了。
tmp = data.frame(colnames(pd))
pd2 = pd[,c("ER_Status_nature2012",
"PR_Status_nature2012",
"HER2_Final_Status_nature2012")]
rownames(pd2) = pd$sampleID
head(pd2)
#> ER_Status_nature2012 PR_Status_nature2012
#> TCGA-3C-AAAU-01
#> TCGA-3C-AALI-01
#> TCGA-3C-AALJ-01
#> TCGA-3C-AALK-01
#> TCGA-4H-AAAK-01
#> TCGA-5L-AAT0-01
#> HER2_Final_Status_nature2012
#> TCGA-3C-AAAU-01
#> TCGA-3C-AALI-01
#> TCGA-3C-AALJ-01
#> TCGA-3C-AALK-01
#> TCGA-4H-AAAK-01
#> TCGA-5L-AAT0-01
3.写条件来筛选
三列都是Negative,这个条件肿么写呢。
all函数是判断一个逻辑值向量里面是否全部都是T的函数。例如
all(c(T,T,T))
#> [1] TRUE
all(c(T,T,F))
#> [1] FALSE
所以条件可以写成:
k = apply(pd2, 1, function(x){
all(x=="Negative")
});table(k)
#> k
#> FALSE TRUE
#> 1124 123
123个样本是三阴。然后从表达矩阵里面取子集即可啦!
pd2 = pd2[k,]
head(rownames(pd2))
#> [1] "TCGA-A1-A0SK-01" "TCGA-A1-A0SO-01" "TCGA-A1-A0SP-01"
#> [4] "TCGA-A2-A04P-01" "TCGA-A2-A04Q-01" "TCGA-A2-A04T-01"
load("exprSet.Rdata")
library(stringr)
k = str_sub(colnames(exprSet),1,15)%in%rownames(pd2);table(k)
#> k
#> FALSE TRUE
#> 991 122
exprSet = exprSet[,k]
dim(exprSet)
#> [1] 31603 122
取完之后是122个样本,可能是因为TCGA hub比较古老,有一个样本后来被删掉了。