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
Methods
-
<static> groupingMethod1(items)
-
Place each item into its own group.
Parameters:
Name Type Description items
array Array of pipetting items.
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.
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.
Returns:
An array of groups of items; each group is a sublist of items from the original array.
- Type
- array