This package contains a plugin to write sample sheets (CSV files) for normalization pipetting based on a predefined grid template.

The plugin can be run after a derivation has been done in a Derivation protocol step. The sheet will contain one row per “Output” Content linked to the step.

The created CSV file contains the following columns for all output on the step where the flow is executed:

  • Source plate: Identifier of the source plate (original sample location)
  • Source row and Source column or Source Well ID: Position of the original sample in the plate
  • Source barcode: Barcode of the original sample
  • Destination plate: Identifier of the destination plate (derived sample location)
  • Destination row and Destination column or Destination Well ID: Position of the derived sample in the plate
  • Destination barcode: Barcode of the derived sample
  • Aliquot volume: Volume of the original sample that need to be transferred
  • Buffer volume: Volume of buffer that should be added to the sample for it to be normalized

This package contains the following entities:

  • grid template: Normalization sample sheet
  • Two custom fields on content:
    • Buffer volume: A field of type quantity and dimension volume, with default unit µl.
    • Original aliquot volume: A field of type quantity and dimension volume, with default unit µl.
  • plugin with two flows to create the CSV file:
    • Normalization sample sheet export (row and column): Which creates the sample sheet with separate columns for the row and column locations.
    • Normalization sample sheet export (well id): Which creates the sample sheet with Well IDs instead of separate row and column entries.

How to use the package


A protocol step of type Derive with Inputs and Outputs. This plugin combines well with the “Normalization protocol” package which can be imported via the “Import protocol” button in the Workflow Management module, or with the “Normalization macro” package available in the Store module.

An 8 by 12 location with alphabetical identifier for rows is needed (see Configuration section to extend on this).


The two custom fields provided should be restricted to the necessary Content types in the Fields module.

Additional fields can be printed on the sample sheet. These can be added in the grid template that is used for the export.

The plugin contains two flows. Any unused flow can be removed from the plugin configuration and additional flows can be added.

The sorting is done row-wise on the cntn_position_row and cntn_position_column fields from the Source Content. Sorting can be done by the Destination’s row and column values instead by altering the Sequence number of the Grid Template columns so that the Destination’s cntn_position_row and cntn_position_column come before the same values from the Source record.

Both the Source and Destination are in 8×12 locations that have positions and use alphabetical identifiers for rows.

  • To use locations with a different number of rows/columns, the flow configurations can be adjusted to match the location size:

    [# th:each=\"r,plateRowCount: ${#numbers.sequence(1,8)} \" ]\ -- can adjust the "8" in sequence(1,8) to the number of rows in your locations
      [# th:each=\"c,plateColCount: ${#numbers.sequence(1,12)} \" ]\ -- can adjust "12" in sequence(1,12) to the number of columns in your locations

Where to Look Next

These references have further information on how to configure or use the package contents after the initial installation and integration.

  • SLIMS Administration Manual:
    • Reporting and Grids > Grid templates
    • Miscellaneous > Plugins Module
    • Miscellaneous > Fields