2

我正在使用包含 2 个系列矩阵的 GSE 集,并希望将整个事物转换为表达式集,以便我可以在 Limma 中使用它。我已经使用以下命令加载了 GSE:

> gse <- getGEO('GSE16560', GSEMatrix = T)

当我尝试访问 GSM 列表以检查平台时,我收到以下错误:

> GSMList(gse)
Error in (function (classes, fdef, mtable) :
    unable to fin an inherited method for function 'GSMList' for signature '"list"'

到目前为止,我检查了 gse 对象的尺寸,它是 NULL,所以没有帮助。此外,它不是一个列表。当我调用“Meta(gse)”时,它也会引发同样的错误。我对这些数据结构和一般的 R 比较陌生,所以如果有人能指出我正确的方向,那将是一个巨大的帮助。

4

2 回答 2

1

您可能正在关注 GEOquery 的小插图。

您需要传递“GSEMatrix=F”而不是 TRUE。

> gse.withmatrix <- getGEO('GSE16560', GSEMatrix = T)
> gse.nomatrix   <- getGEO('GSE16560', GSEMatrix = F)

> class(gse.withmatrix[[1]])
[1] "ExpressionSet"
attr(,"package")
[1] "Biobase"

> class(gse.nomatrix)
[1] "GSE"
attr(,"package")
[1] "GEOquery"

> GSMList(gse.withmatrix)
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘GSMList’ for signature ‘"list"’

> GSMList(gse.nomatrix)
.....
于 2015-04-21T11:12:21.960 回答
1

您的“gse”对象是两个表达式集的列表。

library(GEOquery)
gse <- getGEO('GSE16560', GSEMatrix = T)

class(gse)
# [1] "list"

length(gse)
# [1] 2

您可以使用双括号 ,[[]]来访问列表的元素。

# get the class of the first element in the list
class(gse[[1]])
# [1] "ExpressionSet"
# attr(,"package")
# [1] "Biobase"

我相信GSMList将使用“GSE”类的对象,如果将“GSEMatrix”参数更改getGEOFALSE

既然您说您是 R 和这些数据结构的新手,请查看?str. 它对于快速了解对象中存储的内容以及如何索引数据(如果出于某种原因需要这样做)非常有用。

str(gse[[1]])
# Formal class 'ExpressionSet' [package "Biobase"] with 7 slots
#   ..@ experimentData   :Formal class 'MIAME' [package "Biobase"] with 13 slots
#   .. .. ..@ name             : chr ""
#   .. .. ..@ lab              : chr ""
#   .. .. ..@ contact          : chr ""
#   .. .. ..@ title            : chr ""
#   .. .. ..@ abstract         : chr ""
#   .. .. ..@ url              : chr ""
#   .. .. ..@ pubMedIds        : chr ""
#   .. .. ..@ samples          : list()
#   .. .. ..@ hybridizations   : list()
#   .. .. ..@ normControls     : list()
#   .. .. ..@ preprocessing    : list()
#   .. .. ..@ other            : list()
#   .. .. ..@ .__classVersion__:Formal class 'Versions' [package "Biobase"] with 1 slots
#   .. .. .. .. ..@ .Data:List of 2
#   .. .. .. .. .. ..$ : int [1:3] 1 0 0
#   .. .. .. .. .. ..$ : int [1:3] 1 1 0
#   ..@ assayData        :<environment: 0x7fb344a81758> 
#   ..@ phenoData        :Formal class 'AnnotatedDataFrame' [package "Biobase"] with 4 slots
#   .. .. ..@ varMetadata      :'data.frame':   44 obs. of  1 variable:
#   .. .. .. ..$ labelDescription: chr [1:44] NA NA NA NA ...
#   .. .. ..@ data             :'data.frame':   255 obs. of  44 variables:
# ....and so on and so forth

gse[[1]]@experimentData
# Experiment data
#   Experimenter name:  
#   Laboratory:  
#   Contact information:  
#   Title:  
#   URL:  
#   PMIDs:  
#   No abstract available.

# and one more example...
head(levels(gse[[1]]@phenoData@data$geo_accession))
# [1] "GSM416241" "GSM416242" "GSM416243" "GSM416244" "GSM416245" "GSM416246"
于 2013-07-31T21:21:22.037 回答