来自R中微阵列表达数据的基因子集的热图

时间:2015-01-13 13:11:08

标签: r heatmap subset

我有来自illumina beadchip平台的mircoarray数据集,我一直用它来检查3个治疗组之间的差异表达。在背景扣除和标准化之后,我有一个类“Elist”类型的文件 - 如下所示。

$E
                     A         B         C         D        E        F         
ILMN_1        9.678162  9.635665  9.420577  9.778417  9.521473  9.820778  
ILMN_2       11.458221 11.152161 11.158666 11.410278 11.416522 11.377062 
ILMN_3        9.385075  9.087426  9.230654  9.704379  9.720282  9.482488  
ILMN_4        9.909423  9.115123  9.693177 10.348670  9.896625  9.729896  
ILMN_5       11.826927 12.067796 12.165630 12.256113 12.061949 12.213470 

$genes
             SYMBOL
ILMN_1       Gene 1
ILMN_2       Gene 2
ILMN_3       Gene 3
ILMN_4       Gene 4
ILMN_5       Gene 5

我现在想要创建一个“Elist”类的对象,该对象仅包括由其基因符号选择的基因的子集,以便生成该子集的热图。 (我应该能够从那里管理热图)

例如

$E
                     A         B         C         D        E        F           
ILMN_2       11.458221 11.152161 11.158666 11.410278 11.416522 11.377062  
ILMN_4        9.909423  9.115123  9.693177 10.348670  9.896625  9.729896  

$genes
             SYMBOL
ILMN_2       Gene 2
ILMN_4       Gene 4

我试过了

subset = Elist[Elist$genes == c("gene 2", "gene4"), ]

但这似乎只产生载体中第一个基因的子集或偶尔产生几行NA。如果我只在载体中插入一个基因就可以了。

subset = Elist[Elist$genes %in% c("gene 2", "gene4"), ]
返回没有行的Elist类的对象。

任何帮助非常感谢。 (关于如何发布问题的任何建议也更受欢迎!)

非常感谢 - 文森特的答案非常有效 - 解决方案是

subset = Eset[ Eset$genes$SYMBOL %in% c("Gene2", "Gene4"), ]

我现在想制作基因子集的热图,首先能够将列自己排序到治疗组中,然后用基因名称而不是探针名称替换行名称。

我可以使用Colv删除群集顺序,但无法进一步

heatmap.2(Subset$E, Colv = FALSE, Rowv = FALSE)

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

让我们调用此对象expr,而不是EList(类本身的名称):

require(limma)
expr <- new("EList"
            , .Data = list(structure(list(A = c(9.678162, 11.458221, 9.385075, 9.909423, 11.826927), 
                                          B = c(9.635665, 11.152161, 9.087426, 9.115123, 12.067796), 
                                          C = c(9.420577, 11.158666, 9.230654, 9.693177, 12.16563), 
                                          D = c(9.778417, 11.410278, 9.704379, 10.34867, 12.256113), 
                                          E = c(9.521473, 11.416522, 9.720282, 9.896625, 12.061949), 
                                          F = c(9.820778, 11.377062, 9.482488, 9.729896, 12.21347)), 
                                     .Names = c("A", "B", "C", "D", "E", "F"), 
                                     class = "data.frame", 
                                     row.names = c("ILMN_1", "ILMN_2", "ILMN_3", "ILMN_4", "ILMN_5")), 
                           structure(list(SYMBOL = c("Gene1","Gene2", "Gene3", "Gene4", "Gene5")), 
                                     .Names = "SYMBOL", 
                                     row.names = c("ILMN_1","ILMN_2", "ILMN_3", "ILMN_4", "ILMN_5"), 
                                     class = "data.frame")))

我们想在对象中选择对应于基因1和3的行。 之前的评论指出了正确的方向,以下通常应该有效:

expr[ expr$genes$SYMBOL %in% c("Gene2", "Gene4"), ]

我错过了关于热图的问题,我没有看到任何问题吗?