Designing protocols - 9.3 - Editing assets

To add any asset other than a well array, click the ‘+’ icon on the Assets area, and select the item you want from the pop up menu.

Check ‘Available Deck Locations’ on the Status bar to make sure you are not adding more plates than there are deck locations. Reservoirs, the shaker module and the thermal modules do not take up deck locations.

Status bar - deck

If you need to use more plates, create user interaction steps to remove used items and add new ones at an appropriate point later in the protocol.

To delete any asset including a well array, select it and then click the bin icon for the Assets area.

Check the Errors list on the right of the screen in case deleting the asset has caused a problem in the loaded protocol.

9.3.1 Editing well arrays

To adjust the wells used in a well array, use the ‘Wells’ section of Properties, identifying your selection by rows and columns i.e., A1:E7. If you increase the number of wells, check that you still have sufficient volume of reagents, and sufficient tips loaded.

If you are using an array of 96 tips to pipette between a 96 well plate and 384 well plate, a tiling pattern can be used to define the well array asset for the 384 well plate. In this way a single quadrant of the 384 well plate can be defined as a well array asset.

Property Form Notes
Name Free text  
Colour Select from pop-up form Use to differentiate reagents
Starting volume per well (μL) Numeric / Variable 0.00 to maximum value for the well type
Maximum volume per well (μL) [auto filled, not editable] Defined by the plate type selected
Dead volume per well (μL) [auto filled, not editable] Defined by the plate type selected

Array

Property Form Notes
Plate Select from dropdown list Select from list of existing plate identifiers
Wells A1:H12 format An array can be anything from a single well to a full plate
Pattern Select from form All possible patterns are shown as unit cells

Right click on a well array in the Assets panel to access the Split by Columns function, which divides the well array.

split well array

For ease of use, you can add a whole plate well array, then use this function to split it into multiple smaller arrays without needing to define them individually.

split well array

You can then choose to rename the new arrays or assign them distinct colors.

9.3.2 Editing lids

You can either load plates which are lidded or load lids ready for use in a later protocol step. When you remove a lid it will be placed in an empty deck location, so every time you place a lid on a plate you will free up a deck location.

A screenshot of a computer

Description automatically generated

Check 'Available Deck Locations' on the Status bar to check you have enough free space, as you use lids and plates. If you need to use more lids, create user interaction steps to remove used items and add new ones at an appropriate point later in the protocol.  

When placing a lid on a plate, you are creating a stack. You can only use combinations of lids and plates which have a stack definition. Use Community to download stack definitions. If you cannot find what you need, contact reliance. You can continue designing with an undefined stack but you cannot run the protocol. 

firefly software will warn you if you try to use a dispensing or pipetting step without removing a plate's lid first.

IMPORTANT: If you use Auto Deck Fill when you have an undefined stack in your protocol, collision detection would work based on the wrong stack definition so shouldn’t be trusted until this error is removed.

Download the stack definition before using Auto Deck Fill.

If your protocol places used lids on the shelves of firefly+, any condensate may drip and contaminate shelves or other labware. To avoid this, when you remove a lid from a plate, move it to a shelf protector.

Property Form Notes
Name Free text  
Type Select from a dropdown list  
Deck location Select from a dropdown list If you select a location here, the plate will be placed there when you open the 'Deck' view. 

9.3.3 Editing EZL tip sets

You will need to load sufficient tip sets for the quantity of tips you will use. Check the Errors list to see if you need to adjust the quantities. As tip sets can only be loaded on the lower deck, you may not be able to load all the tips you will need at the start of the protocol. Remove used tip sets and replenish tips in a user interaction step, ensuring that the tip type of the fresh tips matches those of the tips that have been removed.

Property Form Notes
Name Free text  
Format Select from dropdown list 96 or 384 tip set
Tip type Select from dropdown list  
Use strips Tick box  
Strips Numeric / Variable Quantity of strips
Working volume (μL) [Auto filled] This is defined by the tip type
Deck location Dropdown list  
Barcode - enable prompt Tick box This is set up for scanning the barcode on the box

 

NOTE: If you are using 16 tip strips, these have a gap between loaded strips and cannot be loaded as adjacent strips due to the strip tip adapter arrangement. Therefore you cannot address adjacent columns of a 384-well plate simultaneously as the EZL tip strips will have gaps when loaded into the adapter.

9.3.4 Editing ATL tip boxes

You will need to load sufficient tip boxes for the quantity of tips you will use. Check the Errors list to see if you need to adjust the quantities.

You can load several columns of ATL tips only, not the entire 12 or 24 columns. This enables you to carry out multiple pipetting steps with fresh tips for each, while still using the same tip box.

You will need to load an additional empty tip box for unloading used tips, unless it is acceptable to unload them back into a tip box which still contains unused tips. If you do this, firefly software will warn you about possible contamination, but the protocol will still run.

