← Back to packages

Package biopb.ome

Message AffineTransform

Message Annotation

Message Arc

Message BinData

Message Channel

Message Dataset

Message Detector

Message DetectorSetting

Message Dichroic

Message Ellipse

Message Experiment

Message Experimenter

Message ExperimenterGroup

Message Filament

Message Filter

Message FilterSet

Message Folder

Message GenericExcitationSource

Message Image

Message ImagingEnvironment

Message Instrument

Message Label

Message Laser

Message LightEmittingDiode

Message LightPath

Message LightSource

Message LightSourceSetting

Message Line

Message ManufacturerSpec

Message Mask

Message Metadata

Message MetadataRef

Message MicrobeamManipulation

Message Microscope

Message OME

Message Objective

Message ObjectiveSetting

Message Pixels

Message Plane

Message Plate

Message PlateAcquisition

Message Point

Message PolyLine

Message Polygon

Message Project

Message ROI

Message Reagent

Message Rectangle

Message Rights

Message Screen

Message Shape

Message StageLabel

Message TransmittanceRange

Message Well

Message WellSample

Enum Correction

Enum Endianness

Enum ExperimentType

Enum FillRule

Enum ManipulationType

Enum Marker

Enum NamingConvention

Enum PixelType

Enum Type

Enum Type

Enum Type

Enum Type

Enum Type

Enum Type

Messages

message AffineTransform

A matrix used to transform the shape. ⎡ A00, A01, A02 ⎤ ⎢ A10, A11, A12 ⎥ ⎣ 0, 0, 1 ⎦

Field Type Description
1 a00 float
2 a01 float
3 a02 float
4 a10 float
5 a11 float
6 a12 float

message Annotation

Our approach to annotation is much less strcutured than the orgianl OME-XML. The main content is simple an Any object. In other words, you can annotate with any data structure understood by protobuf

Field Type Description
1 annotation google.protobuf.Any
2 description string

A description for the annotation. [plain-text multi-line string]

3 annotator_id string

The Annotator is the person who attached this annotation. e.g. If UserA annotates something with TagB, owned by UserB, UserA is still the Annotator.

message Arc

The Arc element is used to describe various kinds of Arc lamps - Hg, Xe, HgXe. The Power of the Arc is now stored in the LightSource.

Field Type Description
2 type biopb.ome.Arc.Type

message BinData

NOTE: in OME-XML this element are base64-encoded. We use binary becasue this is protobuf. We also do not specify compression scheme (and bindata length post compression), because it should be handled by a different software layer, e.g. grpc.

Field Type Description
1 data bytes
2 endianness biopb.ome.BinData.Endianness

message Channel

There must be one per channel in the Image, even for a single-plane image. 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 IlluminationType attribute is a string enumeration which may be set to 'Transmitted', 'Epifluorescence', 'Oblique', or 'NonLinear'. The user interface logic for labeling a given channel for the user should use the first existing attribute in the following sequence: Name -> Fluor -> EmissionWavelength -> ChannelComponent/Index.

Field Type Description
2 name string
3 light_source_setting biopb.ome.LightSourceSetting
4 detector_setting biopb.ome.DetectorSetting
5 FilterSet_id string
6 annotation_ids repeated string
7 light_path biopb.ome.LightPath
8 samples_per_pixel optional uint32

The number of samples the detector takes to form each pixel value. [units:none] Note: This is not the same as "Frame Averaging" - see Integration in DetectorSettings

9 illumination_type string

The method of illumination used to capture the channel. NOTE: OME-XML uses enum

10 pinhole_size optional float

The optional PinholeSize attribute allows specifying adjustable pin hole diameters for confocal microscopes. Units are set by PinholeSizeUnit.

11 pinhole_size_unit string

The units of the pin hole diameter for confocal microscopes - default:microns[µm].

12 acquisition_model string

AcquisitionMode describes the type of microscopy performed for each NOTE: OME-XML uses enum

13 contrast_method string

ContrastMethod describes the technique used to achieve contrast for each channel NOTE: OME-XML uses enum

14 excitation_wavelength optional float

Wavelength of excitation for a particular channel. Units are set by ExcitationWavelengthUnit.

15 exitation_wavelength_unit string

The units of the wavelength of excitation - default:nanometres[nm].

16 emission_wavelength optional float

Wavelength of emission for a particular channel. Units are set by EmissionWavelengthUnit.

17 emission_wavelength_unit string

The units of the wavelength of emission - default:nanometres[nm].

18 fluor string

The Fluor attribute is used for fluorescence images. This is the name of the fluorophore used to produce this channel [plain text string]

19 nd_filter optional float

The NDfilter attribute is used to specify the combined effect of any neutral density filters used. The amount of light the filter transmits at a maximum [units:none] A fraction, as a value from 0.0 to 1.0.

NOTE: This was formerly described as "units optical density expressed as a PercentFraction". This was how the field had been described in the schema from the beginning but all the use of it has been in the opposite direction, i.e. as a amount transmitted, not the amount blocked. This change has been made to make the model reflect this usage.

20 pockle_cell_setting optional int32

The PockelCellSetting used for this channel. This is the amount the polarization of the beam is rotated by. [units:none]

21 color optional uint32

A color (RGBA) used to render this channel If unset, the color should be solid white

message Dataset

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. The ExperimenterRef and ExperimenterGroupRef 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 DatasetRef elements within the Project element.

Field Type Description
2 name string

A name for the dataset that is suitable for presentation to the user.

3 description string

A description for the dataset. [plain-text multi-line string]

4 image_ids repeated string

references to other metadata

5 annotation_ids repeated string
6 experimenter_id string
7 experimenter_group_id string

