Open Microscopy Environment
OME XML Schema February 2008 - Update Version 2 May 2008
Author: Ilya G. Goldberg, Andrew J Patterson
Copyright 2002 - 2008 OME. All rights reserved.
The wave number, black level, white level and optional gamma for the blue channel of an RGB image.
Pixel values between BlackLevel and WhiteLevel will be assigned values 0-255, respectively.
Values below BlackLevel or above WhiteLevel will be assigned 0 and 255 respectively.
'The black level is used to scale pixel values to an 8 bit colorspace for display. For example, a 16 bit pixel value must be downscaled to fit an 8 bit display. Any pixel value below the black value will be set to the minimum value of the scale range (0). Because the file schema offers support for non-integer pixel types, this is stored as a floating point number to offer maximum generality. Specifying a decimal value for an integer pixel type is ill defined. Valid range of values for black level is less than the white level and within the data range for the pixel type.'
'The white level is used to scale pixel values to an 8 bit colorspace for display. For example, a 16 bit pixel value must be downscaled to fit an 8 bit display. Any pixel value above the white value will be set to the maximum value of the scale range (255). Because the file schema offers support for non-integer pixel types, this is stored as a floating point number to offer maximum generality. Specifying a decimal value for an integer pixel type is ill defined. The valid range for white level is greater than the black level and within the data range for the pixel type.'
Logical Channels are composed of ChannelComponents. The Index attribute is an index into the channel dimension of the 5-D pixel array.
If the Logical Channel specified by LogicalChannel has a PhotometricInterpretation attribute, then the ColorDomain attribute specifies which color channel
this ChannelComponent belongs to. For example 'R' for an 'RGB' PhotometricInterpretation.
'Specifies which component of Photometric Interpretation to map a channel component to. i.e. w/ RGB this could be \'R\', \'G\', \'B\' This can be null if a channel maps to a logical channel but is not included in the photometric interpretation. If this was null then the channel specified would normally be ignored.'
The Contact element describes the contact person for a group of experimenters - typically a project leader or lab manager.
This person is specified as a reference to an OME experimenter.
An element specifying a collection of images that are always processed together.
Images can belong to more than one Dataset, and a Dataset may contain more than one Image.
Images contain one or more DatasetRef elements to specify what datasets they belong to.
Once a Dataset has been processed in any way, its collection of images cannot be altered.
Whether or not the list of Images in this dataset can be altered is specified by the Locked attribute.
The ExperimenterRef and GroupRef elements specify the person and group this Dataset belongs to.
Projects may contain one or more Datasets, and Datasets may belong to one or more Projects.
This relationship is specified by listing ProjectRef elements within the Dataset element.
The DatasetRef element refers to a Dataset by specifying the Dataset ID attribute.
One or more DatasetRef elements may be listed within the Image element to specify what Datasets
the Image belongs to.
Just some free-form text to describe Images, Screens and Projects.
The content model is now String.
This is no longer the correct place for an XML sub-document
Either
- use CustomAttributes instead
Or
- define your own xml tree outside the OME node and link to the OME objects using references to the IDs
The type of detector used to capture the image.
The Detector ID can be used as a reference within the LogicalChannel element in the Image element.
The Type attribute can be set to 'CCD','Intensified-CCD','Analog-Video','PMT','Photodiode','Spectroscopy','Life-time-Imaging','Correlation-Spectroscopy','FTIR'.
Added new types EM-CCD, APD, and CMOS - ajp
Added new optional attributes AmplificationGain and Zoom - ajp
Logical Diagram
XML Instance Representation
<Detector Manufacturer="xsd:string[0..1]" Model="xsd:string[0..1]" SerialNumber="xsd:string[0..1]" Gain="xsd:float[0..1]" Voltage="xsd:float[0..1]" Offset="xsd:float[0..1]" Zoom="xsd:float[0..1]" AmplificationGain="xsd:float[0..1]" ID="DetectorID[1]" Type="xsd:string (value comes from list: {'CCD'|'IntensifiedCCD'|'AnalogVideo'|'PMT'|'Photodiode'|'Spectroscopy'|'LifetimeImaging'|'CorrelationSpectroscopy'|'FTIR'|'EM-CCD'|'APD'|'CMOS'|'Unknown'})[1]"/>
'The speed at which the detector can count pixels. Units of ReadOutRate is MHz. This is the bytes per second that can be read from the detector (like a baud rate).'
There is optionally one of these per Image. They provide support for the Origional OME Perl server.
This specifies mapping of image channel components to RGB or greyscale colorspace with one byte per pixel per RGB channel.
RedChannel, GreenChannel, BlueChannel, and GreyChannel specify the scaling of pixel values to 8-bit colorspace values.
Display indicates to display the image as Greyscale or RGB.
The Projection element specifies that the display is a maximum intensity projection.
The range of Z-sections for the projection is specified with the ZStart and ZStop attributes.
The Time element restricts the range of timepoints displayed.
The range of timepoints to display is specified by the TStart and TStop attributes.
The MIME type of the desired video format is specified by Movie's MIMEtype attribute.
The ROI element originally describes a 3-D region of interest. It now use the new ROI
model. It is up to the loader to convert the new ROI structure to the old format if
it is required. It is up to the viewer to either display the ROI only, or to simply
mark it somehow.
Logical Diagram
XML Instance Representation
<DisplayOptions Zoom="xsd:float[0..1]" ID="DisplayOptionsID[1]" Display="xsd:string (value comes from list: {'RGB'|'Grey'})[1]
'Specifies to display the image as greyscale or RGB'
This element describes the type of experiment. The required Type attribute must contain one or more entries from the following list:
FP FRET Time-lapse 4-D+ Screen Immunocytochemistry FISH Electrophysiology Ion-Imaging Colocalization PGI/Documentation
FRAP Photoablation Optical-Trapping Photoactivation Fluorescence-Lifetime Spectral-Imaging Other
FP refers to fluorescent proteins, PGI/Docuemntation is not a 'data' image.
The optional Description element may contain free text to further describe the experiment.
Added Type Photobleaching - ajp
Logical Diagram
XML Instance Representation
<Experiment Type="list of: [ xsd:string (value comes from list: {'FP'|'FRET'|'TimeLapse'|'FourDPlus'|'Screen'|'Immunocytochemistry'|'Immunofluorescence'|'FISH'|'Electrophysiology'|'IonImaging'|'Colocalization'|'PGIDocumentation'|'FluorescenceLifetime'|'SpectralImaging'|'Photobleaching'|'Other'}) ][1]" ID="ExperimentID[1]">
This element describes a person who performed an imaging experiment.
This person may also be a user of the OME system, in which case the OMEName element contains their login name.
Experimenters may belong to one or more groups which are specified using one or more GroupRef elements.
Note while FirstName, LastName, Email and OMEName are all optional to be valid an Experimenter must have AT LEAST ONE present
The Filament element is used to describe various kinds of filament bulbs such as Incadescent or Halogen.
The Power of the Filament is now stored in the LightSource.
Logical Diagram
XML Instance Representation
<Filament Type="xsd:string (value comes from list: {'Incandescent'|'Halogen'|'Unknown'})[1]"/>
A filter is either an excitation or emission filters.
There should be one filter element specified per wavelength in the image.
The channel number associated with a filter set is specified in LogicalChannel's required ChannelComponent element and its Index attribute.
It is based on the FilterSpec type, so has the required attributes Manufacturer, Model, and LotNumber.
It may also contain a Type attribute which may be set to
'LongPass', 'ShortPass', 'BandPass', or 'MultiPass'.
It can be associated with an optional FilterWheel - Note: this is not the same as a FilterSet
Logical Diagram
XML Instance Representation
<Filter Manufacturer="xsd:string[1]" Model="xsd:string[1]" LotNumber="xsd:string[0..1]" Type="xsd:string (value comes from list: {'LongPass'|'ShortPass'|'BandPass'|'MultiPass'})[0..1]" FilterWheel="xsd:string[0..1]
'A filter \'wheel\' in OME can refer to any arrangement of filters in a filter holder of any shape. It could, for example, be a filter slider.'
The wave number, black level, white level and optional gamma for the green channel of an RGB image.
Pixel values between BlackLevel and WhiteLevel will be assigned values 0-255, respectively.
Values below BlackLevel or above WhiteLevel will be assigned 0 and 255 respectively.
'The black level is used to scale pixel values to an 8 bit colorspace for display. For example, a 16 bit pixel value must be downscaled to fit an 8 bit display. Any pixel value below the black value will be set to the minimum value of the scale range (0). Because the file schema offers support for non-integer pixel types, this is stored as a floating point number to offer maximum generality. Specifying a decimal value for an integer pixel type is ill defined. Valid range of values for black level is less than the white level and within the data range for the pixel type.'
'The white level is used to scale pixel values to an 8 bit colorspace for display. For example, a 16 bit pixel value must be downscaled to fit an 8 bit display. Any pixel value above the white value will be set to the maximum value of the scale range (255). Because the file schema offers support for non-integer pixel types, this is stored as a floating point number to offer maximum generality. Specifying a decimal value for an integer pixel type is ill defined. The valid range for white level is greater than the black level and within the data range for the pixel type.'
The wave number, black level, white level and optional gamma for a greyscale image.
The GreyChannel element may contain an optional ColorMap attribute, which can be set to 'Greyscale', 'Spectrum' or 'Blackbody'
Pixel values between BlackLevel and WhiteLevel will be assigned values 0-255, inclusive.
Values below BlackLevel or above WhiteLevel will be assigned 0 and 255 respectively.
'The black level is used to scale pixel values to an 8 bit colorspace for display. For example, a 16 bit pixel value must be downscaled to fit an 8 bit display. Any pixel value below the black value will be set to the minimum value of the scale range (0). Because the file schema offers support for non-integer pixel types, this is stored as a floating point number to offer maximum generality. Specifying a decimal value for an integer pixel type is ill defined. Valid range of values for black level is less than the white level and within the data range for the pixel type.'
'The white level is used to scale pixel values to an 8 bit colorspace for display. For example, a 16 bit pixel value must be downscaled to fit an 8 bit display. Any pixel value above the white value will be set to the maximum value of the scale range (255). Because the file schema offers support for non-integer pixel types, this is stored as a floating point number to offer maximum generality. Specifying a decimal value for an integer pixel type is ill defined. The valid range for white level is greater than the black level and within the data range for the pixel type.'
" Gamma="xsd:float[0..1]" isOn="xsd:boolean[0..1]" ColorMap="xsd:string (value comes from list: {'Greyscale'|'Spectrum'|'Blackbody'})[0..1]"/>
The Group ID and Name attributes are required.
Contact information should be specified for the leader of the group and a contact person.
The Leader and/or Contact are themselves experimenters defined in OME, but they need not have OMENames.
This element describes the actual image and its meta-data.
The elements that are references (ending in Ref) refer to elements defined outside of the Image element.
If any of the required Image attributes are missing, its guaranteed to be an invalid document.
The required elements are CreationDate and Pixels.
ExperimenterRef is required for all Images with well formed LSIDs.
ImageType is a vendor-specific designation of the type of image this is.
Examples of ImageType include 'STK', 'SoftWorx', etc.
The Name attributes are in all cases the name of the element instance. In this case, the name of the image,
not necessarily the filename.
PixelSize* is in microns.
TimeIncrement is used for time series that have a global timing specification instead of per-timepoint timing info.
For example in a video stream. The unit is seconds.
Similarly, WaveStart and WaveIncrement are used in spectral images like FTIR. These are both positive integers.
'More than one Pixels element may be associated with an Image. An Image will however have one \"primary\" set of Pixels specified with this attribute.'
The organizing structure that people belong to other than groups. A university, or company, etc.
We do not specify a department element, and do not mean for Institution to be used in this way.
We simply wish to say XXX at YYY. Where YYY has a better chance of being tied to a geographically fixed location
and of being more recognizable than a group of experimenters.
This element describes the instrument used to capture the Image.
It is primarily a container for manufacturer's model and catalog numbers for the
Microscope, LightSource, Detector, Objective and Filters components.
Additionally, one or more OTF elements may be specified, describing the optical transfer function under different conditions.
The Objective element contains the additional elements LensNA and Magnification.
The Filters element can be composed either of separate excitation, emission filters and a dichroic mirror
or a single filter set. Within the Image itself, a reference is made to this one Filter element.
The OTF element contains an optical transfer function.
The same OTF can be used for all wavelengths, or there may be one per wavelength.
There may be multiple light sources, detectors, objectives and filters on a microscope.
Each of these has their own ID attribute, which can be referred to from LogicalChannel.
It is understood that the light path configuration can be different for each channel,
but cannot be different for each timepoint or each plane of an XYZ stack.
Laser types are specified using two attributes - the Type and the lasing medium (Medium). Type is a string which may be set to:
'Excimer','Gas','Metal Vapor','Solid State','Dye','Semiconductor', or 'Free Electron'. The Medium attribute specifies the actual lasing medium
for a given laser type (for example, 'Nd-YAG'). Additionally, the Wavelength (in nm), whether or not the laser is Tuneable, and any FrequencyMultiplication that may be specified.
The Pulse attribute can be set to 'CW' (Continuous Wave),','Single','Q-Switched','Repetitive','Mode-Locked'.
The Power attribute specifies the nominal laser power in watts.
The Laser element may contain a Pump sub-element which refers to a LightSource used as a laser pump.
Removed Power - ajp
Added RepetitionRate - The is the rate in Hz at which the laser pulses. ajp
Added PockelCell attribute - ajp
Logical Diagram
XML Instance Representation
<Laser Type="xsd:string (value comes from list: {'Excimer'|'Gas'|'MetalVapor'|'SolidState'|'Dye'|'Semiconductor'|'FreeElectron'|'Unknown'})[1]" LaserMedium="LaserMedia[1]" Wavelength="xsd:positiveInteger[0..1]" FrequencyMultiplication="xsd:positiveInteger[0..1]" Tuneable="xsd:boolean[0..1]" Pulse="xsd:string (value comes from list: {'CW'|'Single'|'QSwitched'|'Repetitive'|'ModeLocked'})[0..1]" PockelCell="xsd:boolean[0..1]" RepetitionRate="xsd:boolean[0..1]
'The is the rate in Hz at which the laser pulses if the Pulse type is \'Repetitive\''
The lightsource for the instrument. An instrument may have several light sources.
The type of lightsource is specified by one of the child-elements which are 'Laser', 'Filament', 'Arc' or 'LightEmittingDiode'.
Each of the light source types has its own Type attribute to further differentiate the light source
(eg, Nd-YAG for Laser or Hg for Arc).
A LightSource ID must be specified for each light source,
and the individual light sources can be referred to by their LightSource IDs (eg from LogicalChannel).
Lasers may have a Pump sub-element which refers to another LightSource used as a laser pump.
Moved Power into LightSource from Laser - ajp
There must be one per channel in the Image, even for a single-plane image. In OME, Channels (e.g. 'FITC', 'Texas Red', etc) are specified as Logical Channels,
And information about how each of them was acquired is stored in the various optional *Ref elements. Each Logical Channel is composed of one or more
ChannelComponents. For example, an entire spectrum in an FTIR experiment may be stored in a single Logical Channel with each discrete wavenumber of the spectrum
constituting a ChannelComponent of the FTIR Logical Channel. An RGB image where the Red, Green and Blue components do not reflect discrete probes but are
instead the output of a color camera would be treated similarly - one Logical channel with three ChannelComponents in this case.
The total number of ChannelComponents for a set of pixels must equal SizeC.
The SamplesPerPixel attribute is the number of channel components in the logical channel.
The IlluminationType attribute is a string enumeration which may be set to 'Transmitted', 'Epifluorescence', 'Oblique', or 'NonLinear'.
The optional PinholeSize attribute allows specifying adjustable pin hole diameters for confocal microscopes.
The PhotometricInterpretation attribute is used to describe how to display a multi-component channel. This attribute may be set to:
'monochrome', 'RGB', 'ARGB', 'CMYK', 'HSV'. The default for single-component channels is 'monochrome'.
The Mode attribute describes the type of microscopy performed for each channel. This may be set to:
'Wide-field','Wide-field','Laser Scanning Microscopy','Laser Scanning Confocal','Spinning Disk Confocal','Slit Scan Confocal','Multi-Photon Microscopy',
'Structured Illumination','Single Molecule Imaging','Total Internal Reflection','Fluorescence-Lifetime','Spectral Imaging',
'Fluorescence Correlation Spectroscopy','Near Field Scanning Optical Microscopy','Second Harmonic Generation Imaging'.
The ContrastMethod attribute may be set to 'Brightfield','Phase','DIC','Hoffman Modulation','Oblique Illumination','Polarized Light','Darkfield','Fluorescence'.
The ExWave, EmWave and Fluor attributes allow specifying the nominal excitation and emission wavelengths and the type of fluor being imaged in a particular channel.
The Fluor attribute is used for fluorescence images, while the Name attribute is used to name channels that are not imaged using fluorescence techniques.
The user interface logic for labeling a given channel for the user should use the first existing attribute in the following sequence:
Name -> Fluor -> EmWave -> ChannelComponent/Index.
The NDfilter attribute is used to specify (in O.D. units) the combined effect of any neutral density filters used.
Logical Diagram
XML Instance Representation
<LogicalChannel ID="LogicalChannelID[1]" Name="xsd:string[0..1]" SamplesPerPixel="xsd:integer[0..1]" SecondaryEmissionFilter="FilterID[0..1]" SecondaryExcitationFilter="FilterID[0..1]" IlluminationType="xsd:string (value comes from list: {'Transmitted'|'Epifluorescence'|'Oblique'|'NonLinear'})[0..1]
'Attribute is called Illumination in EA diagram - ajp Added NonLinear - ajp'
" PinholeSize="xsd:float[0..1]" PhotometricInterpretation="xsd:string (value comes from list: {'Monochrome'|'RGB'|'ARGB'|'CMYK'|'HSV'|'ColorMap'})[0..1]
'To Do - Add more documentation - ajp Added ColorMap - ajp'
" Mode="xsd:string (value comes from list: {'WideField'|'LaserScanningMicroscopy'|'LaserScanningConfocal'|'SpinningDiskConfocal'|'SlitScanConfocal'|'MultiPhotonMicroscopy'|'StructuredIllumination'|'SingleMoleculeImaging'|'TotalInternalReflection'|'FluorescenceLifetime'|'SpectralImaging'|'FluorescenceCorrelationSpectroscopy'|'NearFieldScanningOpticalMicroscopy'|'SecondHarmonicGenerationImaging'|'Other'})[0..1]" ContrastMethod="xsd:string (value comes from list: {'Brightfield'|'Phase'|'DIC'|'HoffmanModulation'|'ObliqueIllumination'|'PolarizedLight'|'Darkfield'|'Fluorescence'})[0..1]" ExWave="xsd:positiveInteger[0..1]" EmWave="xsd:positiveInteger[0..1]" Fluor="xsd:string[0..1]" NdFilter="xsd:float[0..1]" PockelCellSetting="xsd:integer[0..1]">
'This is true if the pixel data was written in BigEndian order. This is dependent on the system architecture of the machine that wrote the pixels. True for essentially all modern CPUs other than Intel and Alpha. All pixel data must be written in the same endian order.'