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

The plugin can be run after a mix has been created to pool content together in a Mix protocol step.

The created CSV file contains the following columns:

  • Source plate: Identifier of the location (plate) of the ingredient sample
  • Source row and Source column or Source well ID: Position of the ingredient in the source location
  • Source barcode: Barcode of the ingredient sample
  • Source volume: Volume of ingredient sample that should be added to the pool
  • Pool plate: Identifier of the location (plate) of the pooled sample (of the mix)
  • Pool row and Pool column or Pool well ID: Position of the mix in the location
  • Pool barcode: Barcode of the pool

This package contains the following entities:

  • grid template: Pooling sample sheet
  • custom field on the content:
    • Pooled volume per library of type quantity with dimension volume, with default unit µl.
  • plugin with 2 flows to create the CSV file:
    • Pooling sample sheet export (row and column): Which creates the sample sheet with separate columns for the row and column location of the samples.
    • Pooling sample sheet export (well id): Which creates the sample sheet with a single well ID column.

How to use the package


A protocol step must exist in which content is mixed together, e.g. the pooling protocol available from the Store which can be imported in the Workflow Management module.


The custom field provided should be restricted to the needed 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, but an unused flow can be removed from the plugin configuration.

The sorting is done on the row and column of the pooled sample (mix). Changes to this can be made by adapting the following line in the plugin configuration:

matchedRow=${grid.valueRows.{#this.columns[1].value == #root.rAlpha && #this.columns[2].value == #root.c && #this.columns[columnIndexPoolBarcode].value==null}}\" ]\

This line counts the first column as 0.

This plugin is configured to use specifically indicated fields to sort between the ingredients and the pools. These are listed in the following line and should be adapted if the grid template layout changes:

[# th:with=\"columnIndexContentBarcode=3, columnIndexPoolBarcode=6, columnIndexVolume=4, columnIndexVolumeUnit=5\"]


The plugin expects the row and column to be in the grid next to each other with the row present before the column.

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 > Fields > Custom fields
    • Miscellaneous > Plugins Module