29.2.8. Experimental platforms

This section gives an overview of experimental platforms and how they are used to enable data storage in files instead of in the database.

See also

UML diagram

Figure 29.9. Experimental platforms

Experimental platforms

Platforms

The PlatformData holds information about a platform. A platform can have one or more PlatformVariant:s. Both the platform and variant are identified by an external ID that is fixed and can't be changed. Affymetrix is an example of a platform. If the fileOnly flag is set data for the platform can only be stored in files and not imported into the database. If the flag is not set data can be imported into the database. In the latter case, the rawDataType property can be used to lock the platform to a specific raw data type. If the value is null the platform can use any raw data type.

Each platform and it's variant can be connected to one or more DataFileTypeData items. This item describes the kind of files that are used to hold data for the platform and/or variant. The file types are re-usable between different platforms and variants. Note that a file type may be attached to either only a platform or to a platform with a variant. File types attached to platforms are inherited by the variants. The variants can only define additional file types, not remove or redefine file types that has been attached to the platform.

The file type is also identified by a fixed, non-changable external ID. The itemType property tells us what type of item the file holds data for (ie. array design or raw bioassay). It also links to a FileType which is the generic type of data in the file. This allows us to query the database for, as an example, files with the generic type FileType.RAW_DATA. If we are in an Affymetrix experiment we will get the CEL file, for another platform we will get another file.

The required flag in PlatformFileTypeData is used to signal that the file is a required file. This is not enforeced by the core. It is intended to be used by client applications for creating a better GUI and for validation of an experiment.

FileStoreEnabled items and data files

An item must implement the FileStoreEnabledData interface to be able to store data in files instead of in the database. The interface creates a link to a FileSetData object, which can hold several FileSetMemberData items. Each member points to specific FileData item. A file set can only store one file of each DataFileTypeData.