Answers.Body: <p>According to the <a href="https://www.bioconductor.org/help/course-materials/2011/BioC2011/LabStuff/publicDataTutorial.pdf" rel="nofollow noreferrer">manual</a>, all you need to do is: </p>
  
  <pre><code>library('GEOquery')
  gseGSE16146 &lt;- getGEO('GSE16146', GSEMatrix=FALSE)
  </code></pre>
  
  <p>As explanation, <code>getGEO()</code> outputs by default to <code>GSEMatrix=TRUE</code> and returns a list of <code>ExpressionSet</code> objects. You should get what you were looking for with: </p>
  
  <pre><code>Table(GSMList(gseGSE16146)[[1]])[1:5,]
  </code></pre>
  
  <p>The manual has also a paragraph about this: </p>
  
  <blockquote>
    <p>The GSE has  a  metadata section, just like the other classes. 
    However, it doesn’t have a GEODataTable.  Instead, it contains two
    lists, accessible using GPLList and GSMList, that are each lists of
    GPL and GSM objects.</p>
  </blockquote>
  
  <p>I tested the code I posted on <code>R 3.3.2</code> and I get access to the Data Table just fine. </p>
  
  <p>update: </p>
  
  <p>Answering how to extract the actual expression data (not what asked in the original question): </p>
  
  <pre><code>library(GEOquery) 
  data = getGEO("GSE16146") 
  datExpr = exprs (data[[1]])
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-30T09:59:59.743Z
Answers.Text: Thanks. It works. Would you suggest how can I extract all the expression matrix for 80 samples (list) from the gseGSE16146?
Answers.UserDisplayName: panbar
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-26T18:20:11.640Z
Answers.Text: Hi thanks for your answer! What I didn't get is how do I access the actual expression data?
Answers.UserDisplayName: Tapper
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-27T10:29:26.807Z
Answers.Text: @Tapper I updated my answer above with how to extract the expression data from the experiment. hope it helps?
Answers.UserDisplayName: aechchiki
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-29T19:30:07.790Z
Answers.Text: @aechchiki Thank you! The snippet does not contain the data but a list in my case though: GSM4446615 GSM4446616 GSM4446617 GSM4446618. The file getGEO() got was anyway to small to contain the dataset imho. I finally got the data by downloading the big data file myself and processing it with: gse = read.table("GSE123456.txt", sep = "\t"); data=CreateSeuratObject(raw.data = gse, ..) -- What do you think?
Answers.UserDisplayName: Tapper
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2017-08-30T09:30:20.967Z
Answers.LastActivityDate: 2018-10-27T10:28:02.497Z
Answers.LastEditDate: 2018-10-27T10:28:02.497Z
Answers.UserDisplayName: aechchiki
Body: <p>I have downloaded <a href="https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE16146" rel="noreferrer">GSE16146</a> dataset from GEO using GEOquery R package. </p>
  
  <p>I would like to extract "Data table" from downloaded GSE16146.  </p>
  
  <pre><code>&gt;library("GEOquery")
  &gt;GSE16146 &lt;- getGEO("GSE16146")
  &gt;Table(GSE16146)[1:5,]
  </code></pre>
  
  <p>This returns the following error:</p>
  
  <pre><code>&gt; Table(GSE16146)[1:5,]
  Error in (function (classes, fdef, mtable)  :
  unable to find an inherited method for function ‘Table’ for signature ‘"list"’
  </code></pre>
  
  <p>Can anyone help?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-30T07:48:12.227Z
Comments.Text: Have you tried the function `getGSEDataTables` to access GSE Data Tables from GEO, as reported in this [tutorial](http://genomicsclass.github.io/book/pages/GEOquery.html)? Also, what version of R/GEOquery are you using?
Comments.UserDisplayName: aechchiki
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-30T08:51:53.413Z
Comments.Text: GEOquery version 2.42.0, R version 3.4.0  > getGSEDataTables(gset)
  Error in as.character.default(<S4 object of class "GSE">) : 
    no method for coercing this S4 class to a vector
Comments.UserDisplayName: panbar
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-30T18:26:43.823Z
Comments.Text: The error is telling you that you can't calculate a `Table` for a list. Also you might have tried to use `table` instead of `Table`.
Comments.UserDisplayName: llrs
Tags: <r><bioconductor><microarray><geoquery>
Title: Extracting expression data from GSE dataset downloaded from GEO
ThreadText: # Extracting expression data from GSE dataset downloaded from GEO
  
  (Asked by: username_0 on 2017-08-30)
  
  I have downloaded [GSE16146](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE16146) dataset from GEO using GEOquery R package.
  
  I would like to extract "Data table" from downloaded GSE16146.
  
  ```
  >library("GEOquery")
  >GSE16146 <- getGEO("GSE16146")
  >Table(GSE16146)[1:5,]
  
  ```
  
  This returns the following error:
  
  ```
  > Table(GSE16146)[1:5,]
  Error in (function (classes, fdef, mtable)  :
  unable to find an inherited method for function ‘Table’ for signature ‘"list"’
  
  ```
  
  Can anyone help?
  
  **Tags:** r, bioconductor, microarray, geoquery
  
  > **Comments:**
  > **username_1**: Have you tried the function `getGSEDataTables` to access GSE Data Tables from GEO, as reported in this [tutorial](http://genomicsclass.github.io/book/pages/GEOquery.html)? Also, what version of R/GEOquery are you using?  
  > **username_0**: GEOquery version 2.42.0, R version 3.4.0  > getGSEDataTables(gset) Error in as.character.default(<S4 object of class "GSE">) :    no method for coercing this S4 class to a vector  
  > **username_2**: The error is telling you that you can't calculate a `Table` for a list. Also you might have tried to use `table` instead of `Table`.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2017-08-30. Score: 8
  
  According to the [manual](https://www.bioconductor.org/help/course-materials/2011/BioC2011/LabStuff/publicDataTutorial.pdf), all you need to do is:
  
  ```
  library('GEOquery')
  gseGSE16146 <- getGEO('GSE16146', GSEMatrix=FALSE)
  
  ```
  
  As explanation, `getGEO()` outputs by default to `GSEMatrix=TRUE` and returns a list of `ExpressionSet` objects. You should get what you were looking for with:
  
  ```
  Table(GSMList(gseGSE16146)[[1]])[1:5,]
  
  ```
  
  The manual has also a paragraph about this:
  
  > The GSE has a metadata section, just like the other classes.
  > However, it doesn’t have a GEODataTable. Instead, it contains two
  > lists, accessible using GPLList and GSMList, that are each lists of
  > GPL and GSM objects.
  
  I tested the code I posted on `R 3.3.2` and I get access to the Data Table just fine.
  
  update:
  
  Answering how to extract the actual expression data (not what asked in the original question):
  
  ```
  library(GEOquery) 
  data = getGEO("GSE16146") 
  datExpr = exprs (data[[1]])
  
  ```
  
  > **Comments:**
  > **username_0**: Thanks. It works. Would you suggest how can I extract all the expression matrix for 80 samples (list) from the gseGSE16146?  
  > **username_3**: Hi thanks for your answer! What I didn't get is how do I access the actual expression data?  
  > **username_1**: @username_3 I updated my answer above with how to extract the expression data from the experiment. hope it helps?  
  > **username_3**: @username_1 Thank you! The snippet does not contain the data but a list in my case though: GSM4446615 GSM4446616 GSM4446617 GSM4446618. The file getGEO() got was anyway to small to contain the dataset imho. I finally got the data by downloading the big data file myself and processing it with: gse = read.table("GSE123456.txt", sep = "\t"); data=CreateSeuratObject(raw.data = gse, ..) -- What do you think?  
  
  ---
  
  