The PlateData
is the main class holding information
about a single plate. The associated PlateGeometryData
defines how many rows and columns there are on a plate. Since this
information is used to create wells, and for various other checks it is
not possible to change the number of rows or columns once a geometry has
been created.
All plates must have a PlateTypeData
which defines
the geometry and a set of event types (see below).
If the destroyed flag of a plate is set it is not allowed to use the plate for a plate mapping or to create array designs. However, it is possible to change the flag to not destroyed.
The barcode is intended to be used as an external identifier of the plate. But, the core doesn't care about the value or if it is unique or not.
The plate type defines a set of PlateEventTypeData
objects, each one represening a particular event a plate of this type
usually goes trough. For a plate of a certain type, it is possible to
attach exactly one event of each event type. The event type defines an
optional protocol type, which can be used by client applications to
filter a list of protocols for the event. The core doesn't check that
the selected protocol for an event is of the same protocol type as
defined by the event type.
The ordinal value can be used as a hint to client applications in which order the events actually are performed in the lab. The core doesn't care about this value or if several event types have the same value.
A plate can be created either from scratch, with the help of the information
in a PlateMappingData
, from a set of parent plates.
In the first case it is possible to specify a reporter for each well on the
plate. In the second case the mapping code creates all the wells and links
them to the parent wells on the parent plates. Once the plate has been saved
to the database, the wells cannot be modified (because they are used
downstream for various validation, etc.)
The details in a plate mapping are simply coordinates that for each destination plate, row and column define a source plate, row and column. It is possible for a single source well to be mapped to multiple destination wells, but for each destination well only a single source well can be used.