You can place ATL tip boxes on upper or lower deck locations.

There is no upper limit on quantity of tip boxes in use in one protocol.

Property Form Notes
Name Free text  
Type Select from dropdown list 96 or 384 tips of differing types
Available columns Numeric / Variable Quantity of columns to load and use
Working volume (µL) [Auto filled] This is defined by the tip type
Deck location Dropdown list You can use the upper or lower deck
Barcode - enable prompt Tick box This is set up for scanning the barcode on the box

9.3.5 Using variables

Wherever you see the variable symbol variable for a property, you can choose to use a variable set when the protocol is executed, in place of an absolute value.

  1. Select the Variables tab in the right panel.
  2. Click on Create Expression Variable variable to create a new variable whose value you will define using firefly software. If you want to use values defined elsewhere, select to create a File Path Variable file path variable
  3. Name your variable.
  4. You can set an initial value for your variable, as shown below. If you do this, users executing
    the protocol will see this value but will have the option to modify it, if they have permission
    (basic users do not, by default).

variable in useIf you select the variable next to the Value column, you will open the Expression Builder, to define your variable.

expression builder

Having defined your variable, you can use it repeatedly in the current protocol (it will not be visible to use in other protocols).

To use the variable, select variable next to the Property you want to set, and select the named variable as shown below.
variable in use

Variables are always shown with a teal background in protocols.

You can use variables to set aspirate, dispense and mix volumes, in addition to starting and overfill volumes.

9.3.6 Using file path variables

You can use a file path variable to have variant files for File Fill, File Dispense or Incubate steps. Using this you can design e.g., variations of your PCR script such as 5 cycles, 10 cycles and 18 cycles, and choose the one to run in the Deck Loading Wizard, before you execute the firefly protocol. You can use this to test e.g., different ODTC protocols within the same firefly protocol instead of needing to write multiple variants of the firefly protocol, as shown in the example below.

When designing the protocol, associate one of your PCR scripts with a variable.

file path 1When you execute the protocol, because you had used a variable, not a fixed file name, you can use the Data Files option to select a different script, by clicking the File Path icon. file path variable

file path 2When you execute the protocol, because you had used a variable, not a fixed file name, you can use the Data Files option to select a different script, by clicking the File Path icon.

file path 3

9.3.7 Designing a scalable protocol

You can make your protocol scalable by using a variable size well array, number of strip tips or volume of reagents in each reservoir.

Scaling EZL strip tips usage

1. Select the Variables tab and create a column variable with an initial value, as shown.

Design variables2. Select the ‘fx’ button on the tip set properties to open the Expression Builder (Strips)

design variables strips3. Create an expression which replaces a fixed number of strip tips with your variable. This can be very simple, like the example shown above which just sets the number of strip tips used to match the number of well array columns.

Your variable now appears in the Strips property for the tip set.

Design variables tips

Scaling ATL column usage

  1. Select the Variables tab and create a variable for the number of columns to use, with an initial value, as shown.
  2. design variables ATLSelect the 'fx' button on the tip set properties to open the Expression Builder (Available Columns). The default value is 12 for a 96 tip box or 24 for a 384 tip box.
  3. design variables columnsCreate an expression which replaces a fixed number of columns with your variable, or with a mathematical expression utilizing variables.

    Your variable now appears in the Available Columns property for the tip box.
    ATL design variables

If you set your variable to 4 or more columns, you will see an error in your protocol, that the tip box must be placed on a tip box adapter before the tips can be loaded. Because of this change in behaviour, you may find it easier to create and save multiple protocol variants for different column numbers.

Scaling well arrays

1. Select the ‘fx’ button on the well array properties to open the Expression Builder (Wells)

Design expression builder2. Create an expression which replaces fixed values in a well array with your variables. This can be very simple, like the example shown above which just allows you to vary the number of columns when running the protocol.

Your variable now appears in the Wells property for the well array.

9.3.8 Editing syringes and reservoirs

When editing the reagents to be dispensed in a protocol, you will need to define Reservoirs for the materials. You can use the 'auto' dropdown to select a suitable reservoir based on the dispense volume or select the specific type.

You may find it more convenient to use multiple reservoirs for the same material if you are dispensing to a large quantity of wells, as parallel dispensing is faster. However, you will need more of your reagent, as you will always need the same additional volumes for the excess aspirate volume in the syringe and for the dead volume in the reservoir, irrespective of your dispense volume.

  LDV reservoir Standard reservoir Large reservoir
Safeguard volume - volume that needs to remain in the tips during a dispense 40μL 40μL 40μL
Reservoir dead volume 30μL 195μL 500μL
Total 70μL 235μL  540μL

To add a new reagent, you will need to add a new Reservoirs Asset, then use the Reservoirs Property to select which Reservoir to use. If you select a reservoir which had been in use, it will be reassigned, and you will generate an error that the previous reagent is no longer loaded. Color coding your materials will make it easier to keep track of what is in use, particularly in long protocols.