message Detector

The type of detector used to capture the image. The Detector ID can be used as a reference within the Channel element in the Image element. The values stored in Detector represent the fixed values, variable values modified during the acquisition go in DetectorSettings

Each attribute now has an indication of what type of detector it applies to. This is preparatory work for cleaning up and possibly splitting this object into sub-types.

Field Type Description
2 manufacturer_spec biopb.ome.ManufacturerSpec
3 type biopb.ome.Detector.Type
4 gain optional float

The Detector Gain for this detector, as a float. [units:none] {used:CCD,EMCCD,PMT}

5 voltage optional float

The Voltage of the detector (e.g. PMT voltage) as a float. {used:PMT} Units are set by VoltageUnit.

6 voltage_unit string
7 offset optional float

The Detector Offset. [units:none] {used:CCD,EMCCD}

8 zoom optional float

The fixed Zoom for a detector. [units:none] {used:PMT}

9 amplification_gain optional float

Gain applied to the detector signal. This is the electronic gain (as apposed to the inherent gain) that is set for the detector. [units:none] {used:EMCCD#EMGain}

10 annotation_ids repeated string

references

message DetectorSetting

This holds the setting applied to a detector as well as a reference to the detector. The ID is the detector used in this case. The values stored in DetectorSettings represent the variable values, fixed values not modified during the acquisition go in Detector.

Each attribute now has an indication of what type of detector it applies to. This is preparatory work for cleaning up and possibly splitting this object into sub-types.

Field Type Description
1 detector_id string
2 offset optional float

The Offset of the detector. [units none] {used:CCD,EMCCD}

3 gain optional float

The Gain of the detector. [units:none] {used:CCD,EMCCD,PMT}

4 voltage optional float

The Voltage of the detector. {used:PMT} Units are set by VoltageUnit.

5 voltage_unit string

The units of the Voltage of the detector - default:volts[V]

6 zoom optional float

The Zoom or "Confocal Zoom" or "Scan Zoom" for a detector. [units:none] {used:PMT}

7 readout_rate optional float

The speed at which the detector can count pixels. {used:CCD,EMCCD} This is the bytes per second that can be read from the detector (like a baud rate). Units are set by ReadOutRateUnit.

8 readout_rate_unit string

The units of the ReadOutRate - default:megahertz

9 binning optional uint32

Represents the number of pixels that are combined to form larger pixels. {used:CCD,EMCCD} Note: was an enum in OME-XML

10 integration optional uint32

This is the number of sequential frames that get averaged, to improve the signal-to-noise ratio. [units:none] {used:CCD,EMCCD}

message Dichroic

The dichromatic beamsplitter or dichroic mirror used for this filter combination.

Field Type Description
2 manufacturer_spec biopb.ome.ManufacturerSpec
6 annotation_ids repeated string

message Ellipse

A simple ellipse object. If rotation is required apply a transformation at the Shape level.

Field Type Description
1 x float

The X coordinate of the center of the ellipse. [units pixels]

2 y float

The Y coordinate of the center of the ellipse. [units pixels]

3 radius_x float

The horizontal radius of the ellipse. [units pixels]

4 radius_y float

The vertical radius of the ellipse. [units pixels]

message Experiment

This element describes the type of experiment.

Field Type Description
2 type biopb.ome.Experiment.ExperimentType
3 description string

A description for the dataset. [plain-text multi-line string]

4 microbeam_manipulations map<string, MicrobeamManipulation>
5 experimenter_id string

This is a link to the Experimenter who conducted the experiment

message Experimenter

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 UserName element contains their login name. Experimenters may belong to one or more groups which are specified using one or more ExperimenterGroupRef elements.

Field Type Description
2 first_name string

First name, sometime called christian name or given name or forename. [plain text string]

3 middle_name string

Any other names. [plain text string]

4 last_name string

A person's last name sometimes called surname or family name. [plain text string]

5 email string

A person's email address. [valid email address as string]

6 institution string

A person's Institution

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. [plain text string]

7 username string

This is the username of the experimenter (in a 'unix' or 'database' sense). [plain text string]

8 annotation_ids repeated string

references

message ExperimenterGroup

The ExperimenterGroupID is required. Information should ideally be specified for at least one Leader as a contact for the group. The Leaders are themselves Experimenters.

Field Type Description
2 name string
3 description string

A description for the group. [plain-text multi-line string]

4 experimenter_ids repeated string

Group members

5 leader_experimenter_ids repeated string

Group leader(s)

message Filament

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.

Field Type Description
2 type biopb.ome.Filament.Type

message Filter

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 Channel. 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', 'MultiPass', 'Dichroic', 'NeutralDensity', 'Tuneable' or 'Other'. It can be associated with an optional FilterWheel - Note: this is not the same as a FilterSet

Field Type Description
2 manufacturer_spec biopb.ome.ManufacturerSpec
3 type biopb.ome.Filter.Type
4 transmittence_range biopb.ome.TransmittanceRange
5 filter_wheel string

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. [plain text string]

6 annotation_ids repeated string

message FilterSet

Filter set manufacturer specification

Field Type Description
2 manufacturer_spec biopb.ome.ManufacturerSpec
3 excitation_filter_id string

The Filters placed in the Excitation light path.

4 dichroic_filter_id string
5 emission_filter_id string

The Filters placed in the Emission light path.

6 annotation_ids repeated string

message Folder

An element specifying a possibly heterogeneous collection of data. Folders may contain Folders so that data may be organized within a tree of Folders. Data may be in multiple Folders but a Folder may not be in more than one other Folder.

Field Type Description
2 name string

A name for the folder that is suitable for presentation to the user.

3 description string

A description for the folder. [plain-text multi-line string]

4 sub_folders map<string, Folder>

Subfolders. This is different from OME-XML implementation, which uses references. Here we use the sematically more nataul recusive composition instead. Composition avoids circular references and is well-supported in protobuf.

5 image_ids repeated string

References to other metadata

6 annotation_ids repeated string
7 roi_ids repeated string

message GenericExcitationSource

The GenericExcitationSource element is used to represent a source as a collection of key/value pairs, stored in a Map. The other lightsource objects should always be used in preference to this if possible.

Field Type Description
2 attributes map<string, string>

message Image

This element describes the actual image and its meta-data. The elements that are references (ending in Ref or Settings) refer to elements defined outside of the Image element. Ref elements are simple links, while Settings elements are links with additional values.

If any of the required Image attributes or elements are missing, its guaranteed to be an invalid document.

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. Physical size of pixels are microns[µm].

Field Type Description
2 name string
3 description string

A description for the image. [plain-text multi-line string]

4 acquisition_date google.protobuf.Timestamp

Even only the date information is relavent here, we use the datatime structure to be consistent with the OME-XML

5 experimenter_id string

References

6 experiment_id string
7 experiment_group_id string
8 instrument_id string
9 microbeam_manipulation_ids repeated string
10 roi_ids repeated string
11 annotation_ids repeated string
12 objective_setting biopb.ome.ObjectiveSetting

Settings

13 imaging_environment biopb.ome.ImagingEnvironment
14 stage_label biopb.ome.StageLabel
15 pixels biopb.ome.Pixels

pixle

message ImagingEnvironment

This describes the environment that the biological sample was in during the experiment.

Field Type Description
1 temperature optional float

The Temperature is the define units.

2 temperature_unit string

The units the Temperature is in - default:Celsius[°C].

3 air_pressure optional float

AirPressure is the define units.

4 air_pressure_unit string

The units the AirPressure is in - default:millibars[mbar].

5 humidity optional float

Humidity around the sample [units:none] A fraction, as a value from 0.0 to 1.0.

6 co2_percent optional float

Carbon Dioxide concentration around the sample [units:none] A fraction, as a value from 0.0 to 1.0.

message Instrument

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. 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. 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 Channel. 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.

Field Type Description
1 microscope biopb.ome.Microscope
2 light_sources map<string, LightSource>
3 detectors map<string, Detector>
4 objectives map<string, Objective>
5 filter_sets map<string, FilterSet>
6 filters map<string, Filter>
7 dichroics map<string, Dichroic>
8 annotation_ids repeated string

message Label

The text label. Any transformation should be applied at the shape level.

Field Type Description
1 x float

This defines the X coordinate of the current text position of the first character in the string. [units pixels]

required

2 y float

This defines the Y coordinate of the current text position of the first character in the string. [units pixels]

required

message Laser

Laser types are specified using two attributes - the Type and the LaserMedium.

Field Type Description
2 type biopb.ome.Laser.Type
3 laser_medium string

The Medium attribute specifies the actual lasing medium for a given laser type. NOTE: OME-XML uses Enum here

4 Wavelength optional float

The Wavelength of the laser. Units are set by WavelengthUnit.

5 wavelength_unit string

default is "nm"

6 fequency_multiplication optional int32

FrequencyMultiplication that may be specified. [units:none]

7 tunable optional bool

Whether or not the laser is Tuneable [flag]

8 pulse string

The Pulse mode of the laser, e.g. "CW", "QSwitch" NOTE: OME-XML uses an Enum here

9 pockel_cell optional bool

If true the laser has a PockelCell to rotate the polarization of the beam. [flag]

10 repetition_rate optional uint32

The is the rate in Hz at which the laser pulses if the Pulse type is 'Repetitive'. hertz[Hz] Units are set by RepetitionRateUnit.

11 repetition_rate_unit string

message LightEmittingDiode

The LightEmittingDiode element is used to describe various kinds of LED lamps.

As the LightEmittingDiode is inside a LightSource it already has available the values from ManufacturerSpec (Manufacturer, Model, SerialNumber, LotNumber) And the values from LightSource which includes Power in milliwatts

We have looked at extending this element but have had a problem producing a generic solution.

Possible attributes talked about adding include: Power in lumens - but this is complicated by multi-channel devices like CoolLED where each channel's power is different Wavelength Range - not a simple value so would require multiple attributes or a child element Angle of Projection - this would be further affected by the optics used for filtering the naked LED or that combine power from multiple devices

These values are further affected if you over-drive the LED resulting in a more complex system

Another issue is that LED's may not be used directly for illumination but as drivers for secondary emissions from doped fiber optics. This would require the fiber optics to be modeled.

Thanks to Paul Goodwin of Applied Precision of information about this topic.

Field Type Description

message LightPath

A description of the light path

Field Type Description
1 excitation_filter_ids repeated string

The Filters placed in the Excitation light path.

2 emission_filter_ids repeated string

The Filters placed in the Emission light path.

3 dichroic_id string
4 annotation_ids repeated string

message LightSource

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

Field Type Description
2 manufacturer_spec biopb.ome.ManufacturerSpec
3 power optional float

The light-source power. Units are set by PowerUnit.

4 power_units string

The units of the Power - default:milliwatts[mW]

5 annotation_ids string

References

oneof light_source
6 laser biopb.ome.Laser
7 arc biopb.ome.Arc
8 filament biopb.ome.Filament
9 light_emitting_diode biopb.ome.LightEmittingDiode
10 generic_excitation_source biopb.ome.GenericExcitationSource

message LightSourceSetting

Field Type Description
1 light_source_id string

required

2 attenuation optional float

The Attenuation of the light source [units:none] A fraction, as a value from 0.0 to 1.0.

3 wavelength optional float

The Wavelength of the light source. Units are set by WavelengthUnit.

4 wavelength_unit string

The units of the Wavelength of the light source - default:nanometres[nm]

message Line

A straight line defined by it's end points.

Field Type Description
1 x1 float

The X coordinate of the start of the line. [units pixels]

2 y1 float

The Y coordinate of the start of the line. [units pixels]

3 x2 float

The X coordinate of the end of the line. [units pixels]

4 y2 float

The Y coordinate of the end of the line. [units pixels]

message ManufacturerSpec

This is the base from which many microscope components are extended. E.g Objective, Filter etc. Provides attributes for recording common properties of these components such as Manufacturer name, Model etc, all of which are optional.

Field Type Description
2 manufacturer string

The manufacturer of the component. [plain text string]

3 model string

The Model of the component. [plain text string]

4 serial_number string

The serial number of the component. [plain text string]

5 lot_number string

The lot number of the component. [plain text string]

message Mask

The Mask ROI shape is a link to a BinData object that is a BIT mask drawn on top of the image as an ROI. It is applied at the same scale, pixel to pixel, as the Image the ROI is applied to, unless a transform is applied at the shape level.

Field Type Description
1 x float

The X coordinate of the left side of the image. [units pixels]

2 y float

The Y coordinate of the top side of the image. [units pixels]

3 width float

required

4 heigh float

required

5 bin_data biopb.ome.BinData

required

message Metadata

Metadata is the main part of the OME specification

In OME-XML, each element of the metadata is associated with an unique ID, which OME-XML uses for cross-reference. In protobuf, we explicitly express this idea by storing the metadata as ID-Data maps. This also adopted a simpler syntax -- we no longer define all the "reference" data types.

The string keys used are equivalent to the IDs of the OME-XML design, although here we do not enforce its format.

Field Type Description
1 projects map<string, Project>
2 datasets map<string, Dataset>
3 folders map<string, Folder>
4 experiments map<string, Experiment>
5 plates map<string, Plate>
6 screens map<string, Screen>
7 experimenter map<string, Experimenter>
8 experimenter_groups map<string, ExperimenterGroup>
9 instruments map<string, Instrument>
10 images map<string, Image>
11 rois map<string, ROI>
12 annotations map<string, Annotation>

message MetadataRef

Pointer to an external metadata file. If this element is present, then no other metadata may be present in this file, i.e. this file is a place-holder

Field Type Description
1 metadata_file string

Filename of the OME-XML metadata file for this binary data. If the file cannot be found, a search can be performed based on the UUID}

