Main Content


Read Gene Expression Omnibus (GEO) SOFT format data


GEOSOFTData = geosoftread(File)
GEOSOFTData = geosoftread(File,'TimeOut',TimeOutValue)

Input Arguments


Either of the following:

  • Character vector or string specifying a file name, a path and file name, or a URL pointing to a file. The referenced file is a Gene Expression Omnibus (GEO) SOFT format Sample file (GSM), Data Set file (GDS), or Platform (GPL) file. If you specify only a file name, that file must be on the MATLAB® search path or in the MATLAB Current Folder.

  • Character array or column vector of strings that contains the text of a GEO SOFT format file.


You can use the getgeodata function with the 'ToFile' property to retrieve GEO SOFT format data from the GEO database and create a GEO SOFT format file.

TimeOutValueConnection timeout in seconds, specified as a positive scalar. The default value is 5. For details, see here.

Output Arguments

GEOSOFTDataMATLAB structure containing information from a GEO SOFT format file.


GEOSOFTData = geosoftread(File) reads a Gene Expression Omnibus (GEO) SOFT format Sample file (GSM), Data Set file (GDS), or Platform (GPL) file, and then creates a MATLAB structure, GEOSOFTData, with the following fields.

ScopeType of file read (SAMPLE, DATASET, or PLATFORM)
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 geosoftread function supports Sample (GSM), Data Set (GDS), and Platform (GPL) records.

GEOSOFTData = geosoftread(File,'TimeOut',TimeOutValue) sets the connection timeout (in seconds) to read data from a remote file or URL.


collapse all

Download the SOFT format sample (GSM) file from the Gene Expression Omnius GEO web site to a file.

geodata = getgeodata('GSM3258','ToFile','GSM3258.txt');

Use geosoftread to read a local copy of the GSM file, instead of accessing it from the GEO web site.

geodata = geosoftread('GSM3258.txt');

Download the GDS (GEO Data Set) file containing data for the molecular investigation of photosynthesis in proteobacteria.

gdsdata = geosoftread('GDS329.soft')
gdsdata = struct with fields:
                 Scope: 'DATASET'
             Accession: 'GDS329'
                Header: [1×1 struct]
    ColumnDescriptions: {6×1 cell}
           ColumnNames: {6×1 cell}
                 IDRef: {5355×1 cell}
            Identifier: {5355×1 cell}
                  Data: [5355×6 double]

Version History

Introduced before R2006a