Assets reservoirsThe Assets shown above includes two reagents in reservoirs, the first uses two, the second uses one.

You can select to require barcodes for the reagents, the syringes or the reservoirs used. You will
need to specify the barcode format for reagents or reservoirs.

You do not need to specify the volume of reagent in a reservoir, it can be calculated by the firefly
software and then displayed in the setup instructions.

Use the Overfill volume if you know that you will want an excess of reagent in the reservoir e.g.,
because it will evaporate during protocol execution.

Property Form Notes
Name Free text  
Color Select from pop-up form Use to differentiate reagents
Reservoirs Select one or more from the 6 positions Unavailable reservoirs are grey, not white
Syringe Select from dropdown list Standard or ULR (volume is the same)
Reservoir Select from dropdown list Standard, high volume, LDV or auto
Auto calculate
starting volume?
Tick box  
Starting volume (µL) Numeric / Variable 0.00 to maximum value for the reservoir type. Only shown if auto calculate has not been ticked.
Overfill volume (µL) Numeric / Variable  
Maximum volume (µL) [auto filled, not editable]  This is set when the reservoir type is selected.
Barcodes    
Reagent barcode    
Enable prompt Tick box  
Format Regex Use a regex to define the form of your barcode data
Reservoir barcodes    
Enable prompt Tick box  
Combine prompts Tick box Show barcode fields together in protocol setup
Format Regex Use a regex to define the form of your barcode data
Syringe barcodes    
Enable prompt Tick box This is set up for scanning the barcode on the box
Combine prompts Tick box Show barcode fields together in protocol setup

9.3.9 Editing magnetic blocks

Magnetic blocks are simple, passive devices which require no configuration. You can use multiple magnetic blocks in a protocol.

You can only use magnetic block types which you have already installed, so if you cannot see the one you want to use, you look in the ‘Community’, ‘Labware’ section and download it.

Property Form Form
Name Free text
Type Select type from dropdown list
Deck location Select from dropdown list

9.3.10 Editing risers

Risers are simple, passive devices which require no configuration. They are used to lift shallow
plates so that heads dispensing to them do not collide with taller labware in adjacent deck
locations.

You can use multiple risers in a protocol. There are specific types for upper and lower deck use.

EZL lower deck risers are not compatible with the height of ATL tip boxes so do not use them on an ATL instrument.

You can only use riser types which you have already installed, so if you cannot see the one you
want to use, look in the 'Community', 'Labware' section and download it.

Property Form
Name Free Text
Type Select type from dropdown list; check it is correct for the deck
Deck Location Select from dropdown list

9.3.11 Editing thermal blocks

thermal blocks are used in conjunction with the plate thermal module, there are designs for use with 96 or 384 well plates. After they have been heated or cooled to the required temperature while located on the plate thermal module, they can be moved with a plate to e.g., the dispense head, to keep the plate warm or cool for longer. 

You can use multiple thermal blocks simultaneously on firefly e.g., to cool both a source and destination plate.

Property Form
Name Free text
Type Select type from dropdown list
Location Select from dropdown list

9.3.12 Editing tip box adapters (ATL instruments only)

If you are going to load more than 3 columns of tips from an ATL tip box, it must be placed on a tip box adaptor, to support it. You can load the tip box and adapter together, at the start of the protocol, or move the tip box onto it later. You can use multiple tip box adapters simultaneously on firefly.

You do not need to use a tip box adapter when unloading ATL tips.

Property Form
Name Free text
Type Select type from dropdown list
Location Select from dropdown list 

firefly grippers cannot move tip box adapters, so you will need to place the tip box adapter on the lower deck, where it will be used.

Tips can only be loaded onto the ATL head from the lower deck.

9.3.13 Using regexes to define barcode data

Depending on your plate and reagent suppliers, you may want firefly to recognize different strings of data as correct, when you read the item barcodes e.g., 05427ES-021 or STBB0728K9. You can also define your own data formats for reservoirs. If you are using SPT Labtech consumables, the correct barcode format is preloaded.

You do not have to use this functionality, to use the barcode reader. You can just record the barcode e.g., if you use reagents from multiple suppliers, and want to keep that flexibility. To do this, click the 'Barcode - Enable prompt' option but leave the Format field empty. To ensure that the correct items are loaded in firefly, you will need to define a regular expression (a 'regex') which corresponds to the expected combination of characters in the consumables barcodes. Write this in the Barcode Format field.

If the barcode then scanned does not match the pattern, it will not be accepted and may mean that you have picked up the wrong plate type or wrong reagent when running the protocol.

If you have not tried designing a regex before, there is a practical tutorial at https://regexone.com/lesson/introduction_abcs.

You can use the https://regex101.com/ website to test your regex and confirm it meets your
barcode format and parameters.

Next Article - Designing protocols - 9.4 - Editing steps