Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The Illumina Preconfigured Workflows Package (PCWP) supports the integration of Clarity LIMS with established lab protocols. The integration provides preconfigured workflows that map to lab protocols and steps, and support Illumina library prep kits, reagent kits, and controls. For detailed information on the installed workflows, see the instrument integrations and protocols documentation.
The Clarity LIMS NGS Extensions Package includes the place_indexes script, which assigns indexes (reagent labels) to samples in the destination container, based on the pattern defined in a specified index pattern file — and optionally validates the indexes against the pattern file.
This section provides details on the script and its parameters, and LIMS configuration requirement
The place_indexes script is intended to be run on entry to, and optionally on exit from, the Add Labels / Reagents screen of a step.
On entry to Add Labels / Reagents screen, the script assignes an index (label) to each sample in the destination container, based on the pattern defined in the specified index pattern file.
On exit from Add Labels / Reagents screen, the script validates the indexes against the pattern file. You can also use the script to check:
If the user has modified the indexes.
If the current step permits user modifications.
The index pattern file is a tab-separated file consisting of two columns, DEST_WELL and INDEX_NAME, and is in the following format:
The destination well format provided in the file must match the well placement configuration of the container type intended for use in the LIMS. The reagent index name must match the name of a reagent in the LIMS.
xx is a short description about the step that accesses this file
yy is a 2-digit value in the range from 01 to 99
There are three levels of validation provided by the script:
Index placement can be modified by the user on the fly.
Index placement is locked down by an administrator and cannot be modified by the user.
Index placement must be locked down by an administrator prior to use.
Two options determine which level of validation to apply:
The presence of a corresponding checksum file for the given pattern file.
The presence of the locked script parameter.
When there is no checksum file, and locked is not provided to the script (or is provided as false), index placement is user-modifiable.
Checksum file
If the reagent index placement pattern is not user-modifiable, an administrator can create a checksum file to ensure that the user has not changed the index placement on the fly.
This checksum file should have the same name as the placement pattern file, but with the file extension .md5. For example:
placement_pattern_index_pcramp_01.tsv
placement_pattern_index_pcramp_01.md5
The checksum file must be placed in the same location as the corresponding index pattern file. When a checksum file is found and the user has modified the indexes on the samples in the step, the script reverses the changes made by the user.
The checksum file contains the .md5 checksum for the corresponding pattern file itself. This checksum value is compared against the pattern file to validate whether the pattern file has been modified. If it has been modified, the script displays an error message and index placement does not occur. If an administrator wishes to change the pattern file contents, they must also regenerate the checksum when the updated pattern is available for use.
Locked patterns
The locked parameter provides an additional layer of validation. If this is provided to the script, the current pattern requires the presence of a checksum file. This ensures that an administrator has approved the pattern for use before it is used in a step.
In some steps where reagent autoplacement is configured, there may be some reagent categories where this is not desired.
For example, the workflow may permit either a full 96 well plate of samples in the indexing step, or merely 8 samples in tubes. For the 8 samples, a different reagent category is used than for the batch of 96. In this case, the ignoredCategory parameter may be used to indicate that if the 8-sample reagent category is selected for the step, index placement will be performed manually.
The place_indexes script is intended to be run on entry to / exit from the Add Labels / Reagents screen of a step.
To achieve this, configure the automation trigger as follows:
Trigger Location: Add Labels screen
Trigger Style: Automatic upon entry / exit
The step must be configured for adding reagent indexes.
The script must run on entry to or exit from the Add Labels / Reagents screen.
The pattern file must be a tab-separated (.tsv) file.
The pattern file headers must be DEST_WELL and INDEX_NAME.
The reagents in the pattern file must match the name of reagents configured in the LIMS.
Only Index type reagents are supported.
The destination container type selected must match the well placement information in the pattern file.
There must not be more samples in the step than are supported by the selected pattern file.
Only a single destination container is supported.
If the locked parameter is provided, a checksum file must be present.
If a checksum file is present, the index placements may not be modified by the user.
The checksum file must be in the same location and have the same name as the pattern file, with extension .md5.
The checksum file contents must be the checksum value for the corresponding pattern file.
If a checksum file is present, the pattern file and checksum file must have the same checksum value.
Pattern name files may be customized. However, for out-of-the-box LIMS integrations, the supplied pattern file names follow the convention: placement_pattern_index_xx_yy.tsv, where:
Parameter
Description
-u {username} -username {username}
(Required) LIMS login username
-p {password} -password {password}
(Required) LIMS login password
-i {stepURI:v2} -stepURI {stepURI:v2}
(Required) LIMS step URI
-f <pattern file directory and file name> -patternFilePath <pattern file directory and file name>
(Required) Path (directory + file name) of index placement pattern files Providing the directory without the file name results in an error. You must provide both.
-ic <'name of reagent category / label group'> -ignoredCategory <'name of reagent category / label group'>
(Optional, may be provided multiple times) Reagent category for which autoplacement should not occur
-locked <true/false>
(Optional) Provide as true if the index placement is locked and not modifiable by the user. If not provided, defaults to false.
-fc <true/false> -finalCheck <true/false>
(Optional) Provide as true if you are running this as the final check to make sure autoplacement was not modified.
DEST_WELL
INDEX_NAME
A:1
AD001 (ATCACG)
B:1
AD002 (CGATGT)
C:1
AD003 (TTAGGC)
D:1
AD004 (TGACCA)
E:1
AD005 (ACAGTG)
F:1
AD006 (GCCAAT)
G:1
AD007 (CAGATC)
H:1
AD008 (ACTTGA)
A:2
AD009 (GATCAG)
Last Updated: November 2024
Release Date: June 2024
Document Version: 2
These release notes detail the key changes to software components for the Next Generation Sequencing (NGS) Extensions Package v5.25.0.
Refer to Compatibility under Instruments & Integrations.
Added the download_attachments script. This script copies one or more result files attached in a step to a user-specified directory within Clarity LIMS. For example, this script can copy a generated sample sheet to a mounted directory so that the user can access it directly from the instrument control software.
None
An error occurs when reformatting the date using the Lab Logic Toolkit with the Date utility class. The date reformatting can be done with java.time instead.
Last Updated: November 2024
Release Date: September 2023
Document Version: 2
These release notes detail the key changes to software components for the Next Generation Sequencing (NGS) Extensions Package v5.23.0.
Refer to Compatibility under Instruments & Integrations.
Updates Java and third-party dependency libraries.
Updates Groovy to v3.0.7.
Stopwatch parameter -s is replaced with the -stopwatch parameter for NGS 5.21.0 and later.
The sample sheet for the MiSeq now shows the following information:
The pool name instead of the sample name when the pool contains only one sample.
The well and plate information for submitted samples instead of for libraries.
Fixed issue where the template file generator created duplicate lines for the first data source entry when using multiple data sources.
Fixed issue where the driver file generator did not append the existing log file.
The changeWorkflow script on the No Output step reflects the correct number of samples being routed.
Fixed the Insecure Input Validation (SRCCLR-SID-22742) vulnerability.
Fixed degradation of the LLTK script performance when updating the custom field with an empty string.
Fixed degradation of the log file download performance when automation performs write actions on an existing log file.
Improved the LLTK script error messages to show details of artifacts.
An error occurs when reformatting the date using the Lab Logic Toolkit with the Date utility class. The date reformatting can be done with java.time instead.
Last Updated: November 2024
Release Date: February 2024
Document Version: 2
These release notes detail the key changes to software components for the Next Generation Sequencing (NGS) Extensions Package v5.24.0.
Refer to Compatibility under Instruments & Integrations.
Added the following scripts:
validate_selected_container
validate_same_udf_valuee_for_analytes
None
An error occurs when reformatting the date using the Lab Logic Toolkit with the Date utility class. The date reformatting can be done with java.time instead.
The -s in the stopwatch parameter is replaced with -stopwatch in NGS v5.21 and later.
The Clarity LIMS NGS Extensions Package includes the AccessionReagentKitLots script, which automates the accessioning of reagent lots based on container names. This section provides details on the script and its parameters, and LIMS configuration requirements.
Designed for use in automated workflows, the AccessionReagentKitLots creates a new reagent lot, matching the Reagent Kit Name specified in the command line to a reagent kit configured in the LIMS.
The script populates the lot details according to the following logic (see Script Parameters section for details):
Lot Name = Lot name (specified by lotName parameter)
Lot Number = Container name (specified by from parameter)
Expires = now + expiry days (specified by expiryDays parameter)
Status of Reagent Lot toggle switch is set to Active
Before accessioning the reagent lot, the script verifies that:
The expiryDays parameter value is greater than 0, and is a whole number
The reagent lot does not already exist in the LIMS - lots are not reusable.
The script checks whether there is an existing reagent lot in the LIMS that matches the combination of lot name + lot number provided. If so, validation fails. (Kit name is not checked during this validation process.)
If a unique combination of lot name + lot number is provided, the LIMS creates the new lot—even if there are already lots in the LIMS matching either the name or the number.
Note that it is therefore possible to create both of these lots:
Lot 'ABC' with number '123'
Lot 'ABD' with number '123'
The following sections describe the configuration intended to support the AccessionReagentKitLots script.
Master Step Custom Fields
Configure master step custom fields (step UDFs in v4.x) for reagent kit name and lot name, and display them in the Step Details area of the Record Details screen. When running the step, the user fills in these values and they are supplied to the reagentKit and lotName parameters in the script. In this scenario, configure the automation command line as follows:
Automation trigger
The script is intended to be automatically triggered at the end of a step. However, you may include the -t option to run the script in test mode and trigger the script via button on the Record Details screen.
Reagent Kit Name specified in the command line must match a reagent kit configured in the LIMS.
expiryDays parameter value must meet the following criteria:
Must be a whole number greater than 0.
Must be a numeric value (i.e., '1' not 'one').
When specifying the from parameter, note that the script only supports the value 'outputContainer' if the step outputs are samples. Step output measurement records with placement are not supported.
Accessioning reagent lots with this script sets each reagent lot status to Active until the expiry date is reached. You cannot use the script to add reagent lots with status set to Pending.
The step should only be run with a single container matching the from definition.
If from is defined as the output container, the step can have multiple input containers but all samples must be placed in the same output/destination container. This is because the script only looks up a single container name. If there are multiple output containers in the step, the script will not fail; however, it will choose a container arbitrarily, which could result in unexpected behavior/results.
Available from: Clarity LIMS v2.0.5
This section discusses using the initArtifactUDFs script to transfer the UDFs associated with samples and processes to downstream artifacts. Typically, the script is used to copy UDFs from sample inputs and processes to sample outputs.
For each output, the initArtifactUDFs script searches for UDFs of the same name - in both the input samples and the process. If a match is found, it then copies the UDF values to the corresponding UDFs on the sample output.
How it works:
Identify the list of sample UDFs configured as output UDFs for this process (e.g. as would be defined in the 'Output Details' section of the process configuration).
For each sample UDF, look for an identically named UDF on the submitted sample; if a match exists, copy the value from the submitted sample to the sample's output UDF. If there is no UDF match, do nothing.
For each sample UDF, look for an identically named UDF on the process; if a match exists, copy the value from the process to the sample's output UDF. If there is no UDF match, do nothing.
Typically, the values will be derived from the submitted sample(s). In some cases, there will also be a need to copy data from the process level (specified by the user executing the process) down to each sample output UDF.
In some cases, there may be a need to account for pooling - i.e., where there are multiple submitted samples for a single output sample. The basic strategy here is to create small groupings of these values, such that each grouping does not contain multiple entries of the same UDF value.
Useful information
If both process and any number of samples have values for the same UDF name, the process UDF value is used.
If multiple samples have different values for the same UDF name, the values are combined using '+' as a separator (up to 5 values, additional values are omitted and represented with ''...').
In the case where an output UDF value already exists, the initArtifactUDFs script will NOT override existing values. (This scenario is extremely rare - one has to be very fast to manually set UDF values before an EPP script runs.)
Available from: Clarity LIMS v2.0.5.
Often, a user has certain values associated with libraries prior to preparing a flow cell. When loading the libraries into the flow cell, the user needs to track these values as attributes of the flow cell lane to help interpret the metrics generated during sequencing.
For example, one might need to record a concentration as a sample UDF on normalized and pooled libraries. This can be accomplished by copying the value of identically named UDFs from inputs to non-shared outputs.
The copyUDFs script provides the ability to selectively copy the value of an input UDF to a UDF of the same name on outputs generated by a protocol step (process). Other capabilities of this script include:
The ability to map a single input to one or more outputs
The ability to define which UDF is copied across to outputs
Only the UDFs named in the -f (fields) parameter will be copied.
If input UDFs are not defined or have no value, nothing will be copied for those UDFs.
UDFs not being defined on an output result in the script aborting after displaying an error message.
The script is not applicable to shared outputs.
UDFs of the same name must be present in the input and enabled as an output detail.
The Clarity LIMS NGS Extensions Package v5.14 includes the computeReplicateAverage script, which automates calculation of replicate (referred to as derivatives in the LIMS) average values. The script can also optionally calculate standard deviation and %CV values.
This section provides details on the script, its parameters, and LIMS configuration requirements.
The computeReplicateAverage script uses data stored in a source UDF / custom field (specified by the src parameter) to calculate the average across replicates, and writes the resulting value to a destination UDF / custom field (specified by the dest parameter).
The script assumes the step has input analytes / derived samples with replicated per-input results / measurements.
The script groups the per-input results / measurements by their parent analyte / derived sample.
For each group, the script calculates the average of the result UDFs / measurement custom fields specified by the src parameter, ignoring any results that:
Are missing src values, or
Have an exclude field set to true
The resulting averages are written back into the parent analyte / derived sample field specified by the dest parameter for each group.
The exclude parameter is optional and no exclusions are performed if it is missing.
The script can also be used to calculate standard deviation and %CV values and add these results back to the corresponding UDF / field in the parent analyte / derived sample. The names of the Standard Deviation and %CV UDFs must be given to the script for it to update the values.
When working with the computeReplicateAverage script, the automation command line must be constructed as follows:
The inputs to the step must have values for the analyte UDF / derived sample custom field to be used as the source field. There must be an additional analyte UDF / derived sample custom field configured as the destination field - to capture the calculated replicate average. Both field types must be Numeric.
The following table provides example field configuration details.The field names used correspond to those used in the command line Example 1 shown above.
Configured on ResultFile in LIMS v4.2.x and Measurement in LIMS v5.x & later
Configured on Analyte in LIMS v4.2.x and Derived Sample in LIMS v5.x & later
Available from: Clarity LIMS v2.0.5
A user may need to add reagent labels to sample outputs that do not have reagent labels assigned to them.
The labelNonLabeledOutputs script provides the ability to add reagent labels to sample outputs for which there is no pre-existing reagent label.
The script checks each process output for existing reagent labels; if an output does not have at least one pre-existing reagent label then the label supplied as a script parameter is applied.
For each output that does not already have a reagent label applied to it (e.g. control samples), the script will apply a reagent label named with the supplied string.
In the Preconfigured Package for Illumina NGS, all sequencing libraries go through a demultiplex process to both convert data to FASTQ and demultiplex reads if necessary. Note that presently, inputs that do not have a reagent label do not create an output in a demultiplex process even though we need BCL convertor to convert their reads to FASTQ.
Available from: Clarity LIMS v1.0
This section discusses the normalizationBufferVolumes script, which is used to calculate buffer volumes.
The normalizationBufferVolumes script generates a comma-separated file — Normalization buffer volumes.csv — file that holds the calculated buffer volumes information. The generated file is a attached to the Library Normalization step in the LIMS.
The script calculates the 'Volume of Dilution Buffer (uL)' as follows:
"Volume of Dilution Buffer (uL)" = ( ("Source Volume (uL)" * "Source Conc.") / "Destination Conc." ) - "Source Volume (uL)"
The script
requires that input samples to the step have Concentration and Conc. Units UDFs.
only supports Conc. Units of nM.
The following step UDFs are configured on the Library Normalization step:
Library volume (ul) transferred to DESTINATION plate: Numeric, Default = 10
Normalized conc. (nM): Numeric, Default = 2
Maximum destination container volume (ul): Numeric, Default = 800
The inputs to the step must have values for the following sample UDFs:
Concentration: Numeric
Conc. Units: Single Line Text
One sample input generates one sample output and one shared result file.
The CSV file header contains the date and a record of the user who generated the file.
The contents of the CSV file are ordered by source plate and then source well.
Other scripts you may find useful:
Clarity LIMS NGS Extensions Package v5.17 and later includes computeLinearRegression script. This script calculates values for slope, intercept, and r-squared, and uses these values to populate corresponding fields. The field names are configurable via script parameters, and will differ depending on the LIMS integration.
In addition, the script requires values for y-axis and x-axis. These values are both related to control samples:
y-axis: This is configured as an analyte UDF / derived sample custom field on the control sample. The field name is configurable and is passed in as a script parameter.
x-axis: This is the control type's concentration (entered in the Conc. field). This is not configurable.
The following table defines the parameters used by the computeLinearRegression script.
This section describes the configuration required for the linear regression calculation.
Step UDFs /Custom Fields
Three step UDFs / custom fields must be configured on the master step / process type, to capture the linear regression slope, intercept, and r-squared values. These fields should display on the Record Details screen at run time.
The following table provides example field configuration details. The field names used correspond to those used in the command line example shown above.
The control samples in the step must have values for a specific derived sample custom field / analyte UDF.
The following table provides example configuration details for this field. The field name used corresponds to the name used in the command line example above.
The field is configured on Analyte in LIMS v4.2.x and Derived Sample in LIMS v5.x and later.
Control samples used in the step must have valid concentration values:
Concentration must be a numeric value.
Optionally, the numeric concentration value can have text following it to specify the units, for example - 10.02 nM. Note that units are for display purposes only and are not factored into the calculation.
Concentration must be a value other than 0. Controls with 0 concentration value are ignored.
Slope, intercept, r-squared and -y (Raw CP in the example) field values must all be numeric.
There must be 4 or more control samples in the step that can be used in the calculation - i.e., after passing validation.
Number of control samples can be configured through -minData parameter.
Control samples must have:
A name that matches the pattern provided by the -select parameter (if provided).
A y-axis field filled in with a numeric value.
A concentration value filled in for their control type, with a non-zero numeric value.
If any of these conditions is not met, the control samples fail validation and are excluded from the calculation. These do not count towards the minimum number of control samples.
In the example shown above, the paths may differ for your system. For example, the version number may differ.
You may also find the following script useful:
Typically it is the step outputs that need to have this field available to fill in. However, the field could also be made available on the step inputs to support the case where multi-step controls are used as inputs to the step.
If -logX parameter is specified as 'true', the calculated log10(concentration) value is used as the x-axis value (see ).
Version
Changes
2
Updated Compatibility section to reference Compatibility matrix table.
1
Initial release.
Version
Changes
2
Updated Compatibility section to reference Compatibility matrix table.
1
Initial release.
Version
Changes
2
Updated Compatibility section to reference Compatibility matrix table.
1
Initial release.
Parameter
Description
-u {username} -username {username}
(Required) LIMS login username
-p {password} -password {password}
(Required) LIMS login password
-i {stepURI:v2} -stepURI {stepURI:v2}
(Required) LIMS step URI
-log {logFileLIMSID} -logFileName {logFileLIMSID}
(Required) LIMS ID of the log file placeholder
-from <outputContainer / inputContainer>
(Required) Must be either 'outputContainer' or 'inputContainer'. This dictates where the 'Container Name' value is copied from. This is used to create the lot number. Only supports output containers on steps that output samples. See Rules and Constraints.
-reagentKit <Reagent Kit Name>
(Required) Reagent Kit name on which the generated lot is based.
-lotName <Reagent Lot Name>
(Required) Reagent Lot name to assign to the lot
-expiryDays <#>
(Required) Number of days the lot's expiry date will be set to. Must be greater than zero (script checks for this).
-t <true/false> -testMode <true/false>
(Optional) Runs script in test mode. Script is triggered manually via button on Record Details screen. Defaults to false.
Parameter
Description
-u {username}
(Required) LIMS login username
-p {password}
(Required) LIMS login password
-i {processURI:v2}
(Required) LIMS process URI
-f {name, name, name}
(Required) UDF names (Required)
Parameter | Description |
-u {username} -username {username} | (Required) LIMS login username |
-p {password} -password {password} | (Required) LIMS login password |
-i {stepURI:v2} -stepURI {stepURI:v2} | (Required) LIMS step URI |
-log {logFileLIMSID} -logFileName {logFileLIMSID} | (Required) LIMS ID of the log file placeholder |
-src <srcUDF> -srcUDF <srcUDF> | (Required) Source UDF / custom field name |
-dest <destUDF> -destUDF <destUDF> | (Required) Destination UDF / custom field name |
-exclude <excludeUDF> -excludeUDF <excludeUDF> | (Optional) Exclude UDF / custom field name |
-sd <sdUDF> -stdDevUDF <sdUDF> | (Optional) Standard deviation UDF / custom field name |
-cv <cvUDF> -cvUDF <cvUDF> | (Optional) %CV UDF / custom field name |
Field Name | Field Type | Field Constraints / Options | Preset Values / Additional Options |
Concentration In example 1, this is the field specified by the -src parameter | Numeric |
| Decimal Places Displayed: 2 |
Ignore In example 1, this is the field specified by the -exclude parameter |
|
| Default: None Set |
Field Name | Field Type | Field Constraints / Options | Preset Values / Additional Options |
Avg Concentration In example 1, this is the field specified by the -dest parameter | Numeric | Required: Yes Read Only: No | Decimal Places Displayed: 2 |
Parameter | Description |
-u {username} | (Required) LIMS login username |
-p {password} | (Required) LIMS login password |
-i {processURI:v2} | (Required) LIMS process URI |
Parameter | Description |
-u {username} -username {username} | (Required) LIMS login username |
-p {password} -password {password} | (Required) LIMS login password |
-i {stepURI:v2} -stepURI {stepURI:v2} | (Required) LIMS step URI |
-log {logFileLIMSID} -logFileName {logFileLIMSID} | (Required) LIMS ID of the log file placeholder |
-y <FieldName> -yAxisUDF <UDFName> | (Required) Analyte / Derived sample field name for Y axis. |
-slope <FieldName> -slopeUDF <FieldName> | (Required) Slope process / step field name |
-ic <FieldName> -interceptUDF <FieldName> | (Required) Intercept process / step field name |
-rsq <FieldName> -rSquaredUDF <FieldName> | (Required) R-squared process / step field name |
-x <FieldName> -xAxisField <FieldName> | (Deprecated parameter, not supported) Control type concentration field name for x axis. This value specifies the API name that will be used to read the concentration from the control type. Not configurable. Note: This field appears as concentration in the API, but displays as Conc. in the user interface. You cannot customize this naming in the API. In addition, the script does not attempt to read the concentration from the control sample instead of the control type. For example, if you add a UDF / custom field to the control sample, you cannot use that field as the X axis value. |
-logX <true/false> -logXMode <true/false> | (Optional) If set to 'true', reads the concentration value from the control type, calculates the log10 of that value, and uses the result for the x-axis.
|
-minData <#> -minDataPts <#> | (Optional) Minimum number of data points needed to run linear regression.
|
-select <(ControlName1)|(ControlName2)> -selectControl <(ControlName1)|(ControlName2)> | (Optional) Regular expression that selects the control names to be used in the calculation.
|
Field Name | Field Type | Field Constraints / Options |
Intercept The field specified for the -ic parameter | Numeric |
|
R-Squared The field specified for the -rsq parameter | Numeric |
|
Slope The field specified for the -slope parameter | Numeric |
|
Field Name | Field Type | Field Constraints / Options |
Raw CP The field specified for the -y parameter | Numeric |
|
Parameter | Description |
-u {username} | (Required) LIMS login username |
-p {password} | (Required) LIMS login password |
-i {URI} | (Required) LIMS process URI (must have at least one sample output) |
-l {name} | (Required) Reagent label to be applied |
Parameter | Description |
-u {username} | (Required) LIMS login username (Requires admin credentials) |
-p {password} | (Required) LIMS login password |
-i {URI} | (Required) LIMS process URI |
-c {filename} | (Required) Normalization Buffer Volumes CSV file name |
The Clarity LIMS NGS Extensions Package v5.14 and later includes the validateUniqueIndexes script. When defining a batch of samples for library prep, this script ensures that the resulting batch will be valid for later workflow steps - such as pooling or sample sheet generation.
This section provides details on the script, its parameters, and LIMS configuration requirements.
The validateUniqueIndexes script checks that the reagent labels (referred to as reagent types in LIMS v4.x and earlier) attached to the input samples have distinct index sequences.
By default, validation will fail:
If input samples have the same reagent labels.
If input samples have reagent labels with different names but the same index sequence.
If the Ice Bucket contains more than one unindexed sample (see Rules & Constraints).
If any input sample is a pool (see Pool Types). You can change this behavior using the -allowPools command-line option (see Script Parameters).
If pools are allowed, they will be validated like other input samples.
Every index sequence applied to step inputs in the pool will be considered when checking for duplicated sequences (see Rules & Constraints).
An input is considered to be a pool if it contains multiple submitted samples and/or multiple reagent labels. A typical pool comprises multiple submitted samples and multiple labels; however, the following less common, and more complex, use cases are also supported.
A submitted pool
This has one submitted sample, but multiple labels - therefore it is considered a pool.
Multiple submitted samples pooled together without labels
This has multiple submitted samples - therefore it is considered a pool.
A single submitted sample with replicates recombined back into a pool
If the recombination is done with adding labels to the replicates, it is considered a pool.
If the recombination is done without adding labels, it is not considered a pool.
The validateUniqueIndexes script is intended to run when the user selects the Begin Work button on the Ice Bucket screen and starts the step.
To achieve this, configure the automation trigger as follows:
Trigger Location: Step
Trigger Style: Automatic upon entry / exit
Each reagent label name must be unique. The label name is only used to look up the corresponding index sequence in the API. However, if two or more label groups (referred to as reagent categories in LIMS v4.x and earlier) contain labels with the same name, the LIMS will not be able to distinguish between them and the validation script will fail.
The script does not look upstream for labels - it only looks at the labels currently applied to the step inputs.
The Ice Bucket may include one input sample with no index assigned, therefore allowing a PhiX or similar control to be included in the pool (a control will typically have no label - this scenario is supported and the validation script will run without error).
For LIMS v4.x and earlier, this also applies to samples with a reagent type that is not an index. Note, however, that in any scenario, the label must exist as a reagent type in the LIMS. If you add a label to an input, and the label does not have a corresponding reagent type, the validation script will fail. See note below.
Available from: Clarity LIMS v2.0.5
Often, a user wants to determine what work has been performed on several samples by running the Sample History Report. However, suppose they were to use the sampleHistoryReport script on 600 samples that involve the same four processes. The result would be 600 reports (one for each sample), each of which provides information on only that one sample.
A preferable alternative is to use the processHistoryReport script, which is run only once for each process. In this example, therefore, it would produce only four reports (one for each process) allowing for a better grouping of information and less files.
The processHistoryReport script has two parts: 1. Retrieve the necessary information, and 2. Compile that information into a report.
The script generates one report ('Process Summary Report') for all inputs, output as a single shared result file.
The script is configured on the Illumina Sequencing (Illumina SBS) 5.0 step, as 'Report creation script.'
The report is generated in XLS format using POI.
The report is automatically attached to the pre-configured report process result file output.
Add a process UDF of type Checkbox, with the exact name of the process you want to include. For example: "3. Denature, Dilute and Load Sample (MiSeq)"
When the process is run, select the checkbox to include that process in the Process Summary Report.
Note that the script may also be run in the following directory:
Report process configuration may be obtained using the LIMS configuration import/export tools or the LIMS Config-Slicer tool.
The script must be run from the LIMS Operations Interface.
To be included in the report, a process must have at least one output UDF specified.
The report requires a pre-configured process type + EPP parameter string ('TruSeq Process Summary Report').
The report runs from the specified artifact down the genealogy tree. For complete and correct output, it is recommended that it be run on the original submitted samples.
Other scripts you may find useful:
Clarity LIMS NGS Extensions Package v5.17 and later includes the validateCompletePlateStarted script. This script checks that all samples in a container were started together on the current step. This section provides details on the script and its parameters, and LIMS configuration requirements.
The purpose of the validateCompletePlateStarted script is to make sure that all of the samples in the input plate were started together. The validation supports partially-filled plates and multiple plates.
You can supply additional parameters to the script, to optionally enforce:
'Cannot proceed with partial plate' logic for only for the samples that are queued to the current step, instead of the entire plate contents. Default is false—the entire plate contents are verified.
Contiguous row-major or column-major layout. This makes sure that the input plate(s) are in the expected layout and contain no gaps between the first and last sample. By default, this is not enforced.
The validateCompletePlateStarted script is intended to run when the user selects the Begin Work button on the Ice Bucket screen and starts the step.
To achieve this, configure the automation trigger as follows:
Trigger Location: Step
Trigger Style: Automatic upon entry
The Clarity LIMS NGS Extensions Package includes the validateSampleCount script, which checks the number of samples being input to or output by the step.
This article provides details on the script and its parameters, and LIMS configuration requirements.
The script validates the number of step inputs or outputs, comparing it against configurable minimum and maximum values - determined by -min and -max parameters.
By default, the script runs in count inputs mode and validates the step inputs. If you supply the optional -o parameter with value set to true, the script runs in count outputs mode and validates the step outputs.
The validateSampleCount script is intended to run when the user clicks the Begin Work button on the Ice Bucket screen and starts the step.
To achieve this, configure the automation trigger as follows:
Trigger Location: Step
Trigger Style: Automatic upon entry
The routing script allows for the movement of samples from one workflow to another. The script can move sample individually or in bulk.
Individually — the script uses derived sample custom fields (analyte UDFs in v4.x)
In bulk — the script uses master step custom fields (step UDFs in v4.x).
To move samples, first define the workflow and the step to which the samples will be sent. The script can be modified in the automation command line.
This section discusses the Routing script - Normalize Libraries automation used in the Illumina Preset Protocols (IPP). The automation invokes the changeWorkflow script, which routes step outputs to the next protocol in the workflow according to the Sequencing Instrument field value of each sample.
Command Line
The default automation command line for the routing script is as follows.
The default command line includes one section, and will always send the samples to the same workflow. To offer multiple workflow and/or step choices, you must add multiple sections, as shown in the following examples.
To send samples into a QC Protocol, use the protocol name instead of the name of the step name.
Script Parameters
Next Step Configuration
For the routing script to be triggered, the Next Step value for all samples in the step must be set to Remove from workflow. You can set this value manually or automatically, using a script.
On the protocol configuration screen, in the Next Steps section, the method of assigning the next step must be set to Automatic.
Automation Trigger Configuration
By default, the routing script automation should be configured to be automatically triggered at the end of the step.
After the script has completed, a dialog box displays. This dialog box shows the number of samples routed to each step — or an error message if something went wrong.
Global Custom Fields / UDFs
The following table provides configuration details for the global custom field configured to support the routing script automation. This example is based on the Routing Script - Normalize Libraries automation.
The field is configured on Analyte in LIMS v4.2.x and Derived Sample in LIMS v5.x onwards.
You can modify the default configuration by removing / adding instruments.
The --FIELD_NAME and --FIELD_VALUE are only available for derived sample and master step custom fields.
If no custom field should be checked, provide "N/A" to FIELD_NAME and FIELD_VALUE.
If the --FIELD_VALUE parameter value passed to the script does not match the value in the --FIELD_NAME custom field, the routing script does not route the sample.
The routing script works with the Remove from workflow function in the Next Steps of any step. Make sure that the correct settings or permissions are in place to allow for this function. For details, see the preceding Configuration Requirements section.
Available from: Clarity LIMS v2.0.5
Often, a user would like to set or change the value of a UDF. If the UDF is accessible from the initial process URI, the setUDF script can be used.
The setUDF script allows several operations to take place, including - but not limited to the following:
Set a UDF on an output container to today's date.
Set a UDF on any sample associated with any input to a person's name.
Set a UDF on any output to a lab name (referred to as 'Account' in Clarity LIMS).
Set the input container name as a process level UDF.
Read a project UDF and set it on a sample.
There are multiple ways to implement this script, as illustrated by the following examples.
Both the target entity and (optionally) the source value are expressed as chains of XPath expressions (using ->
as separators).
Even if you are using XPath to specify the source value, setUDF applies a single value per invocation to all target objects. It cannot apply different source values to different target objects.
You can use -z as an option when running the script to simulate the effects it would have. Note that even though an output identifying the target object(s) and the value that would be set is produced no changes are actually made.
Other scripts you may find useful:
In LIMS v4.x and earlier, a reagent type may not be an index type. In this case, it will have a label and a corresponding reagent type, but no sequence value. This scenario is supported and the reagent type is treated as non-indexed. It is also possible, via the API, to add labels arbitrarily to samples, without those labels having a corresponding reagent type - this scenario is not supported.
The Remove from workflow option is only available on the Assign Next Steps screen for users who have the RemoveSampleFromWorkflow permission. If you use the manual method, you must make sure that users who need to set this option at run time have the correct permission. For details on configuring role-based permissions, see the Core LIMS documentation.
In the examples shown above, the paths may differ for your system. For example, the version number may differ. For Clarity LIMS 4 or before, the process URI token should be:
Parameter
Description
-u {username}
(Required) LIMS login username
-p {password}
(Required) LIMS login password
-i {URI}
(Required) LIMS process URI
Parameter
Description
-u {username} -username {username}
(Required) LIMS login username
-p {password} -password {password}
(Required) LIMS login password
-i {stepURI:v2} -stepURI {stepURI:v2}
(Required) LIMS step URI
-log {logFileLIMSID} -logFileName {logFileLIMSID}
(Required) LIMS ID of the log file placeholder
-layout <'ROW'/'COLUMN'>
(Optional) One of 'ROW' or 'COLUMN', if provided. When present, script enforces that the samples are laid out in gap-free, row-major or column-major order.
-queuedOnly <true/false>
(Optional) When provided and set to true, the script ensures that samples queued to the started step were started together. Samples dropped earlier in the workflow will are ignored. Default is false.
-t <true/false> -testMode <true/false>
(Optional) When provided and set to true the script reports errors in accordance with 'Record Details button' mode, instead of the default 'screen transition' mode. Default is false.
Parameter
Description
-u {username}
(Required) LIMS login username
-p {password}
(Required) LIMS login password
-i {stepURI:v2}
(Required) LIMS step URI
-o <true/false>
(Optional) Set this parameter to true to run the script in count outputs mode. If the parameter is omitted or has a value other than true, the script will run in count inputs mode.
-min <#>
(Optional) Specifies the minimum number of inputs / outputs required. If not provided, default minimum is 0.
-max <#>
(Optional) Specifies the maximum number of inputs / outputs required. If not provided, default maximum is 2147483647.
Parameter
Description
-u {username} -username {username}
(Required) LIMS login username
-p {password} -password {password}
(Required) LIMS login password
-i {stepURI:v2} -stepURI {stepURI:v2}
(Required) LIMS step URI
-allowPools <true/false>
(Optional) Default is false. When provided and set to true, the script will allow pools as inputs to the step. By default, validation will fail if any input contains multiple submitted samples or multiple reagent labels.
Parameter
Description
-i {lims step uri} -stepURI {lims step uri}
LIMS step URI (Required)
-u {username} -username {username}
LIMS login username (Required - requires admin credentials)
-p {password} -password {password}
LIMS login password (Required)
-l <log file path and name> -logFileName <log file path and name>
Path destination for the log file (Required)
--FIELD_NAME
LIMS custom field name (derived sample (analyte) or step)
--FIELD_VALUE
LIMS UDF preset /custom field option value If the field type is a check box/toggle, the --FIELD_VALUE should be set as 'true' or 'false'
--WORKFLOW
Name of LIMS workflow to which the samples will be sent
--STEP
LIMS step within the workflow
--INPUTS_OR_OUTPUTS
Specifies whether the LIMS UDF / custom field is from the input or the output
Field Name
Field Type
Field Constraints / Options
Preset Values / Dropdown Items
Sequencing Instrument
Single-line Text (v4.2.x)
Text Dropdown (v5.x and later)
Required: Yes
Read Only: No
Custom Entries: No
MiSeq
NextSeq
NovaSeq
Parameter
Description
-u {username}
(Required) LIMS login username
-p {password}
(Required) LIMS login password
-i {URI}
(Required) LIMS process URI
-f {name}
(Required) UDF names
-t {XPath}
(Required) Path to the target object
-s {XPath}
(Optional) Path to the source element/attribute
-v {value}
(Required if the path to the source value is not provided, optional otherwise) UDF value