Skip to main content

Advanced User Documentation: Gyger Certus Flex

Aimed at Certus Flex users who want to deep dive into the details

Updated over 2 years ago

Summary

In this article, you will learn about some of the complexities of using the Gyger Certus Flex including device configuration, labware definition, and the use of different dispensing options.

We recommend reading this article if you are a new Certus Flex user.

Flex Heads and Labware

The Flex dispenses using a dispensing head that can be connected to a variety of sizes of input, from syringes to bottles. Its heads come in four variations: 5 channels; 8 channels; 4 channels (22° tilted); 8 channels (22° tilted). The Synthace integration provides support for two head formats: the 4x2 8-channel variant and the 8x1 8-channel variant (22° tilted).

The Flex does not use input plates and has few restrictions on the output plates which can be used. However, our integration does use Synthace labware concepts, which are covered in this section.

The Synthace integration with the Certus Flex Synthace uses a single plate type to represent both the head format and the specific configuration (e.g. syringe kit, bottles). Synthace will validate these, and only supports input ‘plates’ with the correct layout (4 rows, 2 columns or 8 rows, 1 column). The supported head formats (4x2 vs 8x1) are reflected in the protocol file Synthace generate and would require re-simulating if this is changed. If the incorrect head configuration is defined in your workflow, and there is a mismatch between the installed head and the device instructions generated by Synthace, this will result in an error during the execution of the Certus devices.

Output Plates

Flex does not need any specific output labware. It works with a wide variety of output plates: ANSI(96, 384, 1536), Special (24, 48, 3456), and customer-specific formats. Available plate heights vary from default 3-50mm to 3-75mm special configuration. Synthace provides a function to author plate files if the relevant specifications aren’t already available on your device.


Configuration

The configuration of your Certus Device is defined using a .json file. It is not necessary for you to modify this file, but advanced users may wish to understand how it works.
Please see CertusFlexConfiguration.json to get an idea how it could look like.

CertusFlex_exampleconfig.json

If you wish to modify the configuration of your device, please contact you Customer Success team for guidance on how to do this.

The device configuration file defines the following characterisitics about your device.

Volume Limits
Two items in the config define the range of volumes which can be transferred in a single dispense operation.

  • MinVolume - a minimum possible volume in microlitres which could be transferred in one go

  • MaxVolume - a maximum possible volume in microlitres which could be transferred in one go

MinVolume and MaxVolume refer to microlitre volumes. They correspond to a minimum or a maximum volume respectively which could be transferred during one dispense action.


Fluid Matching
The device has a text file which defines known types of liquid. These are identified jointly by name and unique identifier - these must match or the software will complain. Synthace sidestep this issue by only using the default Fluid1...Fluid8 classes which the software comes with.

The configuration contains a list of these fluids in the Fluids section like so:

