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.


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')

Version History

Introduced before R2006a