IGA Library Prep Automated v2.1 Overview
IGA Library Prep Automated v2.1 contains preset protocols that support the preparation of samples and libraries used for sequencing. These protocols can be used with the IGA NovaSeq Sequencing v2.1 workflow and NextSeq 1000/2000 v2.3 workflow (which is installed separately). The protocols provide the following functions:
File-based integration with the Hamilton robots that are used for liquid handling steps.
Automated calculation of sample and buffer volumes.
Automated calculation or display of reagents.
When required, automatic step transition.
Protocol 1: Sample Selection
Protocol Type = Sample Prep
Next Steps Configuration
Step 1: Select Samples
Master Step Name = Select Samples (IGA v2.1)
Automations
Validate Sample Attributes (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} -t false -h false script:evaluateDynamicExpression \
-exp 'if (! submittedSample.hasValue(::Sample Type::)) { \
fail(::Sample Type must be non-empty. Please update :: + submittedSample.::name::); \
}; \
acceptedSampleTypes = [::Genomic DNA::, ::Saliva::, ::Blood::]; \
if (! acceptedSampleTypes.contains(submittedSample.::Sample Type::)) { \
fail(::Invalid Sample Type found for :: + submittedSample.::name:: + ::. Must be one of :: + acceptedSampleTypes.join(::, ::)); \
}; \
if (! submittedSample.hasValue(::Submitted Sample Labware Type::)) { \
fail(::Submitted Sample Labware Type must be non-empty. Please update :: + submittedSample.::name::); \
}; \
acceptedSampleLabwareTypes = [::gDNA::, ::Saliva::, ::Blood1.3::, ::Blood2.7::, ::Blood7.5::, ::Blood10::]; \
if (! acceptedSampleLabwareTypes.contains(submittedSample.::Submitted Sample Labware Type::)) { \
fail(::Invalid Submitted Sample Labware Type found for :: + submittedSample.::name:: + ::. Must be one of :: + acceptedSampleLabwareTypes.join(::, ::)); \
}; \
if (! submittedSample.hasValue(::Units::)) { \
fail(::Units must be non-empty. Please update :: + submittedSample.::name::); \
}; \
if (submittedSample.::Sample Type:: == ::Genomic DNA:: && ! submittedSample.hasValue(::Sample Conc.::)) { \
fail(::Sample Conc. must be non-empty for Genomic DNA samples. Please update :: + submittedSample.::name::); \
};' -log {compoundOutputFileLuid0} && \
/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' && /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_started.groovy'"
Sample Selection - Set Library prep method and Next steps (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'submittedSample.::Library Prep Method:: = step.::Library Prep Method::' -log {compoundOutputFileLuid0} && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'if (submittedSample.::Sample Type:: == ::Genomic DNA:: && input.container.node.type[0].@name == ::96 well plate::) {nextStep = ::REMOVE::} else nextStep = ::ADVANCE::' -log {compoundOutputFileLuid0}"
Sample Selection - Route plated gDNA (IGA v2.1)Trigger Style = Automatic upon exit
Copy bash -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'if (submittedSample.::Sample Type:: == ::Genomic DNA::) {if (input.container.node.type[0].@name == ::96 well plate:: && step.::Library Prep Method:: == ::Illumina DNA PCR-Free:: ) {input.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA PCR-Free::} ; if (input.container.node.type[0].@name == ::96 well plate:: && step.::Library Prep Method:: == ::Illumina DNA with Enrichment::) {input.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA with Enrichment::}}' -log {compoundOutputFileLuid0} && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -u {username} -p {password} -i {stepURI:v2} -l {compoundOutputFileLuid0} script:changeWorkflow \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'INPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'INPUTS' \
&& /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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table
Column Headers
Additional Options and Dropdown Items
Illumina Universal Sample Identifier
Expanded View Fields
Additional Options and Dropdown Items
Decimal Places Displayed = 2
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Presets
Illumina DNA with Enrichment
Quick reference checklist: Sample Selection
Defaults =
User tasks for this page:
- Select Library Prep Method above
- Select Next Steps
Step File Placeholders
Set Library Prep Method Script Log - Automatically attached
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Decimal Places Displayed = 2
Protocol 2: Sample Plating
Protocol Type = Sample Prep
Next Steps Configuration
Step 1: Plate Samples
Master Step Name = Sample Plating (IGA v2.1)
Derived Sample Generation = Variable
Naming Convention = {InputItemlName}
Automations
Sample Plating & Extraction - Validate Single Sample Type and Library Prep Method (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (!step.hasValue(::Step Sample Type::)) {step.::Step Sample Type:: = submittedSample.::Sample Type:: + :: [:: + submittedSample.::Library Prep Method:: + ::]::} else {if ( step.::Step Sample Type:: != submittedSample.::Sample Type:: + :: [:: + submittedSample.::Library Prep Method:: + ::]:: ) { fail(::Samples must be of the same type and marked for same library prep method::) }}' \
-log {compoundOutputFileLuid1} \
&& /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'"
Placement Reminder (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_helpers/pop_up_msg.py -s {stepURI} -u {username} -p {password} -w 'OK' --message 'Please place all samples starting from position A:1, do not leave any gaps.'"
Sample Plating - Sample Placement SAM Plate Barcode Uniqueness Check (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'if ( !output.container.name.matches( ::LP[0-9]{7}-SAM:: ) ) {fail ( ::Invalid SAM Plate Barcode format. This plate ID must be in the format LPxxxxxxx-SAM, where 'x' is a digit 0-9, e.g. LP1234567-SAM. Please verify and try again.:: ) }' -log {compoundOutputFileLuid1} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/validate_sample_placement.py -u {username} -p {password} -s {stepURI}"
Sample Plating - Set Transfer Volume & Create Liquid Handler Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Manual button
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (submittedSample.::Sample Type:: == ::Blood::) {output.::Transfer Volume (ul):: = 30} ; if (submittedSample.::Sample Type:: == ::Saliva::) {output.::Transfer Volume (ul):: = 60}; if (submittedSample.::Sample Type:: == ::Genomic DNA::) {output.::Transfer Volume (ul):: = 45}' \
-log {compoundOutputFileLuid1} &&
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/PlatingInputFile_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
Sample Plating - Hamilton Output Plate Barcode Check, Store Instrument ID & Set Next Steps to Remove from Workflow before Custom Routing (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'nextStep = ::REMOVE:: ' \
-log {compoundOutputFileLuid1}"
Sample Plating - Route samples (IGA v2.1)Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (submittedSample.::Library Prep Method::.toLowerCase().contains(::enrichment::)) {output.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA with Enrichment:: } else if (submittedSample.::Library Prep Method::.contains(::PCR-Free::)) {output.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA PCR-Free::}' \
-log {compoundOutputFileLuid1} \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -u {username} -p {password} -i {stepURI:v2} -l {compoundOutputFileLuid0} script:changeWorkflow \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Blood_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Extraction - Blood (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Saliva_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Extraction - Saliva (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Blood_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Extraction - Blood (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Saliva_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Extraction - Saliva (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
&& /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'"
Queue
Defaults
Sample Grouping = Group by Projects
Sample Table
Column Headers
Additional Options and Dropdown Items
Expanded View Fields
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Projects
Sample Table (Column Headers)
Additional Options and Dropdown Items
Placement = Enabled
Defaults
Sample Grouping = Group by Projects
Placement Pattern = Column
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Liquid Handling Instrument ID
Quick reference checklist: Sample Plating. i) pre Liquid Handler
Defaults =
User tasks for this page:
- Select blue 'Run' button
- Download Liquid Handler Input File
Quick reference checklist: Sample Plating. ii) post Liquid Handler
Defaults =
User tasks continued:
- Upload resulting Liquid Handler Output File
- Select Next Steps
Step File Placeholders
Liquid Handler Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Liquid Handler Output File - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Submitted Sample Labware Type
Protocol Type = Sample Prep
Next Steps Configuration
Master Step Name = DNA Extraction - Blood (IGA v2.1)
Derived Sample Generation = Fixed, 1
Naming Convention = {InputItemName}
Automations
Sample Plating & Extraction - Validate Single Sample Type and Library Prep Method (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (!step.hasValue(::Step Sample Type::)) {step.::Step Sample Type:: = submittedSample.::Sample Type:: + :: [:: + submittedSample.::Library Prep Method:: + ::]::} else {if ( step.::Step Sample Type:: != submittedSample.::Sample Type:: + :: [:: + submittedSample.::Library Prep Method:: + ::]:: ) { fail(::Samples must be of the same type and marked for same library prep method::) }}' \
-log {compoundOutputFileLuid1} \
&& /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'"
Extraction - Sample Placement EDP Plate Barcode Uniqueness Check (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'if ( !output.container.name.matches( ::LP[0-9]{7}-EDP:: ) ) {fail ( ::Update: Invalid EDP (Extracted DNA Plate) barcode format. This plate ID must be in the format LPxxxxxxx-EDP, where 'x' is a digit 0-9, e.g. LP1234567-EDP. Please verify and try again.:: ) }' -log {compoundOutputFileLuid1} && /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI}"
Extraction - Count Samples & Create LH Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/countSamples.py -u {username} -p {password} -s {stepURI} -f 'Sample Count' \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/ExtractionInputFile_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
Extraction - Check LH Output File Barcode & Parse Reagent Info & Check for Missing Barcodes & Set Next Steps to Remove from Workflow (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' \
&& \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/02_ReagentParsing.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -m /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/reagent_parsing/fieldmap_extraction.csv \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp ' if (!step.hasValue (::MLB::) || !step.hasValue(::ProK::)) { fail(::Please scan barcodes for MLB and ProK before proceeding.::) } ; if (submittedSample.::Sample Type:: == ::Blood:: || submittedSample.::Sample Type:: == ::Saliva::) { nextStep = ::REMOVE:: }' \
-log {compoundOutputFileLuid1}"
Extraction - Routing (IGA v2.1)Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (submittedSample.::Library Prep Method::.toLowerCase().contains(::enrichment::)) { output.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA with Enrichment:: } else if (submittedSample.::Library Prep Method::.contains(::PCR-Free::)) {output.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA PCR-Free::}' \
-log {compoundOutputFileLuid1} \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -u {username} -p {password} -i {stepURI:v2} -l {compoundOutputFileLuid0} script:changeWorkflow \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Blood_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Saliva_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Blood_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Saliva_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
&& /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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Placement = Enabled
Defaults
Sample Grouping = Group by Containers
Placement Pattern = Column
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Liquid Handling Instrument ID
Quick reference checklist: DNA Extraction - Blood. i) pre Liquid Handler
Default =
User tasks for this page:
- Download Liquid Handling Robot Input File
- Enter reagent lots for MLB and ProK (not scanned by Liquid Handler as loaded as a mastermix)
Quick reference checklist: DNA Extraction - Blood. ii) post Liquid Handler
Default =
User tasks continued:
- After running Extraction on the liquid handler, upload the resulting Liquid Handling Robot Output File
- Select Next Steps (RSB, ITB and Ethanol lots will populate automatically on the next screen)
Step File Placeholders
Liquid Handling Robot (Hamilton) Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Liquid Handling Robot Output File - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Protocol Type = Sample Prep
Next Steps Configuration
Master Step Name = DNA Extraction - Blood (IGA v2.1)
Derived Sample Generation = Fixed, 1
Naming Convention = {InputItemName}
Automations
Sample Plating & Extraction - Validate Single Sample Type and Library Prep Method (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (!step.hasValue(::Step Sample Type::)) {step.::Step Sample Type:: = submittedSample.::Sample Type:: + :: [:: + submittedSample.::Library Prep Method:: + ::]::} else {if ( step.::Step Sample Type:: != submittedSample.::Sample Type:: + :: [:: + submittedSample.::Library Prep Method:: + ::]:: ) { fail(::Samples must be of the same type and marked for same library prep method::) }}' \
-log {compoundOutputFileLuid1} \
&& /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'"
Extraction - Sample Placement EDP Plate Barcode Uniqueness Check (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'if ( !output.container.name.matches( ::LP[0-9]{7}-EDP:: ) ) {fail ( ::Update: Invalid EDP (Extracted DNA Plate) barcode format. This plate ID must be in the format LPxxxxxxx-EDP, where 'x' is a digit 0-9, e.g. LP1234567-EDP. Please verify and try again.:: ) }' -log {compoundOutputFileLuid1} && /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI}"
Extraction - Count Samples & Create LH Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/countSamples.py -u {username} -p {password} -s {stepURI} -f 'Sample Count' \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/ExtractionInputFile_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
Extraction - Check LH Output File Barcode & Parse Reagent Info & Check for Missing Barcodes & Set Next Steps to Remove from Workflow (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' \
&& \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/02_ReagentParsing.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -m /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/reagent_parsing/fieldmap_extraction.csv \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp ' if (!step.hasValue (::MLB::) || !step.hasValue(::ProK::)) { fail(::Please scan barcodes for MLB and ProK before proceeding.::) } ; if (submittedSample.::Sample Type:: == ::Blood:: || submittedSample.::Sample Type:: == ::Saliva::) { nextStep = ::REMOVE:: }' \
-log {compoundOutputFileLuid1}"
Extraction - Routing (IGA v2.1)Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (submittedSample.::Library Prep Method::.toLowerCase().contains(::enrichment::)) { output.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA with Enrichment:: } else if (submittedSample.::Library Prep Method::.contains(::PCR-Free::)) {output.::Submitted Sample Type:: = submittedSample.::Sample Type:: + ::_Illumina DNA PCR-Free::}' \
-log {compoundOutputFileLuid1} \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -u {username} -p {password} -i {stepURI:v2} -l {compoundOutputFileLuid0} script:changeWorkflow \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Blood_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Saliva_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA PCR-Free' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching PCR-Free (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Blood_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Saliva_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
\
--FIELD_NAME 'Submitted Sample Type' \
--FIELD_VALUE 'Genomic DNA_Illumina DNA with Enrichment' \
--WORKFLOW 'Illumina Genomics Architecture - Library Prep Automated v2.1' \
--STEP 'DNA Batching with Enrichment (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS' \
&& /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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Placement = Enabled
Defaults
Sample Grouping = Group by Containers
Placement Pattern = Column
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Liquid Handling Instrument ID
Quick reference checklist: DNA Extraction - Saliva. i) pre Liquid Handler
Default =
User tasks for this page:
- Download Liquid Handling Robot Input File
- Enter reagent lots for MLB and ProK (not scanned by Liquid Handler as loaded as a mastermix)
Quick reference checklist: DNA Extraction - Saliva. ii) post Liquid Handler
Default =
User tasks continued:
- After running Extraction on the liquid handler, upload the resulting Liquid Handling Robot Output File
- Select Next Steps (RSB, ITB and Ethanol lots will populate automatically on the next screen)
Step File Placeholders
Liquid Handling Robot (Hamilton) Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Liquid Handling Robot Output File - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Protocol 5: Illumina DNA PCR-Free
Protocol Type = Sample Prep
Next Steps Configuration
Step 1: DNA Batching PCR-Free
Master Step Name = DNA Batching NFPF (IGA v2.1)
Derived Sample Generation = Fixed, 1
Naming Convention = {InputItemName}_DNA
Automations
DNA Batching PF - Set Final Volume and Validate Sample Type Combination (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (submittedSample.::Sample Type:: == ::Genomic DNA::) {step.::Batching Well Volume (uL):: = 40} ; if (submittedSample.::Sample Type:: == ::Blood::) {step.::Batching Well Volume (uL):: = 40} ; if (submittedSample.::Sample Type:: == ::Saliva::) {step.::Batching Well Volume (uL):: = 40}' \
-log {compoundOutputFileLuid1} \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} \
-p {password} script:evaluateDynamicExpression \
-t false -h false -exp \
'String matchTargetGDNA = ::genomic dna:: ; \
String submittedSampleType = submittedSample.::Sample Type:: + :: [:: + submittedSample.::Library Prep Method:: + ::] | :: ; \
if (!step.hasValue(::Step Sample Type::)) { \
step.::Step Sample Type:: = submittedSampleType; \
} else { \
String stepType = step.::Step Sample Type:: ; \
String smpType = submittedSampleType.toLowerCase(); \
stepType = stepType.toLowerCase(); \
if ( (stepType.contains(matchTargetGDNA) && !smpType.contains(matchTargetGDNA)) || (!stepType.contains(matchTargetGDNA) && smpType.contains(matchTargetGDNA)) ) { \
fail(::Genomic DNA samples can only be plated together and not combined with any other sample type!::); \
}; \
if ( (stepType.contains(::blood::) && smpType.contains(::saliva::)) || (stepType.contains(::saliva::) && smpType.contains(::blood::)) ) { \
step.::Step Sample Type:: = ::Blood + Saliva:: + :: [:: + submittedSample.::Library Prep Method:: + ::]:: ; \
}; \
}' \
-log {compoundOutputFileLuid1} \
&& /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'"
Placement Reminder (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_helpers/pop_up_msg.py -s {stepURI} -u {username} -p {password} -w 'OK' --message 'Please place all samples starting from position A:1, do not leave any gaps.'"
DNA Batching - Sample Placement DNA Plate Barcode Uniqueness Check (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'if ( !output.container.name.matches( ::LP[0-9]{7}-DNA:: ) ) {fail ( ::Invalid DNA plate barcode format. This plate ID must be in the format LPxxxxxxx-DNA, where 'x' is a digit 0-9, e.g. LP1234567-DNA. Please verify and try again.:: ) }' -log {compoundOutputFileLuid1} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/validate_sample_placement.py -u {username} -p {password} -s {stepURI}"
DNA Batching PF - Generate LH Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Manual button
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'output.::Warnings:: = :::: ; if ( submittedSample.hasValue (::Sample Conc.::) ) { output.::Sample Needed (uL):: = (step.::DNA (ng) required for tagmentation:: * step.::Batching Well Volume (uL)::) / (25 * submittedSample.::Sample Conc.::) ; \
if ( output.::Sample Needed (uL):: > step.::Batching Well Volume (uL):: ) { output.::Sample Needed (uL):: =
step.::Batching Well Volume (uL):: ; output.::Warnings:: = ::Low concentration - Sample Vol set to total volume::} ; if (output.::Sample Needed (uL):: < 2.0 )
{ output.::Sample Needed (uL):: = 2.0 ; output.::Warnings:: = ::High concentration - Sample Vol set to 2ul:: } ; output.::Diluent Volume (uL):: =
step.::Batching Well Volume (uL):: - output.::Sample Needed (uL):: ; output.::Initial Input DNA (ng):: = output.::Sample Needed (uL):: * submittedSample.::Sample Conc.::} \
else \
{output.::Sample Needed (uL):: = 40 ; output.::Warnings:: = ::No Sample Conc. provided, setting Sample vol. to 40ul:: ; output.::Diluent Volume (uL):: = 0}; if (submittedSample.::Sample Type:: == ::Blood:: || submittedSample.::Sample Type:: == ::Saliva::) { output.::Sample Needed (uL):: = step.::Batching Well Volume (uL)::; output.::Diluent Volume (uL):: = 0 }' \
-log {compoundOutputFileLuid1} &&
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/BatchingInputFile_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
DNA Batching - Check LH Output File Barcode, Store Instrument ID, Set Next Steps to Advance (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'nextStep = ::ADVANCE::' -log {compoundOutputFileLuid1}"
Register Step Completed (IGA v2.1)Trigger Style = Automatic upon exit
Copy 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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Placement = Enabled
Defaults
Sample Grouping = Group by Containers
Placement Pattern = Column
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Batching Well Volume (uL)
DNA (ng) required for tagmentation
Liquid Handling Instrument ID
Default =
- DNA (ng) required for tagmentation is 300-2000 ng.
- A fixed 25uL is aliquoted from the total volume of 40uL (default) to carry out Library Prep and subsequent steps.
Quick reference checklist: DNA Batching IDPF. i) pre Liquid Handler
Default =
User tasks for this page:
- For gDNA samples, enter library prep Input Amount (ng). NB: this field is ignored for samples which arrived as raw blood or saliva, as a set volume is transferred
- 'Run' DNA Batching PF automation, and download resulting 'Liquid Handler Batching Input File'
Quick reference checklist: DNA Batching IDPF. ii) post Liquid Handler
Default =
User tasks continued:
- Upload resulting 'Output File from Liquid Handler'
- Select 'Next Steps'
Step File Placeholders
Liquid Handler Batching Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Output File from Liquid Handler - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Decimal Places Displayed = 1
Decimal Places Displayed = 1
Step 2: Index Planning PCR-Free
Master Step Name = Indexing Planning (IGA v2.1)
Automations
Register Step Started (IGA v2.1)Trigger Style = Automatic upon entry
Copy 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/step_started.groovy'"
Indexing Planning - Validate and Check for Duplicates of Index Plate Barcode, Validate Indexing Offset, and Set Next Steps (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} -h true script:evaluateDynamicExpression -exp 'if (((96 - (8 * (int)step.::Hamilton Indexing Offset Column::)) + 8) < step.node.::input-output-maps::.::input-output-map::.input.size()) { fail(::The column offset will not yield enough indexes for the number of samples! Please increase the number of available indexes by changing the offset.::) }' -log {compoundOutputFileLuid0} && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} -h true script:evaluateDynamicExpression -exp 'if ( !step.::Index Plate Barcode::.matches( ::[0-9]{8}-[A-Z]+[A-D]{1}$:: ) ) {fail ( ::Invalid Index Plate Barcode. This plate ID must be in the format xxxxxxxx-S*(A/B/C/D), where 'x' is a digit 0-9 and 'S' is a sequence of uppercase letters, followed by 'A', 'B', 'C', or 'D'; e.g. 12345678-NXTA. Please verify and try again.:: ) }' -log {compoundOutputFileLuid0} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/05_reusedIndexPlateWarning.py -u {username} -p {password} -s {stepURI} -f 'Index Plate Barcode' -v '{udf:Index Plate Barcode}' -t 'Indexing Planning (IGA v2.1)' && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'input.::INTERNALFIELD_IndexPlanning_Metadata:: = step.::Index Plate Barcode:: + ::_:: + (int) step.::Hamilton Indexing Offset Column::' -log {compoundOutputFileLuid0} && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'nextStep = ::ADVANCE::' -log {compoundOutputFileLuid0}"
Register Step Completed (IGA v2.1)Trigger Style = Automatic upon exit
Copy 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/step_completed.groovy'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Hamilton Indexing Offset Column
Quick reference checklist: Indexing Planning
Default =
User tasks for this page:
- Scan in Indexing Plate Barcode and set the Hamilton Indexing Offset column (required start column)
- Click 'Next Steps'
Step File Placeholders
Script Log File (Aggregated) - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
INTERNALFIELD_QCValue_forRouting
Step 3: Library Prep - Indexing PCR-Free
Master Step Name = Indexing NFPF (IGA v2.1)
Derived Sample Generation = Fixed, 1
Naming Convention = {SubmittedSampleName}
Automations
Indexing - Validate Index Category and Index Plate Barcode (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/04_A_checkIndexPlateBarcodeWithCategory.py -u {username} -p {password} -s {stepURI} \
&& /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'"
Indexing - Custom Indexing with Hamilton Offsets and Dynamic Index Category Discovery (IGA v2.1)Trigger Location = Add Labels
Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/04_B_autoAssignIndexesFromIndexPlanning.py -u {username} -p {password} -s {stepURI}"
Library Prep - Indexing PF - Validate/Copy LibPlate Barcode, Set Default Norm. Mol. if Applicable, and Generate LH Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Manual button
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/countSamples.py -u {username} -p {password} -s {stepURI} -f 'Sample Count' && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t true \
-h false \
-exp 'if ( !step.hasValue(::Library Plate Barcode::) || !step.::Library Plate Barcode::.matches( ::LP[0-9]{7}-LIB:: ) ) { fail( ::Invalid LIB plate barcode format. This plate ID must be in the format LPxxxxxxx-LIB, where 'x' is a digit 0-9, e.g. LP1234567-LIB. Please scan a valid LIB plate barcode in the Record Details screen.:: ) }; output.container.name = step.::Library Plate Barcode::; tkns = input.::INTERNALFIELD_IndexPlanning_Metadata::.split(::_::); step.::Index Plate Barcode (read from input samples):: = tkns[0]; step.::Index Plate Offset (read from input samples):: = tkns[1]; if (submittedSample.::Library Prep Method::.contains(::PCR-Free::)) { output.::Normalized Molarity (nM):: = 3.5; }' \
-log {compoundOutputFileLuid1} \
&& /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI} && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/LibInputFile_NFPF_template_withoffsets.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
Library Prep - Indexing PF - Check for Valid, Unique LIB Plate Barcode & Match with Liquid Handler Output File & Parse Reagent Info & Set Next Steps to Remove from Workflow & Quant. Warning (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' && /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/02_ReagentParsing.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -m /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/reagent_parsing/fieldmap_libprep.csv && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -exp 'nextStep = ::REMOVE::' -log {compoundOutputFileLuid1} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_helpers/pop_up_msg.py -s {stepURI} -u {username} -p {password} -w 'WARNING' --message 'This protocol recommends performing a pooled quant. (per prep) at this stage. Please quant. and update the Normalized Molarity (nM) across all samples in the table below before proceeding.'"
Library Prep - Indexing PF - Route Samples to Sequencing Platform Selection with Automatic Workflow Detection (IGA v2.1)Trigger Style = Automatic upon exit
Copy bash -l -c "bash /opt/gls/clarity/extensions/IGA_2.1/iga_workflow_routing/changeWorkflowScriptNoFieldChecks.sh {username} {password} {stepURI} {compoundOutputFileLuid1} /opt/gls/clarity/extensions/IGA_2.1/iga_workflow_routing/masterRoutingTable_NFPFtoSeqPlatSelect.csv 'v2.1' \
&& /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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
INTERNALFIELD_IndexPlanning_Metadata
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
INTERNALFIELD_IndexPlanning_Metadata
Add Labels
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Default = CTGTCTCTTATACACATCT
Default = CTGTCTCTTATACACATCT
Index Plate Barcode (read from input samples)
Index Plate Offset (read from input samples)
Liquid Handling Instrument ID
Quick reference checklist: Library Prep IDPF. i) pre Liquid Handler
Default =
User tasks for this page:
- Above, scan in the 'Library Plate Barcode' to be used
- Click blue button to 'Run' the Library Prep automation, and download the resulting 'Liquid Handler Input File'
Quick reference checklist: Library Prep IDPF. ii) post Liquid Handler
Default =
User tasks continued:
- Upload resulting 'Hamilton Output File'
- Perform a pooled quant for the prep, and apply the yield 'Normalized Molarity (nM)' to all samples
- Click 'Next Steps'
Decimal Places Displayed = 0
Step File Placeholders
Liquid Handler Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Hamilton Output File - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Decimal Places Displayed = 2
Protocol 6: Illumina DNA with Enrichment
Protocol Type = Sample Prep
Next Steps Configuration
Step 1: DNA Batching with Enrichment
Master Step Name = DNA Batching NFE (IGA v2.1)
Derived Sample Generation = Fixed, 1
Naming Convention = {InputItemName}_DNA
Automations
DNA Batching Enrichment - Set Final Volume (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'step.::Batching Well Volume (uL):: = 45' \
-log {compoundOutputFileLuid1} \
&& /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'"
Placement Reminder (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_helpers/pop_up_msg.py -s {stepURI} -u {username} -p {password} -w 'OK' --message 'Please place all samples starting from position A:1, do not leave any gaps.'"
DNA Batching - Sample Placement DNA Plate Barcode Uniqueness Check (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'if ( !output.container.name.matches( ::LP[0-9]{7}-DNA:: ) ) {fail ( ::Invalid DNA plate barcode format. This plate ID must be in the format LPxxxxxxx-DNA, where 'x' is a digit 0-9, e.g. LP1234567-DNA. Please verify and try again.:: ) }' -log {compoundOutputFileLuid1} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/validate_sample_placement.py -u {username} -p {password} -s {stepURI}"
DNA Batching Enrichment - Generate LH Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Manual button
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'output.::Warnings:: = :::: ; if ( submittedSample.hasValue (::Sample Conc.::) ) {output.::Sample Needed (uL):: = (step.::DNA (ng) required for tagmentation:: * step.::Batching Well Volume (uL)::) / (30 * submittedSample.::Sample Conc.::) ; \
if ( output.::Sample Needed (uL):: > step.::Batching Well Volume (uL):: ) { output.::Sample Needed (uL):: =
step.::Batching Well Volume (uL):: ; output.::Warnings:: = ::Low concentration - Sample Vol set to total volume::} ; if (output.::Sample Needed (uL):: < 2.0 )
{ output.::Sample Needed (uL):: = 2.0 ; output.::Warnings:: = ::High concentration - Sample Vol set to 2ul:: } ; output.::Diluent Volume (uL):: =
step.::Batching Well Volume (uL):: - output.::Sample Needed (uL):: ; output.::Initial Input DNA (ng):: = output.::Sample Needed (uL):: * submittedSample.::Sample Conc.::} \
else \
{output.::Sample Needed (uL):: = 40 ; output.::Warnings:: = ::No Sample Conc. provided, setting Sample vol. to 40ul:: ; output.::Diluent Volume (uL):: = 0}; if (submittedSample.::Sample Type:: == ::Blood:: || submittedSample.::Sample Type:: == ::Saliva::) { output.::Sample Needed (uL):: = step.::Batching Well Volume (uL)::; output.::Diluent Volume (uL):: = 0 }' \
-log {compoundOutputFileLuid1} &&
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/BatchingInputFile_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
DNA Batching - Check LH Output File Barcode, Store Instrument ID, Set Next Steps to Advance (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'nextStep = ::ADVANCE::' -log {compoundOutputFileLuid1}"
Register Step Completed (IGA v2.1)Trigger Style = Automatic upon exit
Copy 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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Placement = Enabled
Defaults
Sample Grouping = Group by Containers
Placement Pattern = Column
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Batching Well Volume (uL)
DNA (ng) required for tagmentation
Liquid Handling Instrument ID
Default =
- DNA (ng) required for tagmentation is 50-1000 ng.
- A fixed 30uL is aliquoted from the total volume of 45uL (default) to carry out Library Prep and subsequent steps.
Quick reference checklist i): DNA Batching IDE, pre Liquid Handler
Default =
User tasks for this page:
- For gDNA samples, enter library prep Input Amount (ng). NB: this field is ignored for samples which arrived as raw blood or saliva, as a set volume is transferred
- 'Run' DNA Batching Enrichment automation, and download resulting 'Liquid Handler Batching Input File'
Quick reference checklist ii): DNA Batching IDE, post Liquid Handler
Default =
User tasks continued:
- Upload resulting 'Output File from Liquid Handler'
- Select 'Next Steps'
Step File Placeholders
Liquid Handler Batching Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Output File from Liquid Handler - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Decimal Places Displayed = 1
Decimal Places Displayed = 1
Step 2: Index Planning with Enrichment
Master Step Name = Indexing Planning (IGA v2.1)
Automations
Register Step Started (IGA v2.1)Trigger Style = Automatic upon entry
Copy 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/step_started.groovy'"
Indexing Planning - Validate and Check for Duplicates of Index Plate Barcode, Validate Indexing Offset, and Set Next Steps (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} -h true script:evaluateDynamicExpression -exp 'if (((96 - (8 * (int)step.::Hamilton Indexing Offset Column::)) + 8) < step.node.::input-output-maps::.::input-output-map::.input.size()) { fail(::The column offset will not yield enough indexes for the number of samples! Please increase the number of available indexes by changing the offset.::) }' -log {compoundOutputFileLuid0} && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} -h true script:evaluateDynamicExpression -exp 'if ( !step.::Index Plate Barcode::.matches( ::[0-9]{8}-[A-Z]+[A-D]{1}$:: ) ) {fail ( ::Invalid Index Plate Barcode. This plate ID must be in the format xxxxxxxx-S*(A/B/C/D), where 'x' is a digit 0-9 and 'S' is a sequence of uppercase letters, followed by 'A', 'B', 'C', or 'D'; e.g. 12345678-NXTA. Please verify and try again.:: ) }' -log {compoundOutputFileLuid0} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/05_reusedIndexPlateWarning.py -u {username} -p {password} -s {stepURI} -f 'Index Plate Barcode' -v '{udf:Index Plate Barcode}' -t 'Indexing Planning (IGA v2.1)' && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'input.::INTERNALFIELD_IndexPlanning_Metadata:: = step.::Index Plate Barcode:: + ::_:: + (int) step.::Hamilton Indexing Offset Column::' -log {compoundOutputFileLuid0} && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'nextStep = ::ADVANCE::' -log {compoundOutputFileLuid0}"
Register Step Completed (IGA v2.1)Trigger Style = Automatic upon exit
Copy 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/step_completed.groovy'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Hamilton Indexing Offset Column
Quick reference checklist: Indexing Planning
Default =
User tasks for this page:
- Scan in Indexing Plate Barcode and set the Hamilton Indexing Offset column (required start column)
- Click 'Next Steps'
Step File Placeholders
Script Log File (Aggregated) - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
INTERNALFIELD_IndexPlanning_Metadata
Step 3: Library Prep - Indexing with Enrichment
Master Step Name = Indexing NFE (IGA v2.1)
Derived Sample Generation = Fixed, 1
Naming Convention = {SubmittedSampleName}
Automations
Indexing - Validate Index Category and Index Plate Barcode (IGA v2.1)Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/04_A_checkIndexPlateBarcodeWithCategory.py -u {username} -p {password} -s {stepURI} \
&& /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'"
Indexing - Custom Indexing with Hamilton Offsets and Dynamic Index Category Discovery (IGA v2.1)Trigger Location = Add Labels
Trigger Style = Automatic upon entry
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/04_B_autoAssignIndexesFromIndexPlanning.py -u {username} -p {password} -s {stepURI}"
Library Prep - Indexing Enrichment - Copy Input Plate Barcode to Output Plate (IGA v2.1)Trigger Location = Add Labels
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} -t true -h false script:evaluateDynamicExpression -exp 'output.container.name = input.container.name;' -log {compoundOutputFileLuid0}"
Library Prep - Indexing Enrichment - Copy Indexing Metadata to Outputs & Set Next Steps to Advance (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'tkns = input.::INTERNALFIELD_IndexPlanning_Metadata::.split(::_::); step.::Index Plate Barcode (read from input samples):: = tkns[0]; step.::Index Plate Offset (read from input samples):: = tkns[1]; output.::INTERNALFIELD_IndexPlanning_Metadata:: = input.::INTERNALFIELD_IndexPlanning_Metadata:: ; nextStep = ::ADVANCE::' \
-log {compoundOutputFileLuid0}"
Register Step Completed (IGA v2.1)Trigger Style = Automatic upon exit
Copy 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/step_completed.groovy'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Add Labels
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Index Plate Barcode (read from input samples)
Index Plate Offset (read from input samples)
Quick reference checklist: Library Prep IDE.
Default =
User tasks for this step:
- No user tasks, click 'Next Steps'
Step File Placeholders
Script Log File (Aggregated) - Automatically attached
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
INTERNALFIELD_IndexPlanning_Metadata
Step 4: Library Prep - Pre-Capture Pooling with Enrichment
Master Step Name = Library Prep NFE - Pool Libraries (IGA v2.1)
Aliquot Generation = Fixed, 1
Naming Convention = {PoolName}
Automations
Register Step Started (IGA v2.1)Trigger Style = Automatic upon entry
Copy 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'"
Library Prep - Pooling Enrichment - Validate Pool Sizes (IGA v2.1)Trigger Location = Pooling
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t false \
-h false \
-exp 'if (!output.hasValue(::Number of Samples in Pool::)) { output.::Number of Samples in Pool:: = 0; }; output.::Number of Samples in Pool::++; if (output.::Number of Samples in Pool:: > 12) { fail(::Pools cannot contain more than 12 samples each.::) }' \
-log {compoundOutputFileLuid1}"
Library Prep - Pooling Enrichment - Sample Placement PCPP Plate Barcode Uniqueness Check (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'if ( !output.container.name.matches( ::LP[0-9]{7}-PCPP:: ) ) {fail ( ::Invalid PCPP (Pre-Capture Pool Plate) barcode format. This plate ID must be in the format LPxxxxxxx-PCPP, where 'x' is a digit 0-9, e.g. LP1234567-PCPP. Please verify and try again.:: ) }' -log {compoundOutputFileLuid1} && /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI}"
Library Prep - Pooling Enrichment - Create LH Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Manual button
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/countSamplesInPools.py -u {username} -p {password} -s {stepURI} -f 'Sample Count' && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t true \
-h false \
-exp 'tkns = input.::INTERNALFIELD_IndexPlanning_Metadata::.split(::_::); step.::Index Plate Barcode (read from input samples):: = tkns[0]; step.::Index Plate Offset (read from input samples):: = tkns[1]; ' \
-log {compoundOutputFileLuid1} \ && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2:http} \
-u {username} \
-p {password} \
script:evaluateDynamicExpression \
-t true \
-h false \
-exp 'output.::Sample Needed (uL):: = 5.0 * output.::Number of Samples in Pool:: ; if (output.::Number of Samples in Pool:: >= 6) {output.::Diluent Volume (uL):: = 0} else {output.::Diluent Volume (uL):: = 30.0 - output.::Sample Needed (uL):: } ; ' \
-log {compoundOutputFileLuid1} \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/LibInputFile_NFE_template_withoffsets.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
Library Prep - Pooling Enrichment - Validate LH Output File Name, Parse Reagents & Set Next Steps to Advance (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' && /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/02_ReagentParsing.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -m /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/reagent_parsing/fieldmap_precap_pooling.csv && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -exp 'nextStep = ::ADVANCE::' -log {compoundOutputFileLuid1}"
Register Step Completed (IGA v2.1)Trigger Style = Automatic upon exit
Copy 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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Pooling
Defaults
Sample Grouping = Group by Containers
Placement = Enabled
Defaults
Placement Pattern = Column
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Default = CTGTCTCTTATACACATCT
Default = CTGTCTCTTATACACATCT
Index Plate Barcode (read from input samples)
Index Plate Offset (read from input samples)
Liquid Handling Instrument ID
Quick reference checklist: Library Prep IDE - pool libraries. i) pre Liquid Handler.
Default =
User tasks for this page:
- 'Run' Library Prep Pooling automation
- Download resulting Liquid Handler Input File
Quick reference checklist: Library Prep IDE - pool libraries. ii) post Liquid Handler.
Default =
User tasks continued:
- After running the Prep method on the Liquid Handler, upload resulting Liquid Handler Output File
- Click on 'Next Steps'
Step File Placeholders
Liquid Handler Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Liquid Handler Output File - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Decimal Places Displayed = 1
Number of Samples in Pool
Decimal Places Displayed = 1
Step 5: Library Prep - Capture and Wash with Enrichment
Master Step Name = Capture and Wash NFE (IGA v2.1)
Derived Sample Generation = Fixed, 1
Naming Convention = {InputItemName}
Automations
Register Step Started (IGA v2.1)Trigger Style = Automatic upon entry
Copy 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'"
Capture and Wash Enrichment - Sample Placement LIB Plate Barcode Uniqueness Check & Update Pool Count (IGA v2.1)Trigger Location = Placement
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2:http} -u {username} -p {password} script:evaluateDynamicExpression -exp 'if ( !output.container.name.matches( ::LP[0-9]{7}-LIB:: ) ) {fail ( ::Invalid LIB plate barcode format. This plate ID must be in the format LPxxxxxxx-LIB, where 'x' is a digit 0-9, e.g. LP1234567-LIB. Please verify and try again.:: ) }' -log {compoundOutputFileLuid1} && /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_A_CFP_Batching_defaultContainerCheck.py -u {username} -p {password} -s {stepURI} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/countSamples.py -u {username} -p {password} -s {stepURI} -f 'Pool Count'"
Capture and Wash Enrichment - Create LH Input File (IGA v2.1)Trigger Location = Record Details
Trigger Style = Manual button
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
script:driver_file_generator \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/CaptureWashInputFile_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"
Capture and Wash Enrichment - Validate LH Output File Name, Parse Reagents & Set Next Steps to Advance (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/01_CFP_Batching_confirmPlateIDAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -i 'Liquid Handling Instrument ID' && /usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/02_ReagentParsing.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid2} -m /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/reagent_parsing/fieldmap_captureandwash.csv && /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -exp 'nextStep = ::ADVANCE::' -log {compoundOutputFileLuid1}"
Register Step Completed (IGA v2.1)Trigger Style = Automatic upon exit
Copy 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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Placement = Enabled
Defaults
Sample Grouping = Group by Containers
Placement Pattern = Same Shape
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Liquid Handling Instrument ID
Quick reference checklist: Capture and Wash IDE. i) pre Liquid Handler.
Default =
User tasks for this page:
- 'Run' Capture and Wash automation
- Download resulting Liquid Handler Input File
Quick reference checklist: Capture and Wash IDE. ii) post Liquid Handler.
Default =
User tasks continued:
- After running Capture and Wash on the liquid handler, upload resulting Liquid Handler Output File
- Click 'Next Steps'
Step File Placeholders
Liquid Handler Input File - Automatically attached
Script Log File (Aggregated) - Automatically attached
Liquid Handler Output File - Manually uploaded
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items
Step 6: Post-Capture Pool QC with Enrichment
Master Step Name = Generic Pool QC NFE (IGA v2.1)
Measurement Generation = Fixed, 1
Naming Convention = {InputItemName}
Automations
Register Step Started (IGA v2.1)Trigger Style = Automatic upon entry
Copy 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'"
Pool QC - Generic - Enrichment - Copy Normalized Molarity from Output to Input, Copy QC Value to Inputs & Set QC Passed Sample Next Steps to Remove from Workflow (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'if (!output.hasValue(::Normalized Molarity (nM)::)) { fail(::Please set/check Normalized Molarity (nM) field values manually on each sample, or set up this step to parse this value from QC instrument output to automatically set QC pass/fail flags.::) } else { input.::Normalized Molarity (nM):: = output.::Normalized Molarity (nM):: }; input.::INTERNALFIELD_QCValue_forRouting:: = output.QC ; output.::INTERNALFIELD_QCValue_forRouting:: = output.QC ; if (output.QC == true) { nextStep = ::REMOVE:: }' -log {compoundOutputFileLuid1}"
Pool QC - Generic - Enrichment - Route QC Passed Samples to Sequencing Platform Selection (IGA v2.1)Trigger Style = Automatic upon exit
Copy bash -l -c "bash /opt/gls/clarity/extensions/IGA_2.1/iga_workflow_routing/changeWorkflowScript_QCStep_RoutePassedInputs.sh {username} {password} {stepURI} {compoundOutputFileLuid1} /opt/gls/clarity/extensions/IGA_2.1/iga_workflow_routing/masterRoutingTable_NFEtoSeqPlatSelect.csv 'v2.1' \
&& /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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Quick reference checklist: Pool QC IDE.
Default =
User tasks for this page:
- 'Run' Capture and Wash automation
- Download resulting Liquid Handler Input File
Step File Placeholders
QC Instrument Results (Generic Placeholder) - Manually uploaded
Script Log File (Aggregated) - Automatically attached
Sample Table
Sample Display Default = Expand
File Column Options
File Column Display = Hide
File Attachment Method = Auto
Table Columns - Global Fields
Additional Options and Dropdown Items
Decimal Places Displayed = 2
INTERNALFIELD_QCValue_forRouting
Decimal Places Displayed = 2
INTERNALFIELD_QCValue_forRouting
Protocol 7: Sequencing Platform Selection
Protocol Type = Sample Prep
Next Steps Configuration
Step 1: Select Sequencing Platform
Master Step Name = Sequencing Platform Selection (IGA v2.1)
Automations
Register Step Started (IGA v2.1)Trigger Style = Automatic upon entry
Copy 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/step_started.groovy'"
Sequencing Platform Selection - Copy Instrument Type to Analyte & Set Next Steps to Remove from Workflow (IGA v2.1)Trigger Location = Record Details
Trigger Style = Automatic upon exit
Copy bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'input.::Sequencing Platform:: = step.::Sequencing Platform:: ; nextStep = ::REMOVE::' -log {compoundOutputFileLuid0}"
Sequencing Platform Selection - Route to Sequencing Workflow by Type (IGA v2.1)Trigger Style = Automatic upon exit
Copy bash -l -c "bash /opt/gls/clarity/extensions/IGA_2.1/iga_workflow_routing/changeWorkflowScript_SeqPlatform_RouteInputs.sh {username} {password} {stepURI} {compoundOutputFileLuid0} /opt/gls/clarity/extensions/IGA_2.1/iga_workflow_routing/masterRoutingTable_seqplatselection.csv \
&& /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'"
Queue
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Ice Bucket
Defaults
Sample Grouping = Group by Containers
Sample Table (Column Headers)
Additional Options and Dropdown Items
Record Details
Step Data (Master Step Fields)
Additional Options and Dropdown Items
Quick reference checklist: Sequencing Platform Selection
Default =
User tasks for this page:
- No actions for this page! The step serves to route all samples to the NovaSeq workflow
Step File Placeholders
Set Sequencing Platform Script Log - Automatically attached
Sample Table (Table Columns - Global Fields)
Additional Options and Dropdown Items