"Fluids": [
{
"Name": "Fluid1",
"GUID": "916c8569-8080-448d-aa4f-fd9c990b74b1"
},
{
"Name": "Fluid2",
"GUID": "4eb23d61-0f69-4066-8fea-58a959d70b6c"
},

If you have created custom Fluid I.D values in the Gyger software, it is possible to map these custom values to the GUID values in the device configuration file.

OptimizeLayering

It is possible to control the way in which Synthace plans the transfer of liquids, with regards to how they are split into different layers with the device instructions.

There are four options to control this behaviour

None: OptimizeLayering: “”

Destination: OptimizeLayering: “dest”

Source: OptimizeLayering: "fluid"

Source+Destination: OptimizeLayering: “both”

“dest” optimization guarantees that Synthace only dispenses once to any well in a given layer, meaning that there can only ever be one kind of fluid dispensed to a given well in a layer.

“both” optimization allows dispensing different fluids to a given well in a layer, e.g. Fluid1 and Fluid2 could both be dispensed to well A1 before moving on to the next layer. This generates a very small number of layers (4 in the example cited above, for comparison) and leads to optimal dispensing. However it has one drawback: Synthace cannot dispense Fluid1 to A1 twice if Synthace need to do so Synthace will in effect change the order in which Fluid 1 and Fluid 2 are dispensed.

e.g. if Synthace had to do

Fluid1: 50

Fluid1: 50

Fluid2: 50

because of the constraint imposed by the device Synthace would not be able to do the 2 Fluid1 dispenses in the same layer, meaning Synthace would actually do

Fluid1: 50

Fluid2: 50

Fluid1: 50

“fluid” optimization works very differently to the others. It generates one or more layers per fluid and never has more than one fluid in any given layer.


Output Formats

Synthace simulation output could be found on the “Overview” tab under “Device instructions”. It is a zip file that contains

  • a protocol file (someName.protocol) in XML format

  • a plate file (plate.txt) also in XML format

  • a directory called CSVs containing CSV files, one per layer.

Protocol File

This is an internal format defined by Gyger which defines all the layers to be dispensed in a single file, along with some other details of execution such as dispense pattern, constraints on mulitdispensing, and output plate type.

The file can be uploaded directly into the Certus Control software. To do so, the file selector needs to be changed to look for .protocol files (the default is .experiment files).

The protocol depends on a specifically identified plate file. This is identified by a combination of a name and a unique ID. If the required plate is not known to the Gyger software you will be prompted to choose an alternative, however, the software will validate volumes against the stated maximum for the plate. It is therefore better to create the relevant plate type - Synthace will generate the appropriate file for you to do this within the software. See below for details.

CSV Files

See below for and example .csv file

How To Use The Plate File

  1. Save the plate file somewhere it can be opened on the device's PC

  2. Open the plate file with a text editor

  3. On the device PC, navigate to C:\\ProgramData\\Gyger\\Certus Control\\etc

  4. Right-click on the file labware and choose edit

  5. A text editor window will open the file. By default, it will be empty and look like this

<labware>
</labware>

However, if there are already some plates it will look more like this. Let’s assume it does for example.

<labware>
<plate id="2abe6472-e357-615c-8eb1-3225924922c8" name="greiner384" xoffset="11.780000mm" yoffset="8.740000mm" zoffset="14.000000mm" xpitch="4.500000mm" ypitch="4.500000mm" x-well-count="24" y-well-count="16" color="#FFA2D0E8">
<sub-wells>
<sub-well id="1" name="well" xoffset="0mm" yoffset="0mm" max-well-volume="125.000000ul">
<shape type="Rectangle" x="4.000000mm" y="4.000000mm" rotation="0deg" color="MediumBlue"></shape>
</sub-well>
</sub-wells>
</plate>
</labware>

You can see that there are a number of entries within the <plate></plate> tags.

  1. Copy-paste the file contents so that the new entry appears within the <labware></labware> tags but does not interrupt any of the other plate entries. Either directly after the <labware> tag or directly before the </labware> tag is best.

  2. The file should now look like this

<labware>
<plate id="2abe6472-e357-615c-8eb1-3225924922c8" name="greiner384" xoffset="11.780000mm" yoffset="8.740000mm" zoffset="14.000000mm" xpitch="4.500000mm" ypitch="4.500000mm" x-well-count="24" y-well-count="16" color="#FFA2D0E8">
<sub-wells>
<sub-well id="1" name="well" xoffset="0mm" yoffset="0mm" max-well-volume="125.000000ul">
<shape type="Rectangle" x="4.000000mm" y="4.000000mm" rotation="0deg" color="MediumBlue"></shape>
</sub-well>
</sub-wells>
</plate>
<plate id="8fb80be3-98fe-3545-866b-1fc076a83428" name="SRWFB96-2" xoffset="14.280000mm" yoffset="11.240000mm" zoffset="15.000000mm" xpitch="9.000000mm" ypitch="9.000000mm" x-well-count="12" y-well-count="8" color="#FFA2D0E8">
<sub-wells>
<sub-well id="1" name="well" xoffset="0mm" yoffset="0mm" max-well-volume="340.000000ul">
<shape type="Rectangle" x="8.200000mm" y="8.200000mm" rotation="0deg" color="MediumBlue"></shape>
</sub-well>
</sub-wells>
</plate>
</labware>

Did this answer your question?