Skip to content
Lukas Mueller edited this page Oct 28, 2019 · 2 revisions

Overview

As described above, germplasm are abstract in the sense that they do not have a physical storage location or a physical inventory. To address this issue, Breedbase has a seedlot concept. A seedlot is defined with a unique name, a breeding program, a storage location and box name, a seedlot content of either a germplasm name or a cross name, and a seedlot inventory count and/or weight in grams. Optionally, the seedlot can be tagged to an organization and can have a description. The contents of the seedlot can be either an existing germplasm name or cross name, allowing flexibility for performing inventories at various stages of the breeding program, such as during crossing nurseries or seed increases.

Seedlots must have a seed count or a weight in grams, or both, to represent its current inventory state. This inventory is tracked in Breedbase using a transaction system, allowing accountability for when seed was added to or withdrawn from a seedlot. Transactions can occur between seedlots for tracking seed transfers across breeding programs; more generally, transactions can be recorded for any addition or subtraction of seed by a submitter on Breedbase. Transactions are created automatically if a field trial has indicated that seedlots were planted in specific plots of the experiment; more information on this can be found in the following field trials section.

Implementation

Seedlots are stored as entries in the stock table using the type name ‘seedlot’ from the ‘stock_type’ controlled vocabulary. The relationship between the seedlot and its contents is stored as a stock_relationship entry using the type name ‘collection_of’ from the ‘stock_relationship’ controlled vocabulary. The stock entry is linked to stockprop entries in an EAV model for the following properties: current count, current weight in grams, storage box location, and optionally, organization; all of these terms are part of the ‘stock_property’ controlled vocabulary. The current count and current weight in grams values are only for quick querying and are updated whenever a new transaction occurs; these values are updated by summing over all past transactions. The seedlot stock entry is linked relationally to its breeding program and location via the nd_experiment linking tables; the nd_experiment table has the type name ‘seedlot_experiment’ from the ‘experiment_type’ controlled vocabulary.

Transactions are stored in the stock_relationship table using the type name ‘seed transaction’ from the ‘stock_relationship’ controlled vocabulary. The value field of this stock_relationship entry contains a JSON encoded string with the following information: amount, weight, operator, timestamp, and description. The stock_relationship table can link any stock entry to any other stock entry, allowing a seedlot to be transacted with any seedlot or plot entry.

User interface

Seedlots can be created one at a time using an interactive interface on Breedbase, or they can be created in bulk by uploading an Excel spreadsheet. Uploading of this Excel spreadsheet also has the effect of updating any existing inventory to match current counts and weights. Breedbase performs this update by creating a new ‘adjustment transaction’ to increment or decrement the current count and current weight to match the values uploaded in the Excel spreadsheet.

To aid researchers in collecting inventory information, Breedbase supports the Inventory Android application (http://wheatgenetics.org/bioinformatics/35-inventory). Using the Inventory application, a researcher needs only to scan a barcode with the name of the seedlot, then collect the weight of the seedlot automatically using a smartphone connected scale. The output from this application can be directly uploaded into Breedbase and the current inventory will be adjusted by creating a new ‘adjustment transaction’ as described above.

Clone this wiki locally