Table of Contents |
guest 2025-06-14 |
The following Biologics videos are available on the LabKey YouTube channel:
The Home page provides a search box and different portals into different aspects of the data:
When viewing a dashboard, navigate around the registry using the menu bar at the top of the page.
Hover over a menu item for sub-menus.
The Registry dashboard shows all of the unique entities that have been added, such as Molecules, Expression Systems, Cell Lines, etc. Click a tile to learn more or register new entities:
Learn more about the Registry section and the relationships between entities in Registry Dashboard.
The Samples dashboard shows a grid of samples recently added to the registry. Rows represent sample sets and columns, months. Darker panels indicate more samples for that month.
To learn more about the Samples features, see Sample Sets and Detail Pages.
The Assays dashboard shows data broken down by type and date. Similar to the Samples dashboard, darker tiles in the grid indicate a greater quantity of data for that assay in that month.
From the Media dashboard, you add and manage ingredients, raw materials, mixtures, and batches.
See Registering Ingredients and Raw Materials for more information.
The Workflow dashboard contains:
More information can be found in the topic: Workflow
Learn more about each aspect of the registry in these detailed topics:
Composed of a mixture of protein sequences, nucleotide sequences, chemistry elements, and other molecules. Generally, "molecule" refers to the target entity.
Example Molecules |
---|
Molecule W = 1 (protein sequence A) |
Molecule X = 1 (protein sequence B) + 2 (protein sequence C) |
Molecule Y = 1 (nucleotide sequence D) |
Molecule Z = 2 (nucleotide sequence E) + 2 (protein sequence F) + 2 (molecule W) |
The set of molecules that only differ from one another in terms of their leader sequences. See Vectors, Constructs, and Cell LinesExpression Systems.
After protein expression and other processes, all the entities that are detected for a particular molecule (different cleavage sites, post-translational modifications, genomic drift). See Vectors, Constructs, and Cell LinesExpression Systems.
Single sequence comprised of amino acids (20 different amino acids).
Example Protein Sequences |
---|
protein sequence A = ACELKYHIKL CEEFGH |
protein sequence B = HIKLMSTVWY EFGHILMNP |
A single sequence comprised of nucleic acids, can be either DNA (A, T, G, C) or RNA (A, U, G, C).
Example Nucleotide Sequences |
---|
nucleotide sequence A (DNA) = AGCTGCGTGG GCACTCACGCT |
nucleotide sequence B (RNA) = AGCUGUUGCA GCUUACAUCGU |
Along with being a component of a molecule, DNA sequences can be designed that encode for specific protein sequences when transferred into a cell line to create an expression system.
DNA molecule used as a vehicle to artificially carry foreign genetic material into another cell. The most common type of vector is a plasmid - a long double-stranded section of DNA that has been joined at the ends to circularize it. In molecular biology, generally, these plasmids have stretches of DNA somewhere in their makeup that allow for antibiotic resistance of some sort, providing a mechanism for selecting for cells that have been successfully transfected with the vector.
A vector (generally a plasmid) that has had a stretch of DNA inserted into it. Generally, this DNA insertion encodes for a protein of interest that is to be expressed.
A host cell line is transfected with a Construct, bringing the new DNA into the machinery of the cell. These transfected cells (called an Expression System) are then processed to select for cells that have been successfully transfected and grown up, allowing for the production of cells that have the construct and are manufacturing the protein of interest. At times, these transfections are transient and all of the cells are used in the process. Other times, a new stable cell line (still a Cell Line) is produced that can continue to be used in the future.
A combination of a Construct and a host cell
Complete the general build instructions.
Get the biologics and related modules from github:
> cd server/optionalModules
> git clone https://github.com/LabKey/biologics.git
> git clone https://github.com/LabKey/assayRequest.git
> git clone https://github.com/LabKey/recipe.git
> git clone https://github.com/LabKey/inventory.git
To build the biologics module, you will need to install nodejs and npm.
https://nodejs.org/en/download/
Add the modules to the file settings.gradle in the project root to the end of the file:
include ":server:optionalModules:assayRequest"
include ":server:optionalModules:biologics"
include ":server:optionalModules:inventory"
include ":server:optionalModules:recipe"
In IntelliJ, hit the Gradle refresh button to have these new modules added to the IntelliJ project.
Build the server and verify the new modules are compiled:
> ./gradlew deployApp
You can search the Biologics Registry in the following ways:
To search the entire repository, enter your search terms on the home page (as shown below). Alternatively, click Search on the top navigation bar.
Results are displayed as tiles, as shown below.
Click Advanced to filter by Entity Type. The dropdown is populated by the entity types known to the system.
Results will be filtered to only the entity type selected.
A search bar appears above all grid views.
You can enter multiple criteria in the search bar, adding any number of filters, keywords, and sorts.
You can also control the sort order by clicking the triangle icons in the column headers.
The Registry dashboard shows all of the unique entities that have been added, such as Molecules, Expression Systems, Cell Lines, etc.
Click Show entity relationships to see a graphical representation of how the entities are related to one another.
Click an entity tile to view data grids for that entity type. You can also directly select these entities from the Registry menu in the top bar.
Each grid shows the entities that have been registered. Click an entity name on a grid to see details. Some of these entity fields are eligible for editing, such as description or aliases, and any such edits are logged.
This topic shows how to register a new nucleotide sequence using the graphical user interface. To register using the API, or to bulk import sequences from an Excel spreadsheet, see Use the Registry API.
To add a new nucleotide sequence to the registry:
From the header bar, select Registry > Nucleotide Sequences.
On the Nucleotide Sequences page, click Insert New.
This topic shows how to register a new protein sequence using the graphical user interface. To register using the API, or to bulk import sequences from an Excel spreadsheet, see Use the Registry API.
You can enter the Protein Sequence wizard in a number of ways:
The wizard for registering a new protein sequence proceeds through four tabs:
Click Next to continue.
On the sequence tab, you can translate a protein sequence from a nucleotide sequence as outlined below. If you prefer to manually enter a protein sequence from scratch click Manually add a sequence at the bottom.
Click Next to continue.
The annotations tab displays any matching annotations found in the annotation library. You can also add annotations manually at this point in the registration wizard. Editing is not allowed at this point, but you can edit annotations after the registration wizard is complete.
Suggested annotations can be “removed” by clicking the red icons in the grid panel. They can also be added back if the user changes their mind.
For complete details on using the annotation panel see Protein Sequence Annotations.
Default or best guess values may prepopulate the wizard, but can be edited as needed.
Click Next to continue.
The Confirm panel provides a summary of the protein about to be added to the registry.
Click Finish to add the protein to the registry.
Once you have defined a protein sequence, you can locate it on the lists and reopen to see the details. Some fields are eligible for editing. Those that are "in use" by the system or other entities cannot be changed. All edits are logged.
To view protein sequence annotations, go to Registry > Protein Sequences, and click a protein id in the Name column.
Clicking an annotation’s color bar highlights its description in the grid below, For example, if you click the green bar for sequence position 36-49, that annotation’s details are highlighted in the grid below, and vice versa.
The annotations details grid can be sorted by any of the available columns. The grid will always default to Start in ascending order
The annotation editor has two tabs: Edit Annotation and Add Annotation. Adding or editing an annotation will refresh the grid and viewer to include your changes.
In order to edit an annotation, first select one from the grid or viewer. Once selected, click the Edit button at the bottom of the Edit Annotation tab.
This will enable the field inputs and action buttons:
The controls to the right of the Edit and Add tabs can be used to hide or show the position index and annotation color bars.
The sequence start and end points update to the currently selected annotation. The start and end points can be manually changed to any index values in the sequence, or can be reset to the full sequence by pressing the refresh button.
Clicking Copy sequence will copy the indicated segment to your clipboard for pasting (useful when registering a new protein sequence into the Registry).
A somewhat simplified version of the annotations viewer is also used within the protein sequence registration wizard.
This topic shows how to register a new molecule using the graphical user interface. To register using the API, or to bulk import molecules from an Excel spreadsheet, see Use the Registry API.
To add a new molecule to the registry:
Click Next to continue.
Click Next to continue.
LabKey Biologics will attempt to classify the structure format of the molecule's protein components, if possible. The structure format is based on the component protein chain formats.
On the Stoichiometry pane enter:
Click Next to continue.
On the Confirm pane, click Finish to add the molecule to the registry.
The new molecule will be added to the grid.
Molecule Sets serve to group together Molecules (ex: antibodies or proteins) around common portions of protein sequences, once signal or leader peptides have been cleaved. Molecule Sets server as the "common name" for a set of molecules. Many Molecules may be grouped together in a single Molecule Set.
Molecular Species serve as alternate forms a given molecule. For example, a given antibody may give rise to multiple Molecular Species: one Species corresponding to the leaderless, or "mature", portion of the original antibody and another Molecular Species corresponding to its "mature, desK" (cleaved of signal peptides and heavy chain terminal lysine) form.
Both Molecular Species and Sets are calculated and created by the registry itself. Their creation is triggered when the user adds a Molecule to the registry. Users CAN also manually register Molecular Species, but generally do NOT register their own Molecule Sets. Detailed triggering and creation rules are described below.
When a molecule is added to the registry, the following additional entities are calculated and added, depending on the nature of the molecule. These additional entities can include:
A molecule can be created (= registered) based on one or more of the following:
When the molecule contains only protein sequences, then:
When creating a Molecule, the auto-generated Molecule Set (if there is a new one) will have the same alias as the Molecule. If the new Molecule is tied to an already existing Molecule Set, the alias is appended with alias information from the new Molecule.
When creating a molecule, the auto-generated molecular species (both mature and mature desK) should have the same alias as the molecule. Similarly, when creating a molecular species from a molecule (manually), the alias field will pre-populate with the alias from the molecule.
For molecular species that are auto-generated, if it is creating new protein sequences (one or more) as the components of that molecular species, they have a Description:
The biologics registry can capture Vectors, Constructs, Cell Lines, Expression Systems, and their relationships. To add these entities to the registry, use the entry forms at:
Entity Type | Default Fields |
---|---|
Vector | Description Alias Sequence Selection Methods Vector Parents |
Construct | Description Alias Vector Cloning Site Sequences Construct Paths |
Cell Lines | Description Alias Expression System Stable Clonal Cell Line Parents |
Expression Systems | Description Alias Host Cell Line Constructs Expression System Parents |
When registering a sequence or molecule, use the "identity" of the sequence to determine uniqueness. External tools can use the following API to get the identity of a sequence prior to registration. To get the identity of a sequence use either the identity/get.api or identity/ensure.api. The ensure.api will create a new identity if the sequence hasn't been added yet.
To get or ensure the identity of a single nucleotide sequence:
LABKEY.Ajax.request({
url: LABKEY.ActionURL.buildURL("identity", "get.api"),
jsonData: {
items: [{
type: "nucleotide", data: "GATTACA"
}]
}
});
To get or ensure the identity of a collection of sequences:
LABKEY.Ajax.request({
url: LABKEY.ActionURL.buildURL("identity", "get.api"),
jsonData: {
items: [{
type: "nucleotide", data: "GATTACA"
},{
type: "protein", data: "ELVISLIVES"
}]
}
});
To get or ensure the identity of a molecule containing multiple protein sequences:
LABKEY.Ajax.request({
url: LABKEY.ActionURL.buildURL("identity", "get.api"),
jsonData: {
items: [{
type: "molecule", items: [{
type: "protein", data: "MAL", count: 2
},{
type: "protein", data: "SYE", count: 3
]}
}]
}
});
You can enter molecule, sequences, cell lines, etc, using registration wizards. For an example use of the wizard, see Register a New Nucleotide Sequence
The LabKey import data page can also be used to register new entities. For example, to register new nucleotide sequences:
Description | protSeqId | translationFrame | translationStart | translationEnd | sequence |
---|---|---|---|---|---|
Anti_IGF-1 | PS-7 | 0 | 0 | 0 | caggtg... |
When importing a nucleotide sequence with a related protSeqId using the protein sequence's name, you will need to click the Import Lookups By Alternate Key checkbox on the Import Data page. The Name column may be provided, but will be auto-generated if it isn't. The Ident column will be auto-generated based upon the sequence.
To register new protein sequences:
Name | Description | chainFormatId | organisms | sequence |
---|---|---|---|---|
PS-1 | PS1038-1 | 1 | ["human","mouse"] | MALWMRL... |
To register new molecules:
Description | structureFormatId | seqType | components |
---|---|---|---|
description | 1 | 1 | [{type: "nucleotide", name: "NS-1", stoichiometry: 3}] |
description | 1 | 3 | [{type: "protein", name: "PS-1", stoichiometry: 2}, {type: "protein", ident: "ips:1234"}] |
description | 1 | 3 | [{type: "chemical", name: "CH-1"}, {type: "molecule", name: "M-1"}] |
Note that the set of components is provided as a JSON array containing one or more sequences, chemistry linkers, or other molecules. The JSON object can refer to an existing entity by name (e.g "NS-1" or "PS-1") or by providing the identity of the previously registered entity (e.g., "ips:1234" or "m:7890"). If the entity isn't found in the database, an error will be thrown -- for now, all components must be registered prior to registering a molecule.
The client APIs also can be used to register new entities.
From your browser's dev tools console, enter the following to register new nucleotide sequences:
LABKEY.Query.insertRows({
schemaName: "exp.data",
queryName: "NucSequence",
rows: [{
description: "from the client api",
sequence: "gattaca"
},{
description: "another",
sequence: "cattaga"
}]
});
To register new protein sequences:
LABKEY.Query.insertRows({
schemaName: "exp.data",
queryName: "ProtSequence",
rows: [{
name: "PS-100",
description: "from the client api",
chainFormatId: 1,
sequence: "ML"
}]
});
To register new molecules:
LABKEY.Query.insertRows({
schemaName: "exp.data",
queryName: "Molecule",
rows: [{
description: "from the client api",
structureFormatId: 1,
components: [{
type: "nucleotide", name: "NS-202"
}]
},{
description: "another",
structureFormatId: 1,
components: [{
type: "protein", name: "PS-1"
},{
type: "protein", name: "PS-100", count: 5
}]
}]
});
Parent/child relationships within an entity type are modeled using derivation. For example, the details page for this nucleotide sequence (NS-2) shows that another sequence (NS-34) has been derived from it.
To create new children, you can use the "experiment/derive.api" API, but it is still subject to change. The dataInputs is an array of parents each with an optional role. The targetDataClass is the LSID of the entity type of the derived datas. The dataOutputs is an array of children each with an optional role and a set of values.
LABKEY.Ajax.request({
url: LABKEY.ActionURL.buildURL("experiment", "derive.api"),
jsonData: {
dataInputs: [{
rowId: 1083
}],
targetDataClass: "urn:lsid:labkey.com:DataClass.Folder-5:NucSequence",
dataOutputs: [{
role: "derived",
values: {
description: "derived!",
sequence: "CAT"
}
}]
}
})
Samples will be attached to an entity using derivation. Instead of a targetDataClass and dataOutputs, use a targetSampleSet and materialOutputs. For example:
LABKEY.Ajax.request({
url: LABKEY.ActionURL.buildURL("experiment", "derive.api"),
jsonData: {
dataInputs: [{
rowId: 1083
}],
targetSampleSet: "urn:lsid:labkey.com:SampleSet.Folder-5:Samples",
materialOutputs: [{
role: "sample",
values: {
name: "new sample!",
measurement: 42
}
}]
}
})
To indicate parents/inputs when registering an entity, use the columns "DataInputs/<DataClassName>" or "MaterialInputs/<SampleSetName>". The value in the column is a comma separated list of values in a single string. This works for both DataClass and SampleSet:
LABKEY.Query.insertRows({
schemaName: "exp.data",
queryName: "MyDataClass",
rows: [{
name: "blush",
"DataInputs/MyDataClass": "red wine, white wine"
}]
});
On the ProtSequence DataClass select (Grid Views) > Customize Views.
To add a field, select it on the Available Fields panel. For example, below the Mass field is being added.
To remove a field, click that field's X in the Selected Fields panel. For example, below the Avg. Mass field is being removed.
To change a field name, click that field's Cog in the Selected Fields panel. For example, below the field Organism is being changed to Species.
When the changes have been made as desired, click Save in the lower right.
Save the grid as the Default grid view for this page.
To change field order, drag-and-drop the fields in the Selected Fields panel.
Once the changes have been saved, they will be reflected in the Biologics application.
To control the fields on a details page, follow the same process as described above, except save the view using the name "BIOLOGICSDETAILS", capitalized and one word.
Once saved, the corresponding details view will reflect the changed UI.
To modify an entity's entry form, modify the fields for that entity. For example, to add a field "NIH Registry Number" to the Cell Line entity:
Follow similar procedures to delete or modify entry form fields.
Samples Sets are used to group together Samples and apply shared properties to them.
The Samples dashboard shows the sets of samples available, and the relative volume for each in each month. This topic covers working with registered sample data. Click the Samples tile from the home page, or click Samples in the menu bar from within the application.
To learn various methods for generating new sample IDs, see Generate SamplesSample sets listed on the left (or accessable from the Samples menu bar) can be viewed as a datagrid for further sorting or filtering. Click a cell in the grid to see samples for that sample set in that specific month.
Click the sample set name link (to the left of the table or from the Samples menu in the menu bar to see a grid view of that sample set across all months.
From any Samples grid view, click a name to see details of that sample, and edit certain fields.
Fields that are used internally, such as the name, folder location, containing sample set, may not be edited, but descriptions and other low-risk fields can be changed here. Changes made here are audited.
To generate new samples within LabKey Biologics, you can directly upload using LabKey server, or use the Sample Generation wizard described in this topic.
There are three entry points for the sample generation wizard:
The only fields required for generating Sample IDs are:
If desired, one or more parents of the new sample can be specified. Click Add Parent, then select the type of parent to be added from the list of Data Classes and Sample Sets available. More than one type of parent may be selected if needed, and there is no requirement that each new sample have parents from every type selected.
If you are generating new sample IDs from an existing sample or entity, it will already be prepopulated as a parent, with the type of entity preselected as a parent type.
In each sample group section, you will then see a selection pulldown for each type of parent selected above. Use the selection pulldowns to select the desired parents from the members of the set or class selected above. Remember you can type ahead to filter the drop down menus.
At least one sample group is required, and created by default for the quantity given, but more may be added using the Add Sample Group button. Each sample group can be populated with a different quantity and descriptions. The parent selection process works as above, with each sample group having a unique set of parents.
Once the fields in the wizard are completed, click Finish to generate the new samples.
Each sample group will report success or failure to create the samples in that group. If one group fails while another succeeds, the successful group of samples will be created and that group will be disabled within the wizard. You can make changes to the group that raised the error and resubmit until all groups succeed.
Upon successful submission, you will see the sample set filtered to show only your newly created samples.
Assay data in captured in LabKey Biologics by "Assay Designs". Each Assay Design is essentially a table, where each field has a name and data type, for example, the following Assay Design captures data from a Titration experiment.
SampleID | Expression System | SampleDate | InjVol | Vial | Cal CurveID | Dilution | ResultID | MAb |
---|---|---|---|---|---|---|---|---|
2016_01_22-C3-12-B9-01 | ES-1 | 2016-01-23 | 30 | 2:A,19 | 46188 | 1.0000 | 47836 | 0.2000 |
2016_04_21-C7-73-B6-02 | ES-1 | 2016-04-22 | 30 | 2:B,19 | 46188 | 1.0000 | 47835 | 0.2300 |
2015_07_12-C5-39-B4-02 | ES-1 | 2015-07-13 | 30 | 2:C,19 | 46188 | 1.0000 | 47834 | 0.3000 |
For an Assay Design to work with LabKey Biologics, it must meet the following requirements:
To create a new assay in LabKey Biologics, do the following:
The SpecimenID field get special treatment in LabKey Biologics -- it points to the originating sample or material that is being measured by the assay. The steps below establish a link between the Assay Design and the originating sample/material.
This topic describes viewing registered media and steps for registration of ingredients and materials. The processes for creating mixtures and batches are covered elsewhere.
The Media dashboard provides tiles for registering and managing:
Clicking Ingredients brings you to a grid of available (previously created) ingredients and an Insert New button to create a new ingredient.
Clicking Insert New opens the wizard for creating a new ingredient. This wizard is controlled by the fields in the 'Ingredients' DataClass, which can be customized through LabKey Server by an administrator to include the fields you need. For example, the insert panel for ingredients might look like this:
Once required fields are completed, click Submit and you will see the grid filtered to show only your new ingredient. Click the 'X' on the filter to return to viewing all ingredients.
The raw materials used in mixtures are listed here.
Click Insert New to add a new raw material. The data entry wizard is similar to that for ingredients; the fields included are determined by the "RawMaterials" data class. For example:
The virtual recipes are listed in the Media > Mixtures grid. Find a given Mixture by filtering, sorting, or searching by typing into the "Select" box.
Mixtures are comprised of Ingredients and specific preparation details in a "recipe" that can be registery. There are several ways to reach the mixture creation wizard:
Any of the registered mixtures can be clicked for a detailed view. The details view includes general information as well as the mixture’s included ingredients and preparation steps. The details page also includes a Create > Mixture menu in the which opens the create mixture wizard (and includes the current mixture within the wizard).
Clicking Ingredients brings you to a grid of available (previously created) ingredients and any can be clicked for a detailed view. Select Create > Mixture to open the wizard to create a new mixture which includes the current ingredient within the wizard.
The new mixture wizard adds a new mixture to the registry, and performs a check to ensure that the mixture name is unique in the registry. Duplicate mixture names are not allowed in the registry.
The Details step asks for basic information about the mixture, including a type such as powder or solution. Once all required fields have been filled in, the Next button will become clickable.
Upon clicking Next, the mixture name is checked against the registry to see if it is already in use. A warning displayed if a duplicate name is found.
The Ingredients step allows you to add single ingredients or existing mixtures to a new mixture recipe, as well as the required amounts and the amount unit. If you started the wizard from an ingredient or mixture it will be prepopulated here.
As part of adding an ingredient, specific what Recipe Measure Type the mixture is using: Mass or Volume. This selection dictates what unit types are available for the ingredients below.
The Ingredient and Mixture select boxes are 'type ahead' searches, that is, as you type, a filtered dropdown of the available options that contain your typed string is shown.
Once an option is selected, a new input will automatically display to allow for more ingredients or mixtures to be added. When a mixture has been selected, more information about the ingredients included and their respective amount/units can be viewed by clicking Show Recipe Ingredients.
When at least one ingredient or mixture and the associated amount/amountUnit fields have been filled in, the Next button becomes enabled. If a selected Ingredient or Mixture is no longer desired, the red minus button on the right can be clicked to remove it.
The preparation step lets you add one or more preparation steps with their list of ingredients. The Name and Description inputs will accept any text. When at least one Name and Direction have been included, the Next button will become enabled.
If more preparation steps are desired, click the Add Step button.
The confirmation step summarizes all of the information entered so far. Once submitted, the mixtures grid is shown, filtered to show only the new mixture.
In cases where you do not know the exact ingredients, amounts, or concentrations of a material, you can still add it to the registry. These scenarios are common when receiving a material from an outside vendor who does not disclose the exact formulation of the product.
In such cases, the mixture registration process is largely the same, except for the Ingredients step, where you can toggle all ingredients and amounts as unknown, or toggle individual amounts as unknown.
Selecting the Ingredients are unknown checkbox disables entry of any further details about the recipe:
Selecting an Unknown amount checkbox disables that row’s amount and unit type inputs:
Note that you can register materials and mixtures without specifying ingredients or amounts, even when you do not explicitly check one of the 'unknown' boxes. But warning messages are provided to confirm that your registration is intentional.
Once registered, mixtures with unknow ingredients and amounts behave just as any other mixture, with a slight change to their detail view to illustrate that an ingredient or concentration may be unknown.
Batches represent a specific quantity of a given mixture. The mixture is a virtual entity, i.e. a recipe, used to create the physical batch of material.
To create a new batch, click Insert New while viewing the batches grid, or select Create > Mixture Batch from any mixture detail page to include that mixture in your batch.
The steps in the batch creation wizard are similar to those in the mixture wizard.
On the Details tab, the only required fields is the mixture (i.e., the recipe) to be used to create the batch. Optional fields are: Batch Name, Description, and the Vendor/Part Number. If the Batch Name is not provided, it will be automatically assigned a unique name. Click Next.
On the Ingredients tab, each ingredient row is disabled until you add a Desired Batch Yield and Unit. Once selected, the rest of the page will become enabled and populate information
Enter the exact amounts of which raw materials were used to create the mixture recipe. (If ingredients and/or amounts are unknown, see options below.)
For each raw material, specify a source lot by its id number.
Each ingredient in the recipe may have one or more source lots of raw material This is useful when you exhaust one lot and need to use a second lot to complete the batch. For example, using 13mL of Potassium Phosphate empties the bottle, so you need to draw an additional 118mL from a different lot. Specify multiple raw ingredients by clicking Add raw material. (Note that if one or more raw materials are indicated, the option to set an amount or raw material as unknown is no longer available.)
If multiple raw materials were used, the batch details panel will display material lot numbers and the amounts used.
For each preparation step in the mixture recipe, the user can enter any preparation notes necessary in creating this particular batch. Notes are optional, but can provide helpful guidance if something unusual occurred with the batch.
Once all required fields are filled, the Next button will become clickable.
The confirmation step allows the user to view the information they have entered. If necessary, they can click back to return to previous tabs to make any updates. Preparation notes are collapsed, but can be expanded by clicking the right-arrow icon.
Click Finish to register this batch and see the row as entered in the grid.
When registering batches, the Ingredients step includes the option to mark:
Note the button Show unknown options. When clicked, the UI reveals "Unknown" checkboxes underneath each row's amount and raw material input. Selecting Unknown will then disable the individual input.
To disable all material and amount inputs, select Materials/Ingredient Source Unknown.
Confirmation warnings are provided if the user provides incomplete values and an 'unknown' box is not ticked.
Once entered into the registry, the unknown factors are reflected in the user interface.
[Video: Quick Look: Managing Assay Requests in LabKey Biologics]
Common uses of the Workflow page include:
The Workflow page supports different types of work requests (with more types available in future releases), for example: general work items, assay run requests, and sample creation requests.
Requests can be created as single stand-alone requests, or as multi-service requests which tie together a group of subtasks.
The Workflow page displays the following panels:
To create a new work request:
From a user's perspective, the request tracker functions much like the LabKey issue tracker. A typical workflow looks like the following:
The assay tracker also provides for adverse events in the workflow. For example, duplicate requests for assay runs can be resolved as "Duplicate", or requests can be resolved as "Rejected" if for some reason the request cannot be completed. The available resolution states are not fixed, and be adjusted by an administrator (see the Administrator docs for documentation).
1. Create an issue tracker or use a pre-existing one. This will track the subtasks and cannot be the same as the parent issue tracker. Go to (Admin) > Go To Module > Issues and click Add New Row. For detailed docs see Issue Tracker: Administration.
2. Set up a column on the service tracker as a lookup to what your services are. You can create a new column, or use an existing column. For example, the image below shows how to create a lookup to the exp.SampleSets table. This will convert the column into a dropdown populated with sample sets to choose from.
In the case of Assay requests, the column is already provided as the "Assay" column, a preconfigured column to the assay.AssayList table.
3. Go to the Schema Browser ( (Admin) > Developer Links > Schema Browser) and edit the metadata for the service tracker.
4. On the Edit Metadata page click Edit Source at the bottom.
5. You should see a blank text area for editing "XML Metadata". Replace <TRACKER TABLE NAME> and <TRACKER SERVICE COLUMN> with the name of the service tracker table and the name of the service column you setup in step 2.
<tables xmlns="http://labkey.org/data/xml">
<table tableName="<TRACKER TABLE NAME>" tableDbType="NOT_IN_DB">
<columns>
<column columnName="<TRACKER SERVICE COLUMN>">
<conceptURI>biologics-workflow-service</conceptURI>
</column>
</columns>
</table>
</tables>
6. Click Save and Finish to complete the configuration.
7. Now you can create new service requests in Biologics.