Main Content


Retrieve Gene Expression Omnibus (GEO) format data


GEOData = getgeodata(AccessionNumber)
getgeodata(AccessionNumber, 'ToFile', ToFileValue)
GEOData = getgeodata(AccessionNumber,'TimeOut',TimeOutValue)

Input Arguments


Character vector specifying a unique identifier for a GEO Sample (GSM), Data Set (GDS), Platform (GPL), or Series (GSE) record in the GEO database. Next-Generation Sequencing data cannot be retrieved using this function.


  • If you are unable to retrieve data for an accession number, increase your Java® heap space:

  • Recently submitted data sets may not be available for immediate download. There can be a one- to two-day delay between an experiment being submitted to the GEO database and its availability on the FTP site.

ToFileValue Character vector specifying a file name or path and file name for saving the data. If you specify only a file name, that file will be saved in the MATLAB Current Folder.
TimeOutValueConnection timeout in seconds, specified as a positive scalar. The default value is 5. For details, see here.

Output Arguments

GEODataMATLAB structure containing information for a GEO record retrieved from the GEO database.


GEOData = getgeodata(AccessionNumber) searches the Gene Expression Omnibus database for the specified accession number of a Sample (GSM), Data Set (GDS), Platform (GPL), or Series (GSE) record and returns a MATLAB structure containing the following fields:

ScopeType of data retrieved (SAMPLE, DATASET, PLATFORM, or SERIES)
AccessionAccession number for record in GEO database.
HeaderMicroarray experiment information.
ColumnDescriptionsCell array containing descriptions of columns in the data.
ColumnNamesCell array containing names of columns in the data.
DataArray containing microarray data.
Identifier (GDS files only)Cell array containing probe IDs.
IDRef (GDS files only)Cell array containing indices to probes.


Currently, the getgeodata function supports Sample (GSM), Data Set (GDS), Platform (GPL), and Series (GSE) records.

getgeodata(AccessionNumber, 'ToFile', ToFileValue) saves the data returned from the database to a file.


You can read a GEO SOFT-formatted file back into the MATLAB software using the geosoftread function. You can read a GEO SERIES-formatted file back into the MATLAB software using the geoseriesread function.

For more information, see

GEOData = getgeodata(AccessionNumber,'TimeOut',TimeOutValue) sets the connection timeout (in seconds) to retrieve data from the Gene Expression Omnibus database.


geoStruct = getgeodata('GSM1768')
Introduced before R2006a