2 uuid string

The unique identifier of another OME-XML block whose metadata describes the binary data in this file. This UUID is considered authoritative regardless of mismatches in the filename.

message MicrobeamManipulation

Field Type Description
2 type biopb.ome.ManipulationType
3 description string

A description for the Microbeam Manipulation. [plain-text multi-line string]

4 roi_ids repeated string
5 light_source_settings repeated biopb.ome.LightSourceSetting
6 experimenter_id string

message Microscope

Field Type Description
2 manufacturer_spec biopb.ome.ManufacturerSpec

The microscope's manufacturer specification

3 type biopb.ome.Microscope.Type

message OME

Protobuf equivalent of the OME-XML format

The OME element is a container for all information objects accessible by OME. These information objects include descriptions of the imaging experiments and the people who perform them, descriptions of the microscope, the resulting images and how they were acquired, the analyses performed on those images, and the analysis results themselves. An OME file may contain any or all of this information. With the creation of the Metadata Only Companion OME-XML and Binary Only OME-TIFF files the top level OME node has changed slightly. It can EITHER: Contain all the previously expected elements OR: Contain a single BinaryOnly element that points at its Metadata Only Companion OME-XML file

See http://www.openmicroscopy.org/Schemas/OME/2016-06 for the original XML specification

Field Type Description
1 rights biopb.ome.Rights

