2015-01-13 1 views
0

나는 3 개의 치료 그룹 사이의 미분 표현을 검사하기 위해 사용하고있는 illumina beadchip 플랫폼의 mircoarray 데이터 세트를 가지고 있습니다. 백그라운드 뺄셈과 정규화에 이어, 나는 "Elist"타입의 파일을 가지고있다.microarray 표현 데이터에서 유전자 서브 세트 히트 맵 R

$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"클래스의 객체를 생성하고 싶다. 내가

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

$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 

예를 들어 (내가 거기에서 히트 맵을 관리 할 수 ​​있어야한다) 그러나 이것은 단지의 일부를 생성하는 것 벡터의 첫 번째 유전자 또는 때때로 NAs의 여러 줄. 벡터에 하나의 유전자 만 삽입하면 제대로 작동합니다.

subset = Elist[Elist$genes %in% c("gene 2", "gene4"), ]
없이 행 Elist 클래스의 객체를 반환합니다.

도움을 주시면 감사하겠습니다. (더 나은 질문을 게시하는 방법에 대한 조언도 감사합니다!)

많은 감사를 - 빈센트 대답은 아주 잘 작동 - 솔루션은 내가 지금을하고 싶습니다

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

했다 열 서브맵의 히트 맵은 먼저 열을 스스로 처리 그룹으로 정렬 할 수 있고 두 번째로 프로브 이름이 아닌 유전자 이름으로 행 이름을 대체 할 수 있습니다.

나는 어떤

어떤 도움

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

더 많이 감사 얻을 수있는이 Colv를 사용하여 클러스터링 순서를 제거 할 수 있지만 드릴 수 없습니다.

+4

'=='대신 '% in %'? – Cath

+3

질문의 "히트 맵"부분은 어디에 있습니까? –

+0

답변을 많이 주셔서 감사합니다 - 위에 편집 된 질문. – MLyall

답변

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"), ] 

히트 맵에 대한 질문이 누락 되었습니까?

+0

많은 감사 사실 Vincent. 정말 잘 했어. 히트 맵 요청에 추가 할 질문을 편집했습니다. – MLyall