There are four types of biomaterials: BioSourceData
SampleData
ExtractData
LabeledExtractData
BioMaterialData
The BioSourceData
The MeasuredBioMaterialData
All measured biomaterial have at least one event associated with them, the creation event, which holds information about the creation of the biomaterial. A measured biomaterial can be created in three ways:
From a single item of the parent type. Biosource is the parent type of
samples, sample is the parent type of extracts, and extract is the
parent type of labeled extracts. In this case the
pooled property is false
and the parent is specified in the parent property.
If the parent is not a BioSourceData
BioMaterialEventData
From one or more items of the same type, i.e pooling.
In this case the pooled property is true
and the parent property is null. All source
biomaterials are contained in the sources collection.
The core is still responsible for keeping everything synchronized and to
update remaining quantities.
As a standalone biomaterial without parents.
Biomaterial (except biosource) may optionally be placed on BioPlateData
PlateGeometryData
BioWellData
The bioplate must be of a specific BioPlateTypeData
Unlocked: Wells are unlocked and the biomaterial may be changed any number of times.
Locked-after-move: The well is locked after it has been used one time and the biomaterial that was put in it has been moved to another plate.
Locked-after-add: The well is locked after biomaterial has been put into it. It is not possible to remove the biomaterial.
Locked-after-create: The well is locked once it has been created. Biomaterial must be put into wells before the plate is saved to the database.
An event represents something that happened to one or more biomaterials, for example
the creation of another biomaterial. The BioMaterialEventData
Creation event: This event represents the creation of a (measured) biomaterial. The sources collection contains information about the biomaterials that were used to create the new biomaterial. If the biomaterial is a pooled biomaterial all sources must be of the same type. Otherwise there can only be one source of the parent type. These rules are maintained by the core.
Hybridization event: This event represents the creation of a hybridization. This event type is needed because we want to keep track of quantities for labeled extracts. This event has a hybridization as a product instead of a biomaterial. The sources collection can only contain labeled extracts.
Other event: This event represents some other important information about a single biomaterial that affected the remaining quantity. This event type doesn't have any sources.
It is also possible to register events that applies to one or more
bioplates using the BioPlateEventData
BioPlateEventParticipantData
BioMaterialEventData
to a BioPlateEventParticipantData
.
This will make it easier to keep track of the history of individual biomaterial items.
Biomaterial events that are linked in this way are also automatically updated if the
bioplate event is modified (eg. selecting a protocol, event date, etc.).