Automation and Workflow Customization
Clarity LIMS Product Analytics (CLPA) integrates Clarity LIMS data and makes it available through the ICA CLPA service. CLPA allows you to aggregate and analyze lab data from the end-to-end workflow in a single location. This data is uploaded through the ICA LINK service. An ICA subscription is required in order to enable the CLPA service.
CLPA supports the following workflows:
• | NovaSeq 6000 v3 |
• | NextSeq 1000/2000 |
• | NovaSeq X Series |
• | Library Prep Validation |
Other workflows and automations can be customized to add CLPA integration capabilities.

Before customizing automation and workflows in Clarity LIMS Product Analytics, make sure that the following items are installed and configured:
• | BaseSpaceLIMS-unified-product-analytics |
• | BaseSpaceLIMS-unified-product-analytics-scripts |
• | IPP v2.3 and later (with at least one supported workflow) |
• | Illumina Universal Sample Identifier custom field |

The Universal Sample Identifier is a Submitted Sample custom field used by the Register Sample automation. The field assigns a unique identifier to a sample across Illumina workflows. This identifier is used by CLPA to associate the sample with the workflows and analysis that result from a sequencing run and analysis (for example, sample lineage and traceability). Enter the Universal Sample Identifier value during sample accessioning. If the identifier is not provided during sample accessioning, the Register Sample automation does not have access to this value at run time. The CLPA association between the samples and other analytics data is also restricted.
When you install any of the CLPA enabled workflows, the Illumina Universal Sample Identifier custom field is automatically created. If the CLPA enabled workflows are not installed, the custom field must be created manually. When using the Illumina Universal Sample Identifier, the recommended data format is usi.<clarity_hostname>.<sampleId>.
For more information on installing CLPA enabled workflows, contact Illumina Support.
Add the Illumina Universal Sample Identifier Submitted Sample custom field.
1. | On the main menu, select Configuration, and then select the Custom Fields tab. |
2. | On the Global Fields tab, in the Submitted Sample list, select the plus icon to create a custom field. |
3. | Enter Illumina Universal Sample Identifier as the field name. |
4. | Set the following properties: |
a. | For Field Type, select Text. |
b. | For Required Field, select No. |
c. | For Read Only, select No. |
5. | Select Save. |

Common CLPA automation scripts are used for workflow customization. Workflow-specific automations require specific custom fields from Illumina workflows.
The following automations can be used on any step:
• | Step Started: |
bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} -s 'com/illumina/upa/scripts/common/step_started.groovy'"
• | Step Completed: |
bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} -s 'com/illumina/upa/scripts/common/step_completed.groovy'"
The Register Sample automation can be used on the Library Prep step. If there are multiple steps in the Library Prep workflow, only add the Register Sample automation to the first step of the protocol. The script is as follows.
bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0} -s 'com/illumina/upa/scripts/common/register_sample.groovy'
The Register Pool automation is available for the Pooling workflow. The script is as follows.
bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} -s 'com/illumina/upa/scripts/common/pooling.groovy'
Each automation can be configured to log messages in a log file defined with the optional parameter -I. This parameter must be updated to refer to a correct log file placeholder (for example, {compoundOutputFileLuid1}), as different steps can have different log file placeholder positions.

Customize the workflow with CLPA automation as follows.
1. | Identify the type of CLPA automation to be added along with the trigger location and style. |
For more information on CLPA automation types and trigger location and styles, refer to Automation Scripts for the applicable CLPA version.
2. | Identify the protocol step to be customized. |
3. | Check for any existing automations on the triggers (for example, Step/Automatic upon entry or Step/Automatic upon exit). If there is an existing automation, modify the script as follows. |
a. | Append the automation after the existing script with &&. Refer to the following examples. |
• | Before append: |
bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/<existingScript.jar>"
• | After append: |
bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/<existingScript.jar> \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar \
script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} \
-l {compoundOutputFileLuid0} -s 'com/illumina/upa/scripts/common/step_completed.groovy'"
When modifying an existing script, make sure to append the automation using the correct quotation marks ("). If you are appending an existing script on the next line, make sure that a backslash (\) is added on the last line of the script.
b. | Update the -I parameter to identify the correct Log File placeholder location. |
{compoundOutputFileLuid0} in the example refers to the first file placeholder.
c. | If necessary, update the automation name to describe the new behavior. |
d. | In the Automation Use section, enable the step. |
e. | Save the automation. |
4. | If there is not an existing automation on the protocol step, check for an existing automation that has been configured as follows. |
a. | Identify the automation that is being used (for example, Register Step Started). |
b. | Make sure that the log file setting for the existing script has the -I parameter. This parameter identifies the same Log File placeholder that is used with the step. |
• | If the Log File location is the same, enable the step in the Automation Use section. |
• | If the Log File location is not the same, create a separate automation and enable the step in the Automation Use section of the new automation. |
c. | Save the automation. |
5. | Go to Configuration and select Lab Work. |
6. | Select the step and configure the Trigger Location/Style. Refer to Automation Scripts for the applicable CLPA version. |
After the automation is enabled, the automation configuration option becomes available on the Step configuration page.
7. | Save the step. |