Premium Feature — Available with the Enterprise Edition of LabKey Biologics LIMS. Learn more or contact LabKey.


  • Mixtures are recipes that combine Ingredients using specific preparation steps. Mixtures are virtual entities in LabKey Biologics. Each Mixture is registered only once, but are realized/instantiated multiple times by Batches.
  • Batches are realizations of a Mixture recipe. They are physically real formulations produced by following the recipe encoded by some Mixture. Multiple Batches of the same Mixture can be added to the registry, each with its own volume, weight, vessel, location, etc.
An analogous relationship exists between Ingredients and Raw Materials: Ingredients are the virtual definition of a substance (registered only one once); Raw Materials are the multiple physical instantiations of a given Ingredient.

Registering Mixtures

The virtual recipes are listed in the Media > Mixtures grid. Find a given Mixture by filtering, sorting, or searching the grid.

Mixtures are comprised of Ingredients and specific preparation details in a "recipe" that can be registered. There are several ways to reach the mixture creation wizard:

You can also register mixtures of unknown ingredients, amounts, and concentrations; for example, when you receive materials from an outside vendor which does not disclose the ingredients, or only partially discloses them. To register mixtures with limited information see: Mixtures can also be added using a table of ingredients, that you copy-and-paste from an Excel or TSV file. For details see:

Start a New Mixture "From Scratch"

From the main menu, select Media, then Mixtures and then click Add above the grid of available mixtures.

Start from an Existing Ingredient or Mixture

Any of the registered ingredients or mixtures can be clicked for a detailed view. The details view includes general information. Mixture detail pages show the mixture’s included ingredients and preparation steps.

Select Manage > Create Mixture. The Ingredients tab will be prepopulated.

Register a Mixture: Wizard Steps

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.

Wizard Step 1: Details

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.

Wizard Step 2: Ingredients

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.

Specify what Recipe Measure Type the mixture is using: Mass or Volume. This selection dictates what unit types are available for the ingredients below.

  • If Mass is selected, unit types will be: g/kg, g/g, mL/kg, mol/kg, mol/g, S/S
  • If Volume is selected, unit types will be: g/kL, g/L, L/L, mL/L, mol/kL, mol/L, μL/L, μL/mL
Note that the ingredient wizard assumes molecular weight to be in g/mol. Since the registry does not record density, a conversion from g to mL is not possible.

Click Add Ingredient for each unique component of the mixture.

Under Type select either Ingredient or Mixture. The Ingredient/Mixture text boxes are 'type ahead' searches, that is, as you type, the registry will offer a filtered dropdown of options that contain your typed string. To control how many fields are shown with each option, you can provide a lookup view.

When at least one ingredient/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 X button on the left can be clicked to remove it.

Wizard Step 3: Preparation

The preparation step lets you add one or more preparation instructions. Click Add Step to add one or more text boxes. When all instructions have been entered, click the Next button.

Wizard Step 4: Confirmation

The confirmation step summarizes all of the information entered so far.

Click Finish to submit; the mixtures grid is shown with the new addition.

Register a Mixture using 'Bulk' Ingredients Table

This method of registering a mixture lets you enter the ingredients in a tabular format by copying-and-pasting from an Excel or TSV file.

  • Go to the Mixtures grid and click Add.
  • On the Details tab, enter the Mixture Name and Mixture Type (and description and aliases if needed) then click Next.
  • On the Ingredients tab, click Bulk Upload.
  • A popup window appears showing the table headers which you can copy-and-paste into an empty Excel file.
  • Fill out the table, adding separate lines for each ingredient in the mixture. Only the "Ingredient/Mixture" column is required. If a cell is left blank, you can complete the details of the mixture using the user interface.
    • Type: (Optional) Specify either "Ingredient" or "Mixture".
    • Ingredient/Mixture: (Required) The name of the ingredient or mixture which must be a pre-existing item already in the registry. Values from the Name or Scientific Name columns are supported.
    • Amount: (Optional) A number that indicates the weight or volume of the ingredient.
    • Unit Type: (Optional) Possible values are the same as when entering ingredients in the UI.
  • Select whether to:
    • Append new ingredients or
    • Replace ingredients already listed.
  • Copy-and-paste the table back into the popup window and click Add Ingredients.
  • Fill in any remaining fields, if necessary, and click Next.
  • Complete the rest of the mixture wizard.

Registering Mixtures with Unknown Ingredients, Amounts, or Concentrations

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 Unknown on the toggle switch disables entry of any further details about the recipe:

Selecting an Unknown Amount checkbox disables that specific ingredient's amount and unit type inputs (other ingredients may still have known amounts).

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. Warning messages are provided to confirm that your registration is intentional.

Once registered, mixtures with unknown ingredients and amounts behave just as any other mixture, with a slight change to their detail view to illustrate unknown amounts or ingredients.

Bulk Registration of Mixtures That Include Unknowns

In bulk registration of Mixtures, some fields support the text "unknown" on import. For details, see Bulk Registration of Entities.

Delete a Mixture

Each Mixture is composed of an entry in the Mixture DataClass table and a Protocol that defines the ingredients used and the steps. To delete the mixture completely, delete the Protocol and then you can delete the Mixture DataClass.

  • Switch to the LabKey Server interface via > LabKey Server > [Folder Name]
  • Select (Admin) > Go to Module > Experiment.
  • Scroll down to the list of Protocols.
  • Select the Protocol(s) to delete, and click to delete.
  • You should now be able to delete the Mixture DataClass row.

Use the Recipe API to Update Mixtures

Mixtures can be updated after they are created by using the Recipe API. You can make these updates using PUT requests to recipe-recipe.api:

  • Mutation of ingredients and their associated metadata.
  • Description can be changed on the underlying protocol.
  • Recipe produces metadata.
Mixtures cannot be updated in the following ways:
  • Recipe name
  • Changing the recipe steps. Use the pre-existing recipe-steps.api endpoint if you're looking to edit these.
Use the dryRun boolean flag for pre-validation of changes without actually updating the recipe. Calling the endpoints with dryRun when experimenting/investigating will go through all the steps of validating the updates and updating the recipe/batch but it will not commit these changes. It returns what the updated recipe/batch would look like if committed.

The general steps for using the Recipe API are:

  1. Call recipe-read.api and receive the full recipe/mixture definition.
  2. Mutate the received object in the way you'd like (change ingredients, amounts, etc).
  3. Remove things you do not want to mutate (e.g. "produces", etc) or similarly copy to a new object only the properties you want to mutate.
  4. Call recipe-recipe.api and PUT the mutated object on the payload as the recipe.

Related Topics

Was this content helpful?

Log in or register an account to provide feedback

expand allcollapse all