Module: commands/pipetter/groupingMethods

Functions to break pipeetting items into groups that should be handled simultaneously. Possible methods include:

  • each item is its own group
  • groups are built until no more syringes would be available based on the item's tipModel (but syringe doesn't need to be assigned yet)
  • groups are built (with limited look-ahead) where alternatives are investigated when a group splits over two columns
  • have a fixed assignment between wells and syringes (i.e. row n = tip (n % 4)) for the sake of managing differences between tips
Source:

Methods


<static> groupingMethod1(items)

Place each item into its own group.

Parameters:
Name Type Description
items array

Array of pipetting items.

Source:
Returns:

An array of groups of items; each group is a sublist of items from the original array.

Type
array

<static> groupingMethod2(items, syringes, tipModelToSyringes)

Groups are built until no more syringes would be available based on the item's tipModel (but syringe doesn't need to be assigned yet). Also break groups on program changes. TODO: break group if a previous dispense well is used as a source well.

NOTE: if 'tipModelToSyringes' is supplied, this algorithm will not work predictably if the sets of syringes partially overlap with each other (complete overlap is fine).

Parameters:
Name Type Description
items array

Array of pipetting items.

syringes array

Array of integers representing the available syringe indexes

tipModelToSyringes object

An optional map from tipModel to syringes that can be used with the given tipModel. If the map contains syringes that aren't listed in the 'syringes' array, they won't be used.

Source:
Returns:

An array of groups of items; each group is a sublist of items from the original array.

Type
array

<static> groupingMethod3(items, syringes, tipModelToSyringes)

Groups are built until no more syringes would be available based on the item's tipModel (but syringe doesn't need to be assigned yet). It tries to group by layer by putting as many items from the same layer into the group before moving onto the next item. Breaks are forced on:

  • program changes
  • when a previous dispense well is used as a source well

NOTE: if 'tipModelToSyringes' is supplied, this algorithm will not work predictably if the sets of syringes partially overlap with each other (complete overlap is fine).

Parameters:
Name Type Description
items array

Array of pipetting items.

syringes array

Array of integers representing the available syringe indexes

tipModelToSyringes object

An optional map from tipModel to syringes that can be used with the given tipModel. If the map contains syringes that aren't listed in the 'syringes' array, they won't be used.

Source:
Returns:

An array of groups of items; each group is a sublist of items from the original array.

Type
array