copy rights information

2 metadata biopb.ome.Metadata

The reason for the OME specification. This should be considered a required field. A unset (null) filed means using default value. The exact value for "default" is context-dependent. For example, in a streaming GRPC session, the "default" is likely the value transimitted in a previous message.

3 metadata_ref biopb.ome.MetadataRef

OME allows "binary-only" data, for which the metadata are supplied from a reference. This is needed in order to support multi-part data storage, where most of the files are binary-only and share metadata with a metadata-only file.

We replicate this field for consistency, but discourage its use. For protobuf it has no real usecase.

4 uuid string

This unique identifier is used in conjuction with `MetadataRef`` to keep track of multi part files. Should be unset in most cases.

5 creator string

This is the name of the creating application of the OME-XML and preferably its full version, e.g "CompanyName, SoftwareName, V2.6.3456" This is optional but we hope it will be set by applications writing out OME-XML from scratch.

message Objective

A description of the microscope's objective lens. Required elements include the lens numerical aperture, and the magnification, both of which a floating point (real) numbers.

The values are those that are fixed for a particular objective: either because it has been manufactured to this specification or the value has been measured on this particular objective.

Correction: This is the type of correction coating applied to this lens. Immersion: This is the types of immersion medium the lens is designed to work with. It is not the same as 'Medium' in ObjectiveRef (a single type) as here Immersion can have compound values like 'Multi'. LensNA: The numerical aperture of the lens (as a float) NominalMagnification: The specified magnification e.g. x10 CalibratedMagnification: The measured magnification e.g. x10.3 WorkingDistance: WorkingDistance of the lens.

Field Type Description
2 manufacturer_spec biopb.ome.ManufacturerSpec
3 correction biopb.ome.Objective.Correction
4 emmersion string

The immersion medium the lens is designed for Note: OME-XML uses Enum here

5 lens_na optional float

The numerical aperture of the lens expressed as a floating point (real) number. Expected range 0.02 - 1.5 [units:none]

6 nominal_magnification optional float

The magnification of the lens as specified by the manufacturer - i.e. '60' is a 60X lens. [units:none] Note: The type of this has been changed from int to float to allow the specification of additional lenses e.g. 0.5X lens

7 calibrated_magnification optional float

The magnification of the lens as measured by a calibration process- i.e. '59.987' for a 60X lens. [units:none]

8 working_distance optional float

The working distance of the lens expressed as a floating point (real) number. Units are set by WorkingDistanceUnit.

9 working_distance_unit string

The units of the working distance - default:microns[µm].

10 iris optional bool

Records whether or not the objective was fitted with an Iris. [flag]

11 annotation_ids repeated string

Reference

message ObjectiveSetting

This holds the setting applied to an objective as well as a reference to the objective. The ID is the objective used in this case.

Field Type Description
1 objective_id string

required

2 correction_colloar float

The CorrectionCollar is normally an adjustable ring on the objective. Each has an arbitrary scale on it so the values is unit-less. [units:none]

3 medium string

A description of a Medium used for the lens. The Medium is the actual immersion medium used in this case. NOTE: OME-XML use enum here

4 refractive_index float

The RefractiveIndex is that of the immersion medium. This is a ratio so it also unit-less. [units:none]

message Pixels

The Pixels element should contain a list of BinData, each containing a single plane of pixels. These Pixels elements, when read in document order, must produce a 5-D pixel array of the size specified in this element, and in the dimension order specified by 'DimensionOrder'.

All of the values in the Pixels object when present should match the same value stored in any associated TIFF format (e.g. SizeX should be the same). Where there is a mismatch our readers will take the value from the TIFF structure as overriding the value in the OME-XML. This is simply a pragmatic decision as it increases the likelihood of reading data from a slightly incorrect file.

Field Type Description
1 channels repeated biopb.ome.Channel

If specified, the length should match size_z

2 planes repeated biopb.ome.Plane

If specified, the length should match bindata.

3 bindata repeated biopb.ome.BinData

Pixel values Note: We only support BinData, not TiffData as in OME-XML Note: use an empty list to indicate metadata-only

4 dimension_order string

A string describing the dimension order of the pixel data, e.g. "XYZCT" The string must be a permutaion of these 5 letters even if some of the dimension doesn't exist in the data. NOTE: OME-XML uses enum

5 pixel_type biopb.ome.Pixels.PixelType
6 significant_bits optional uint32

The number of bits within the type storing each pixel that are significant. e.g. you can store 12 bit data within a 16 bit type. This does not reduce the storage requirements but can be a useful indicator when processing or viewing the image data.

Default (0) is all bits

7 interleaved optional bool

How the channels are arranged within the data block: true if channels are stored RGBRGBRGB...; false if channels are stored RRR...GGG...BBB...

8 big_endian optional bool

This is true if the pixels data was written in BigEndian order. If this value is present it should match the value used in BinData or TiffData. If it does not a reader should honour the value used in the BinData or TiffData. This values is useful for MetadataOnly files and is to allow for future storage solutions.

9 size_x uint32

Dimensional size of pixel data array [units:none]

10 size_y uint32
11 size_z uint32
12 size_c uint32
13 size_t uint32
14 physical_size_x optional float

Physical size of a pixel.

15 physical_size_y optional float
16 physical_size_z optional float
17 physical_size_unit string

physical size unit, default "µm" Note: OME-XML allows different units for X-Y-Z

18 time_increment optional float

TimeIncrement is used for time series that have a global timing specification instead of per-timepoint timing info. For example in a video stream. Units are set by TimeIncrementUnit.

21 time_increment_unit string

time unit, default "s"

message Plane

The Plane object holds microscope stage and image timing data for a given channel/z-section/timepoint.

Field Type Description
1 hash_sha1 bytes

This optional element is a hash of the plane's image data.

2 the_z optional uint32

The Z-section this plane is for. [units:none] This is numbered from 0.

3 the_t optional uint32

The T-section this plane is for. [units:none] This is numbered from 0.

4 the_c optional uint32

The C-section this plane is for. [units:none] This is numbered from 0.

5 delta_t optional float

Time since the beginning of the experiment. Units are set by DeltaTUnit.

6 delt_t_unit string

The units of the DeltaT - default:seconds[s]

7 exposure_time optional float

The length of the exposure. Units are set by ExposureTimeUnit.

8 exposure_time_unit string

The units of the ExposureTime - default:seconds[s]

9 postion_x optional float

The X position of the stage. Units are set by PositionXUnit.

10 postion_y optional float

The Y position of the stage. Units are set by PositionYUnit.

11 postion_z optional float

The Z position of the stage. Units are set by PositionZUnit.

12 position_unit string

The units of the stage position - default:[reference frame] Note: OME-XML allows different units for X-Y-Z

15 annotation_ids repeated string

message Plate

This element identifies microtiter plates within a screen. A plate can belong to more than one screen. The Screen(s) that a plate belongs to are specified by the ScreenRef element. The Plate ID and Name attributes are required. The Wells in a plate are numbers from the top-left corner in a grid starting at zero. i.e. The top-left well of a plate is index (0,0)

Field Type Description
2 name string

The Name identifies the plate to the user. It is used much like the ID, and so must be unique within the document.

If a plate name is not available when one is needed it will be constructed in the following order: 1. If name is available use it. 2. If not use "Start time - End time" (NOTE: Not a subtraction! A string representation of the two times separated by a dash.) 3. If these times are not available use the Plate ID.

3 description string

A description for the plate.

4 status string

A textual annotation of the current state of the plate with respect to the experiment work-flow; e.g. 1. Seed cell: done; 2. Transfection: done; 3. Gel doc: todo.

5 external_identifier string

The ExternalIdentifier attribute may contain a reference to an external database.

6 Column_naming_convention biopb.ome.Plate.NamingConvention

The ColumnNamingConvention

7 row_naming_convention biopb.ome.Plate.NamingConvention

The RowNamingConvention

8 well_origin_x float

This defines the X position to use for the origin of the fields (individual images) taken in a well. It is used with the X in the WellSample to display the fields in the correct position relative to each other. Each Well in the plate has the same well origin. Units are set by WellOriginXUnit.

In the OMERO clients by convention we display the WellOrigin in the center of the view.

9 well_origin_y float

This defines the Y position to use for the origin of the fields (individual images) taken in a well. It is used with the Y in the WellSample to display the fields in the correct position relative to each other. Each Well in the plate has the same well origin. Units are set by WellOriginYUnit.

In the OMERO clients by convention we display the WellOrigin in the center of the view.

10 well_origin_x_unit string

NOTE: OME-XML uses enum for length unit. Here we just use string. RATIONALE: strong-typing length unit might be too restrictive.

11 well_origin_y_unit string

NOTE: OME-XML uses enum for length unit. Here we just use string.

12 rows uint32

Number of rows in the plate The default value (0) should be intepreted as "unspecfied"

13 columns uint32

Number of columns in the plate The default value (0) should be intepreted as "unspecfied"

14 wells map<string, Well>

Collection of wells in the plate, indexed by well IDs.

15 plate_acquisitions map<string, PlateAcquisition>

Information regarding the acquistions, indexed by PlateAcquisition IDs.

17 field_index optional uint32

The index of the WellSample to display as the default Field. This is marked specifically as optional, so 0 is distinguishable from missing value

18 annotation_ids repeated string

References

message PlateAcquisition

PlateAcquisition is used to describe a single acquisition run for a plate. This object is used to record the set of images acquired in a single acquisition run. The Images for this run are linked to PlateAcquisition through WellSample.

Field Type Description
2 name string

human readable name

3 description string

A description for the plate acquistion.

4 start_time google.protobuf.Timestamp

Time when the first image of this acquisition was collected

5 end_time google.protobuf.Timestamp

Time when the last image of this acquisition was collected

6 maximum_field_count optional uint32

The maximum number of fields (well samples) in any well in this PlateAcquisition. This is only used to speed up user interaction by stopping the reading of every well sample.

7 well_sample_ids repeated string

links to the well_samples (and thus images) collected

8 annotation_ids repeated string

links to the annotations

message Point

Field Type Description
1 x float
2 y float

message PolyLine

The Polyline defines open shapes formed of straight lines. Note: Polyline uses counterclockwise winding (this is the default OpenGL behavior)

Field Type Description
1 points repeated biopb.ome.Point

The points of the polyline NOTE:OME-XML uses a string representation here

2 marker_start biopb.ome.PolyLine.Marker
3 marker_end biopb.ome.PolyLine.Marker

message Polygon

The Polygon defines closed shapes formed of straight lines. Note: Polygon uses counterclockwise winding (this is the default OpenGL behavior)

Field Type Description
1 points repeated biopb.ome.Point

The points of the polygon NOTE:OME-XML uses a string representation here

message Project

The Project ID is required. Datasets can be grouped into projects using a many-to-many relationship. A Dataset may belong to one or more Projects by including one or more ProjectRef elements which refer to Project IDs. Projects do not directly contain images - only by virtue of containing datasets, which themselves contain images.

Field Type Description
2 name string

Name of the project

3 descrption string

A description for the project. [plain-text multi-line string]

4 experimenter_id string

References to other metadata fields

5 experimenter_group_id string
6 dataset_ids repeated string
7 annotation_ids repeated string

message ROI

A four dimensional 'Region of Interest'. If they are not used, and the Image has more than one plane, the entire set of planes is assumed to be included in the ROI. Multiple ROIs may be specified.

Field Type Description
2 name string

The Name identifies the ROI to the user. [plain-text string]

3 description string

A description for the ROI. [plain-text multi-line string]

4 shapes repeated biopb.ome.Shape
6 annotation_ids repeated string

message Reagent

Reagent is used to describe a chemical or some other physical experimental parameter.

Field Type Description
2 name string

A short name for the reagent

3 description string

A long description for the reagent.

4 reagent_identifier string

This is a reference to an external (to OME) representation of the Reagent. It serves as a foreign key into an external database. - It is sometimes referred to as ExternalIdentifier.

5 annotation_ids string

References to other metadata

message Rectangle

A simple rectangle object. If rotation is required apply a transformation at the Shape level.

Field Type Description
1 x float

The X value of the left edge or the rectangle. [units pixels]

required

2 y float

The Y value of the left edge or the rectangle. [units pixels]

required

3 width float

required

4 heigh float

required

message Rights

The rights holder of this data and the rights held.

Field Type Description
1 rights_holder string

The rights holder for this data. [plain-text multi-line string] e.g. "Copyright (C) 2002 - 2016 Open Microscopy Environment"

2 rights_held string

The rights held by the rights holder. [plain-text multi-line string] e.g. "All rights reserved" or "Creative Commons Attribution 3.0 Unported License"

message Screen

The Screen element is a grouping for Plates. The required attribute is the Screen's Name, which must be unique within the document. The Screen element may contain an ExternalRef attribute that refers to an external database. A description of the screen may be specified in the Description element. Screens may contain overlapping sets of Plates i.e. Screens and Plates have a many-to-many relationship. Plates contain one or more ScreenRef elements to specify what screens they belong to.

Field Type Description
2 name string

Screen name

3 reagents map<string, Reagent>

Reagent information, indexed by Reagent IDs. These will be referenced in Wells.

4 plate_ids repeated string

The PlateRef element is a reference to a Plate element. Screen elements may have one or more PlateRef elements to define the plates that are part of the screen. Plates may belong to more than one screen.

5 protocol_identifier string

A pointer to an externally defined protocol, usually in a screening database.

6 protocol_description string

A description of the screen protocol; may contain very detailed information to reproduce some of that found in a screening database.

7 reagent_description string

A description of the set of reagents; may contain very detailed information to reproduce some of that information found in a screening database.

8 reagent_set_identifier string

A pointer to an externally defined set of reagents, usually in a screening database/automation database.

9 type string

A human readable identifier for the screen type; e.g. RNAi, cDNA, SiRNA, etc. This string is likely to become an enumeration in future releases.

message Shape

The shape element contains a single specific ROI shape and links that to any channels, and a timepoint and a z-section. It also records any transform applied to the ROI shape.

Field Type Description
2 transform biopb.ome.AffineTransform

This is a matrix used to transform the shape. The element has 6 xsd:float attributes. If the element is present then all 6 values must be included.

3 fill_color optional uint32

The color of the fill. Default is solid white

4 fill_rule biopb.ome.Shape.FillRule
5 stroke_color optional uint32

The color of the stroke. Default is solid white.

6 stroke_width optional float

The width of the stroke. Units are set by StrokeWidthUnit.

7 stroke_width_unit string

The units used for the stroke width. default is "pixel"

8 stoke_dash_array string

e.g. "none", "10 20 30 10"

9 text string

Text lable

10 font_family string

The font family used to draw the text. Note: these values are all lower case so they match the standard HTML/CSS values. "fantasy" has been included for completeness; we do not recommend its regular use. This attribute is under consideration for removal from the OME-XML schema.

11 font_size optional float

Size of the font. Units are set by FontSizeUnit.

12 font_size_unit string

The units used for the font size.

13 font_style string

The style and weight applied to the text. This is a simplified combination of the HTML/CSS attributes font-style AND font-weight.

14 locked optional bool

Controls whether the shape is locked and read only, true is locked, false is editable.

15 the_z optional uint32

The z-section the ROI applies to. If not specified then the ROI applies to all the z-sections of the image. [units:none] This is numbered from 0.

16 the_t optional uint32

The timepoint the ROI applies to. If not specified then the ROI applies to all the timepoints of the image. [units:none] This is numbered from 0.

17 the_c optional uint32

The channel the ROI applies to. If not specified then the ROI applies to all the channels of the image. [units:none] This is numbered from 0.

18 annotation_ids repeated string
oneof shape_group
19 rectangle biopb.ome.Rectangle
20 mask biopb.ome.Mask
21 point biopb.ome.Point
22 ellipse biopb.ome.Ellipse
23 line biopb.ome.Line
24 polyLine biopb.ome.PolyLine
25 polygon biopb.ome.Polygon
26 label biopb.ome.Label

message StageLabel

The StageLabel is used to specify a name and position for a stage position in the microscope's reference frame.

Field Type Description
2 name string
3 x optional float

The X position of the stage label. Units are set by XUnit.

4 x_unit string

The units of the X stage position - default:[reference frame]

5 y optional float

The Y position of the stage label. Units are set by YUnit.

6 y_unit string

The units of the Y stage position - default:[reference frame]

7 z optional float

The Z position of the stage label. Units are set by ZUnit.

8 z_unit string

The units of the Z stage position - default:[reference frame]

message TransmittanceRange

This records the range of wavelengths that are transmitted by the filter. It also records the maximum amount of light transmitted.

Field Type Description
2 cut_in optional float

CutIn is the wavelength below which there is less than 50% transmittance for a filter. Units are set by CutInUnit.

3 cut_in_unit string

default is "nm"

4 cut_out optional float

CutOut is the wavelength above which there is less than 50% transmittance for a filter. Units are set by CutOutUnit.

5 cut_out_unit string

default is "nm"

6 cut_in_tolerance optional float

CutInTolerance. Units are set by CutInToleranceUnit.

7 cut_in_tolerance_unit string

The units of the CutInTolerance - default:nanometres[nm].

8 cut_out_tolerance optional float

CutOutTolerance. Units are set by CutInToleranceUnit.

9 cut_out_tolerance_unit string

The units of the CutOutTolerance - default:nanometres[nm].

10 transmittance optional float

The amount of light the filter transmits at a maximum [units:none] A fraction, as a value from 0.0 to 1.0.

message Well

A Well is a component of the Well/Plate/Screen construct to describe screening applications. A Well has a number of WellSample elements that link to the Images collected in this well. The ReagentRef links any Reagents that were used in this Well. A well is part of only one Plate. The origin for the row and column identifiers is the top left corner of the plate starting at zero. i.e The top left well of a plate is index (0,0)

Field Type Description
2 well_samples map<string, WellSample>

Well samples in this well. We use a dictionary so that the keys (IDs) can be referenced in other data structures, e.g. PlateAcquisition

3 column uint32

This is the column index of the well, the origin is the top left corner of the plate with the first column of cells being column zero. i.e top left is (0,0) The combination of Row, Column has to be unique for each well in a plate.

Required.

4 row uint32

This is the row index of the well, the origin is the top left corner of the plate with the first row of wells being row zero. i.e top left is (0,0) The combination of Row, Column has to be unique for each well in a plate.

Required.

5 external_identifier string

The ExternalIdentifier attribute may contain a reference to an external database.

6 type string

A human readable identifier for the screening status. e.g. empty, positive control, negative control, control, experimental, etc.

7 color optional uint32

A marker color used to highlight the well. The default value is solid white.

8 reagent_id string

references

9 annotation_ids repeated string

message WellSample

WellSample is an individual image that has been captured within a Well.

Field Type Description
2 image_id string

This is the main link to the core Image element

3 position_x optional float

The X position of the field (image) within the well relative to the well origin defined on the Plate. Units are set by PositionXUnit.

4 position_y optional float

The Y position of the field (image) within the well relative to the well origin defined on the Plate. Units are set by PositionYUnit.

5 positioin_x_unit string

NOTE: OME-XML uses enum for length unit. Here we just use string.

6 positioin_y_unit string

NOTE: OME-XML uses enum for length unit. Here we just use string.

7 time_point google.protobuf.Timestamp

The time-point at which the image started to be collected

8 index uint32

This records the order of the well samples. Each index should be unique for a given plate but they do not have to be sequential, there may be gaps if part of the dataset is missing. In the user interface the displayed value of the index will be calculated modulo the number of PlateAcquisitions for the plate.

required

Enums

enum Correction

Abberation correction design

Name Number Description
UNSPECIFIED 0
UV 1
PLANAPO 2
PLANFLUOR 3
SUPERFLUOR 4
VIOLETCORRECTED 5
ACHRO 6
ACHROMAT 7
FLUOR 8
FL 9
FLUAR 10
ENOFLUAR 11
FLUOTAR 12
APO 13
PLANNEOFLUAR 14
OTHER 15

enum Endianness

Data endianness. Note OME-XML use a bool. We change that to a Enum that default to BigEndian for slightly better efficiency and allowing potential extension to other states: e.g. system default.

Name Number Description
BIG 0
LITTLE 1

enum ExperimentType

Name Number Description
UNSPECIFIED 0
FP 1
FRET 2
TIMELAPSE 3
FOURDPLUS 4
SCREEN 5
IMMUNOCYTOCHEMISTRY 6
IMMUNOFLUORESCENCE 7
FISH 8
ELECTROPHYSIOLOGY 9
IONIMAGING 10
COLOCALIZATION 11
PGIDOCUMENTATION 12
FLUORESCENCELIFETIME 13
SPECTRALIMAGING 14
PHOTOBLEACHING 15
SPIM 16
OTHER 17

enum FillRule

The rule used to decide which parts of the shape to fill. [enumeration]

Name Number Description
UNSPECIFIED 0
EVENODD 1
NONZERO 2
OTHER 3

enum ManipulationType

Name Number Description
UNSPECIFIED 0
FRAP 1
FLIP 2
INVERSEFRAP 3
PHOTOABLATION 4
UNCAGING 5
OPTICALTRAPPING 6
OTHER 7

enum Marker

Name Number Description
UNSPECIFIED 0
ARROW 1
OTHER 2

enum NamingConvention

Name Number Description
UNSPECIFIED 0
LETTER 1

Single letter, then double letter, then triple letter, and so on e.g. A, B, C, ... X, Y, Z, AA, BB, CC, ... YY, ZZ, AAA, BBB, ... This has the advantage that the first 26 are the same as the standard but has a problem an the labels get wider and wider leading to user interface problems.

NUMBER 2

1, 2, 3, ...

enum PixelType

The variable type used to represent each pixel in the image.

Name Number Description
PT_UNSPECIFIED 0

PT_ prefix to avoid c++ enum name collision

PT_INT8 1
PT_INT16 2
PT_INT32 3
PT_UINT8 4
PT_UINT16 5
PT_UINT32 6
PT_FLOAT 7
PT_DOUBLE 8
PT_COMPLEX 9
PT_DOUBLE_COMPLEX 10
PT_BIT 11

enum Type

Name Number Description
UNSPECIFIED 0
CCD 1
INTENSIFIED_CCD 2
ANALOG_VIDEO 3
PMT 4
PHOTODIODE 5
SPECTROSCOPY 6
LIFETIME_IMAGING 7
CORRELATION_SPECTROSCOPY 8
FTIR 9
EMCCD 10
APD 11
CMOD 12
EBCCD 13
OTHER 14

enum Type

Name Number Description
UNSPECIFIED 0
DICHROIC 1
LONGPASS 2
SHORTPASS 3
BANDPASS 4
MULTIPASS 5
NEUTRALDENSITY 6
TUNABLE 7
OTHER 8

enum Type

Name Number Description
UNSPECIFIED 0
UPRIGHT 1
INVERTED 2
DISSECTION 3
ELECTROPHYSIOLOGY 4
OTHER 5

enum Type

laser types

Name Number Description
UNSPECIFIED 0
EXCIMER 1
GAS 2
METAL_VAPOR 3
SOLID_STATE 4
DYE 5
SEMICONDUCTOR 6
FREE_ELECTRON 7
OTHER 8

enum Type

The type of Arc lamp.

Name Number Description
UNSPECIFIED 0
HG 1
XE 2
HG_XE 3
OTHER 4

enum Type

Name Number Description
UNSPECIFIED 0
INCANDESCENT 1
HALOGEN 2
OTHER 3