是否可以从Broad Firehose下载的TCGA COAD基因表达数据中提取原发性肿瘤样本?

时间:2019-01-28 23:37:22

标签: r dataframe

我想分析从Broad Firehose下载的TCGA(癌症基因组图谱)数据中的基因表达。我已经下载了结直肠癌(COAD)基因表达数据。数据是329个变量的20531个观测值的数据帧(命名数据)。这些行是单个基因,每个样品的标准化读数。标头或列名是TCGA示例代码。示例代码如下:

  

TCGA-3L-AA1B-01A-11R-A37K-07

当我将表格上传到R时,它变成了

TCGA.3L.AA1B.01A.11R.A37K.07

我想做的是抽取样本,其中第四件事是01。因此,例如,对于上面的列标题,第四件事是01A,重要的是它是01,表明它是原发性肿瘤。如何提取列标题第四行为01的所有列?

谢谢!

head(data)

  Hybridization.REF TCGA.3L.AA1B.01A.11R.A37K.07 TCGA.4N.A93T.01A.11R.A37K.07
1       ?|100130426                       0.5174                            0
2       ?|100133144                      18.0851                       4.4315
3       ?|100134869                       15.764                       4.2767
  TCGA.4T.AA8H.01A.11R.A41B.07 TCGA.5M.AAT4.01A.11R.A41B.07 TCGA.5M.AAT5.01A.21R.A41B.07
1                            0                            0                            0
2                       9.8995                       7.9174                      12.2565
3                      11.3032                      18.7608                      20.8826
  TCGA.5M.AAT6.01A.11R.A41B.07 TCGA.5M.AATA.01A.31R.A41B.07 TCGA.5M.AATE.01A.11R.A41B.07
1                            0                            0                            0
2                       3.9637                       7.2366                       11.629
3                      15.0672                      11.4513                        6.906

1 个答案:

答案 0 :(得分:0)

通常的方法是用.strsplit处拆分列名,并检查第4个分量是否等于'01'。由于.是一个特殊字符,因此您必须使用\\.。可能是这样的:

df[sapply(strsplit(colnames(df), '\\.'), '[', 4) == '01']