










bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0} -s 'com/illumina/upa/scripts/common/register_sample.groovy' && /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'"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 'nextStep = ::REMOVE:: ; input.::Minimum Molarity (nM):: = (5 * input.::Final Loading Concentration (pM)::)/1000 ; if (!input.hasValue(::Normalized Molarity (nM)::)) { fail(::The Normalized Molarity cannot be empty.::) ; } else if (input.::Normalized Molarity (nM):: < input.::Minimum Molarity (nM)::) { input.::Warning:: = ::The Normalized Molarity is too low.:: ; input.::Loading Workflow Type:: = ::[Remove from workflow]:: ; } else { input.::Warning:: = ::n/a:: }' -log {compoundOutputFileLuid0}"bash -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' && /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 'Loading Workflow Type' \
--FIELD_VALUE 'NovaSeq Standard' \
--WORKFLOW 'Illumina Genomics Architecture - NovaSeq Sequencing v2.1' \
--STEP 'Make Bulk Pool for NovaSeq Standard (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'INPUTS' \
\
--FIELD_NAME 'Loading Workflow Type' \
--FIELD_VALUE 'NovaSeq Xp' \
--WORKFLOW 'Illumina Genomics Architecture - NovaSeq Sequencing v2.1' \
--STEP 'Make Bulk Pool for NovaSeq Xp (IGA v2.1)' \
--INPUTS_OR_OUTPUTS 'INPUTS'"bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0} -s 'com/illumina/upa/scripts/common/register_sample.groovy' && /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'"bash -l -c "PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 \
/opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/NovaSeq_pooling_warning.py \
-s {stepURI:v2} \
-u {username} \
-p {password} \
-l {compoundOutputFileLuid0}"bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar script:validate_flowcell_for_input_pools -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0} -validateSingleOutput false -poolType bulk \
&& PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/validate_flowcell_pools.py -s {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0}"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}-BPP:: ) ) {fail ( ::Invalid BPP Plate Barcode. This plate ID must be in the format LPxxxxxxx-BPP, where 'x' is a digit 0-9, e.g. LP1234567-BPP. Please verify and try again.:: ) }' -log {compoundOutputFileLuid0} \
&& PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/validate_multiple_destination_plates.py -s {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0}"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} -t true -log {compoundOutputFileLuid0} \
script:evaluateDynamicExpression \
-h false \
-exp 'step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: + 1' \
script:evaluateDynamicExpression \
-h false \
-exp 'if ( input.::Flowcell Type:: == ::SP:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 100 + 30 } ; if ( input.::Flowcell Type:: == ::S1:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 100 + 30 } ; if ( input.::Flowcell Type:: == ::S2:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 150 + 30 } ; if ( input.::Flowcell Type:: == ::S4:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 310 + 30 } ; input.::Per Sample Volume (ul):: = 0' \
&& PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 \
/opt/gls/clarity/extensions/IGA_2.1/make_bpp/calculate_sample_volume.py \
-s {stepURI:v2} \
-u {username} \
-p {password} \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} -t true -log {compoundOutputFileLuid0} \
script:calculate_adjusted_per_sample_volume \
script:evaluateDynamicExpression \
-h false \
-exp 'step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: + input.::Adjusted Per Sample Volume (ul)::' \
script:evaluateDynamicExpression \
-h false \
-exp 'if (step.::Total Sample Volume (ul):: >= step.::Bulk Pool Volume (ul)::) {output.::RSB Volume (ul):: = 0} else {output.::RSB Volume (ul):: = step.::Bulk Pool Volume (ul):: - step.::Total Sample Volume (ul)::} ; output.::Flowcell Type:: = input.::Flowcell Type:: ; output.::Loading Workflow Type:: = input.::Loading Workflow Type:: ; if ( input.::Flowcell Type:: == ::SP:: ) { output.::Volume of Pool to Denature (ul):: = 100 ; output.::NaOH Volume (ul):: = 25 ; output.::Tris-HCl Volume (ul):: = 25 } ; if ( input.::Flowcell Type:: == ::S1:: ) { output.::Volume of Pool to Denature (ul):: = 100 ; output.::NaOH Volume (ul):: = 25 ; output.::Tris-HCl Volume (ul):: = 25 } ; if ( input.::Flowcell Type:: == ::S2:: ) {output.::Volume of Pool to Denature (ul):: = 150 ; output.::NaOH Volume (ul):: = 37.50 ; output.::Tris-HCl Volume (ul):: = 37.50 } ; ; if ( input.::Flowcell Type:: == ::S4:: ) { output.::Volume of Pool to Denature (ul):: = 310 ; output.::NaOH Volume (ul):: = 77.50 ; output.::Tris-HCl Volume (ul):: = 77.50 }' \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
-i {stepURI:v2} -u {username} -p {password} -t true -log {compoundOutputFileLuid0} \
script:evaluateDynamicExpression \
-h false \
-exp 'step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: - 1; step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: - input.::Adjusted Per Sample Volume (ul)::' \
&& \
/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 {compoundOutputFileLuid1} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/MakeBPFile_NovaSeq_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid2} && \
PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 \
/opt/gls/clarity/extensions/IGA_2.1/make_bpp/apply_multiple_bulk_pools.py \
-s {stepURI:v2} \
-u {username} \
-p {password} \
--min-volume {udf:Minimum Per Sample Volume (ul)} \
--selected-cf {udf:Apply Correction Factors} \
--hamilton-limsid {compoundOutputFileLuid1} \
--custom-cf-limsid {compoundOutputFileLuid4} \
-l {compoundOutputFileLuid5} "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 'step.::Liquid Handling Instrument ID:: = ::::' -log {compoundOutputFileLuid0} \
&& \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/01_NovaSeqStd_confirmPlateIDAndStoreInstrumentID_OptionalFile.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid3} -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 'if (!step.hasValue(::Liquid Handling Instrument ID::)) {step.::Liquid Handling Instrument ID:: = ::NO HAMILTON OUTPUT FILE UPLOADED:: } ; nextStep = ::ADVANCE::' -log {compoundOutputFileLuid0}"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' && \
/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/pooling.groovy'"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:validateUniqueIndexes"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:validateSampleCount -min 1 -max 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_started.groovy'"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 -exp 'if (!output.container.name.matches( ::[A-Z]{2}[0-9]{7}-[A-Z]{3}:: ) ) {fail ( ::Invalid Library Tube Barcode. This must be in the format CCxxxxxxx-CCC, where 'x' is a digit 0-9 and 'C' is an uppercase letter, e.g. LP1234567-ABC. Please verify and try again.:: ) } ; output.::Flowcell Type:: = input.::Flowcell Type:: ; output.::Loading Workflow Type:: = input.::Loading Workflow Type::' -log {compoundOutputFileLuid1}"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 {compoundOutputFileLuid2} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/LoadToLibTubeFile_NovaSeqStd_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid3} && \
/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 'step.::Run Mode:: = input.::Flowcell Type:: ; if (!step.::Experiment Name::.matches(::[a-zA-Z0-9-_]+::)) { fail(::Experiment Name contains prohibited characters. Allowed characters are: a-z, A-Z, 0-9, -, and _::) }; if (step.::Workflow Type:: == ::No Index::) { if (step.::Index Read 1:: != 0) { fail(::Index Read 1 must be 0 if the Workflow Type is No Index.::) } } else { if (step.::Index Read 1:: == 0) { fail(::Index Read 1 must be greater than 0 if the Workflow Type is :: + step.::Workflow Type:: + ::.::) } }; if (step.::Paired End::.toBoolean() && step.::Read 2 Cycles:: == 0) { fail(::Read 2 Cycles must not be zero if it is Paired End read.::) }; if (step.::Workflow Type:: == ::Dual Index:: && step.::Index Read 2:: == 0) { fail(::Index Read 2 must not be zero if Workflow Type is Dual Index.::) }; if (step.::Workflow Type:: == ::No Index:: || step.::Workflow Type:: == ::Single Index::) { step.::Index Read 2:: = 0 }; if (!step.::Paired End::.toBoolean()) { step.::Read 2 Cycles:: = 0 }; if (input.::Flowcell Type::!=::SP:: && step.::Read 1 Cycles:: > 151) { fail(::Read 1 Cycles must not be larger than 151 if it is not SPrime Flowcell::) };if (input.::Flowcell Type::!=::SP:: && step.::Read 2 Cycles:: > 151) { fail(::Read 2 Cycles must not be larger than 151 if it is not SPrime Flowcell::) }; nextStep = ::REMOVE::' \
-log {compoundOutputFileLuid1} \
-t true \
&& if [[ '{udf:SampleSheet Version}' == 'V2' && '{udf:Enable Secondary Analysis}' == 'false' ]]; then \
templateFilename='/opt/gls/clarity/extensions/IGA_2.1/ss_converter_templates/NovaSeq_BCL2FASTQ_Samplesheet_Std_V2.csv'; \
else \
templateFilename='/opt/gls/clarity/extensions/IGA_2.1/ss_converter_templates/NovaSeq_BCL2FASTQ_Samplesheet_Std_V1.csv'; \
fi \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar -i {stepURI:v2} -u {username} -p {password} \
script:driver_file_generator \
-t $templateFilename \
-o {compoundOutputFileLuid0}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-l {compoundOutputFileLuid1} \
&& if [[ '{udf:Enable Secondary Analysis}' == 'true' ]]; then \
PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 /opt/gls/clarity/extensions/IGA_2.1/ss_converter \
--input {compoundOutputFileLuid0}.csv \
--bssh-app {udf:BaseSpace App Slug} \
--stepURI {stepURI:v2} -u {username} -p {password} -q \
--destLIMSID {compoundOutputFileLuid0} 2>&1; \
fi && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
-i {stepURI:v2} -u {username} -p {password} \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/Biosample_Manifest.csv \
-o {compoundOutputFileLuid4}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid4} \
-l {compoundOutputFileLuid1}"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 'step.::Liquid Handling Instrument ID:: = ::::' -log {compoundOutputFileLuid1} \
&& \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/02_NovaSeqStd_confirmPlateIDAndStoreInstrumentID_OptionalFile_DiluteDenature.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid4} -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 'if (!step.hasValue(::Liquid Handling Instrument ID::)) {step.::Liquid Handling Instrument ID:: = ::NO HAMILTON OUTPUT FILE UPLOADED:: } ; nextStep = ::REMOVE::' -log {compoundOutputFileLuid1}"bash -l -c "/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 {compoundOutputFileLuid1} script:changeWorkflow \
\
--FIELD_NAME 'N/A' \
--FIELD_VALUE 'N/A' \
--WORKFLOW 'Illumina Genomics Architecture - NovaSeq Sequencing v2.1' \
--STEP 'AUTOMATED - NovaSeq Run (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'"bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/unified-product-analytics/automation/unified-product-analytics-automation.jar script:executeUPAAutomationScript -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0} -s 'com/illumina/upa/scripts/common/register_sample.groovy' && /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'"bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar script:validate_flowcell_for_input_pools -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0} -validateSingleOutput true -poolType bulk"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}-BPP:: ) ) {fail ( ::Invalid BPP Plate Barcode. This plate ID must be in the format LPxxxxxxx-BPP, where 'x' is a digit 0-9, e.g. LP1234567-BPP. Please verify and try again.:: ) }' -log {compoundOutputFileLuid0} \
&& PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/validate_multiple_destination_plates.py -s {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid0}"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 'output.::Loading Workflow Type:: = input.::Loading Workflow Type::; output.::Flowcell Type:: = input.::Flowcell Type::' -log {compoundOutputFileLuid0}"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} -t true -log {compoundOutputFileLuid0} \
script:evaluateDynamicExpression \
-h false \
-exp 'step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: + 1' \
script:evaluateDynamicExpression \
-h false \
-exp 'if ( input.::Flowcell Type:: == ::SP:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Lanes to Sequence:: * 18+ 30 } ; if ( input.::Flowcell Type:: == ::S1:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Lanes to Sequence:: * 18+ 30 } ; if ( input.::Flowcell Type:: == ::S2:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Lanes to Sequence:: * 22 + 30 } ; if ( input.::Flowcell Type:: == ::S4:: ) { step.::Bulk Pool Volume (ul):: = step.::Number of Lanes to Sequence:: * 30 + 30 } ; input.::Per Sample Volume (ul):: = ( ( (input.::Final Loading Concentration (pM):: * 5 / 1000) / input.::Normalized Molarity (nM):: ) * step.::Bulk Pool Volume (ul):: ) / step.::Number of Samples in Pool::' \
script:calculate_adjusted_per_sample_volume \
script:evaluateDynamicExpression \
-h false \
-exp 'step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: + input.::Adjusted Per Sample Volume (ul)::' \
script:evaluateDynamicExpression \
-h false \
-exp 'if (step.::Total Sample Volume (ul):: >= step.::Bulk Pool Volume (ul)::) {output.::RSB Volume (ul):: = 0} else {output.::RSB Volume (ul):: = step.::Bulk Pool Volume (ul):: - step.::Total Sample Volume (ul)::} ; output.::Flowcell Type:: = input.::Flowcell Type:: ; output.::Loading Workflow Type:: = input.::Loading Workflow Type::' \
&& \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} -t true -log {compoundOutputFileLuid0} \
script:evaluateDynamicExpression \
-h false \
-exp 'step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: - 1; step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: - input.::Adjusted Per Sample Volume (ul)::' \
&& \
/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 {compoundOutputFileLuid1} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/MakeBPFile_NovaSeq_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid2} && \
PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 \
/opt/gls/clarity/extensions/IGA_2.1/make_bpp/apply_multiple_bulk_pools.py \
-s {stepURI:v2} \
-u {username} \
-p {password} \
--min-volume {udf:Minimum Per Sample Volume (ul)} \
--selected-cf {udf:Apply Correction Factors} \
--hamilton-limsid {compoundOutputFileLuid1} \
--custom-cf-limsid {compoundOutputFileLuid3} \
-l {compoundOutputFileLuid4} "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 'output.::Flowcell Type:: = input.::Flowcell Type:: ; nextStep = ::ADVANCE::' -log {compoundOutputFileLuid0}"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' && \
/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/pooling.groovy'"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:validateUniqueIndexes"bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/03_NovaSeqXp_consolidateBulkPoolFiles.py \
-u {username} -p {password} -s {stepURI} -o consolidated.csv --destLIMSID {compoundOutputFileLuid2} && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar script:validate_flowcell_for_input_pools -i {stepURI:v2} -u {username} -p {password} -l {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'"bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/03_NovaSeqXp_confirmBPPPlateAndStoreInstrumentID.py -u {username} -p {password} -s {stepURI} -f {compoundOutputFileLuid3} -i 'Liquid Handling Instrument ID'"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}-WPP:: ) ) {fail ( ::Invalid WPP Plate Barcode. This plate ID must be in the format LPxxxxxxx-WPP, where 'x' is a digit 0-9, e.g. LP1234567-WPP. 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}"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 true \
-h false \
-exp 'if ( input.::Flowcell Type:: == ::SP:: ) { output.::BP Aliquot Volume (ul):: = 18 ; output.::NaOH Volume (ul):: = 4.50 ; output.::Tris-HCl Volume (ul):: = 4.50 ; step.::DPX1 Volume (ul):: = 126 ; step.::DPX2 Volume (ul):: = 18 ; step.::DPX3 Volume (ul):: = 66 ; output.::Mastermix per Lane (ul):: = 63} ; if ( input.::Flowcell Type:: == ::S1:: ) { output.::BP Aliquot Volume (ul):: = 18 ; output.::NaOH Volume (ul):: = 4.50 ; output.::Tris-HCl Volume (ul):: = 4.50 ; step.::DPX1 Volume (ul):: = 126 ; step.::DPX2 Volume (ul):: = 18 ; step.::DPX3 Volume (ul):: = 66 ; output.::Mastermix per Lane (ul):: = 63} ; if ( input.::Flowcell Type:: == ::S2:: ) { output.::BP Aliquot Volume (ul):: = 22 ; output.::NaOH Volume (ul):: = 5.50 ; output.::Tris-HCl Volume (ul):: = 5.50 ; step.::DPX1 Volume (ul):: = 126 ; step.::DPX2 Volume (ul):: = 18 ; step.::DPX3 Volume (ul):: = 66 ; output.::Mastermix per Lane (ul):: = 77} ; if ( input.::Flowcell Type:: == ::S4:: ) { output.::BP Aliquot Volume (ul):: = 30 ; output.::NaOH Volume (ul):: = 7.50 ; output.::Tris-HCl Volume (ul):: = 7.50 ; step.::DPX1 Volume (ul):: = 315 ; step.::DPX2 Volume (ul):: = 45 ; step.::DPX3 Volume (ul):: = 165 ; output.::Mastermix per Lane (ul):: = 105} ; output.::Flowcell Type:: = input.::Flowcell Type:: ; output.::Loading Workflow Type:: = input.::Loading Workflow Type::' \
-log {compoundOutputFileLuid1} \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Xp_Working_Pool.csv \
-o {compoundOutputFileLuid0}.csv \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Xp_Working_Pool2.csv \
-o append.csv \
&& cat append.csv >> {compoundOutputFileLuid0}.csv \
&& \
/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 {compoundOutputFileLuid4} \
-t /opt/gls/clarity/extensions/IGA_2.1/hamilton_fast_prep/templatefiles/LoadToFlowcell_NovaSeqXp_Incomplete_template.csv \
-o Output_plate_name.csv \
-l {compoundOutputFileLuid1}"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 'output.::Flowcell Type:: = input.::Flowcell Type:: ; nextStep = ::ADVANCE::' -log {compoundOutputFileLuid1}"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'"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 'output.::Flowcell Type:: = input.::Flowcell Type:: ; nextStep = ::ADVANCE::' -log {compoundOutputFileLuid1}"bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar script:validate_flowcell_for_input_pools -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} -validateSelectedContainer true && \
/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'"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 \
-exp 'if (input.::Flowcell Type:: == ::SP:: && !output.container.name.matches( ::[A-Z0-9]{5}DR[A-Z0-9]{2}:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; if (input.::Flowcell Type:: == ::S1:: && !output.container.name.matches( ::[A-Z0-9]{5}DR[A-Z0-9]{2}:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; if (input.::Flowcell Type:: == ::S2:: && !output.container.name.matches( ::[A-Z0-9]{5}DM[A-Z0-9]{2}:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; if (input.::Flowcell Type:: == ::S4:: && !output.container.name.matches( ::[A-Z0-9]{5}DS[A-Z0-9]{2}:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; output.::Flowcell Type:: = input.::Flowcell Type:: ; output.::Loading Workflow Type:: = input.::Loading Workflow Type::' \
-log {compoundOutputFileLuid1} && \
/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/validate_floorcell_container.py -u {username} -p {password} -s {stepURI}"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 \
-exp 'step.::Run Mode:: = input.::Flowcell Type:: ; if (!step.::Experiment Name::.matches(::[a-zA-Z0-9-_]+::)) { fail(::Experiment Name contains prohibited characters. Allowed characters are: a-z, A-Z, 0-9, -, and _::) }; if (step.::Workflow Type:: == ::No Index::) { if (step.::Index Read 1:: != 0) { fail(::Index Read 1 must be 0 if the Workflow Type is No Index.::) } } else { if (step.::Index Read 1:: == 0) { fail(::Index Read 1 must be greater than 0 if the Workflow Type is :: + step.::Workflow Type:: + ::.::) } }; if (step.::Paired End::.toBoolean() && step.::Read 2 Cycles:: == 0) { fail(::Read 2 Cycles must not be zero if it is Paired End read.::) }; if (step.::Workflow Type:: == ::Dual Index:: && step.::Index Read 2:: == 0) { fail(::Index Read 2 must not be zero if Workflow Type is Dual Index.::) }; if (step.::Workflow Type:: == ::No Index:: || step.::Workflow Type:: == ::Single Index::) { step.::Index Read 2:: = 0 }; if (!step.::Paired End::.toBoolean()) { step.::Read 2 Cycles:: = 0 }; if (input.::Flowcell Type::!=::SP:: && step.::Read 1 Cycles:: > 151) { fail(::Read 1 Cycles must not be larger than 151 if it is not SPrime Flowcell::) };if (input.::Flowcell Type::!=::SP:: && step.::Read 2 Cycles:: > 151) { fail(::Read 2 Cycles must not be larger than 151 if it is not SPrime Flowcell::) }; nextStep = ::ADVANCE::' \
-log {compoundOutputFileLuid1} \
-t true \
&& if [[ '{udf:SampleSheet Version}' == 'V2' && '{udf:Enable Secondary Analysis}' == 'false' ]]; then \
templateFilename='/opt/gls/clarity/extensions/IGA_2.1/ss_converter_templates/NovaSeq_BCL2FASTQ_Samplesheet_XP_V2.csv'; \
else \
templateFilename='/opt/gls/clarity/extensions/IGA_2.1/ss_converter_templates/NovaSeq_BCL2FASTQ_Samplesheet_XP_V1.csv'; \
fi \
&& /opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar -i {stepURI:v2} -u {username} -p {password} \
script:driver_file_generator \
-t $templateFilename \
-o {compoundOutputFileLuid0}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-l {compoundOutputFileLuid1} \
&& if [[ '{udf:Enable Secondary Analysis}' == 'true' ]]; then \
PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 /opt/gls/clarity/extensions/IGA_2.1/ss_converter \
--input {compoundOutputFileLuid0}.csv \
--bssh-app {udf:BaseSpace App Slug} \
--stepURI {stepURI:v2} -u {username} -p {password} -q \
--destLIMSID {compoundOutputFileLuid0} 2>&1; \
fi && \
/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar \
-i {stepURI:v2} -u {username} -p {password} \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/Biosample_Manifest.csv \
-o {compoundOutputFileLuid3}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid3} \
-l {compoundOutputFileLuid1}"bash -l -c "/usr/bin/env python /opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/04_NovaSeqXp_completeAndConsolidateWPPZipFile.py -u {username} -p {password} -s {stepURI} -o wpp_output --destLIMSID {compoundOutputFileLuid2}"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'"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 \
-exp 'if (input.::Flowcell Type:: == ::SP:: && !output.container.name.matches( ::[A-Za-z0-9]{5}DRXX:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; if (input.::Flowcell Type:: == ::S1:: && !output.container.name.matches( ::[A-Za-z0-9]{5}DRXX:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; if (input.::Flowcell Type:: == ::S2:: && !output.container.name.matches( ::[A-Za-z0-9]{5}DMXX:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; if (input.::Flowcell Type:: == ::S4:: && !output.container.name.matches( ::[A-Za-z0-9]{5}DSXX:: ) ) {fail ( ::Invalid Flowcell Barcode. Please verify and try again.:: ) } ; output.::Flowcell Type:: = input.::Flowcell Type:: ; output.::Loading Workflow Type:: = input.::Loading Workflow Type::' \
-log {compoundOutputFileLuid1}"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' && \
/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/novaseq6000/automated_sequencing_run_step_completed.groovy'"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 -exp 'nextStep = ::ADVANCE::' -log {compoundOutputFileLuid0}"bash -l -c "PYTHONPATH=/opt/gls/clarity/extensions/IGA_2.1 python3 \
/opt/gls/clarity/extensions/IGA_2.1/iga_novaseq/NovaSeq_automated_warning.py \
-s {stepURI:v2} \
-u {username} \
-p {password} \
-l {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' && \
/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/novaseq6000/register_novaseq_run.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/novaseq6000/novaseq_associate_seqrun.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/novaseq6000/novaseq_seqrun_started.groovy' "



