Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
/opt/gls/clarity/config/illumina-preset-protocols-installer.sh -o install QC_Protocols.qc-protocols.bash /opt/gls/clarity/config/configure_sequencer_api_application.shbash /opt/gls/clarity/config/configure_sequencer_api_proxy.shProxyPass ajp://localhost:9009/Illumina/Sequencer/v2
ProxyPassReverse ajp://localhost:9009/Illumina/Sequencer/v2bash /opt/gls/clarity/config/configure_sequencer_api_env.sh/opt/gls/clarity/config/illumina-preset-protocols-installer.sh -o install Illumina_Instruments.Library-Prep-Validation-v2.3/opt/gls/clarity/tomcat/current/webapps/Illumina#Sequencer#v2##2.6.0.0.war/opt/gls/clarity/extensions/sequencer-api/application.yml/opt/gls/clarity/configyum install BaseSpaceLIMS-sequencer-api --enablerepo=< repo name info from support >bash /opt/gls/clarity/config/illumina-preset-protocols-installer.sh -o install Illumina_Instruments.novaseqdx-v1.2https://<< Clarity LIMS URL >>/Illumina/Sequencer/v2/oauth/authorize?client_id=illumina_sequencer&redirect_uri=../sequencer_login&response_type=tokenyum install BaseSpaceLIMS-Illumina-Preset-Protocols --enablerepo=<< repo name info from support >>
/opt/gls/clarity/bin/run_clarity.sh start

/opt/gls/clarity/config/illumina-preset-protocols-installer.sh -o install QC_Protocols.qc-protocolsbash /opt/gls/clarity/config/configure_sequencer_api_application.shbash /opt/gls/clarity/config/configure_sequencer_api_proxy.shProxyPass ajp://localhost:9009/Illumina/Sequencer/v2
ProxyPassReverse ajp://localhost:9009/Illumina/Sequencer/v2bash /opt/gls/clarity/config/configure_sequencer_api_env.sh/opt/gls/clarity/config/illumina-preset-protocols-installer.sh -o install Illumina_Instruments.Library-Prep-Validation-v2.3/opt/gls/clarity/tomcat/current/webapps/Illumina#Sequencer#v2##2.7.0.0.war/opt/gls/clarity/extensions/sequencer-api/application.yml/opt/gls/clarity/configyum install BaseSpaceLIMS-sequencer-api --enablerepo=< repo name info from support >bash /opt/gls/clarity/config/illumina-preset-protocols-installer.sh -o install Illumina_Instruments.novaseqdx-v1.2https://<< Clarity LIMS URL >>/Illumina/Sequencer/v2/oauth/authorize?client_id=illumina_sequencer&redirect_uri=../sequencer_login&response_type=tokenyum install BaseSpaceLIMS-Illumina-Preset-Protocols --enablerepo=<< repo name info from support >>
/opt/gls/clarity/bin/run_clarity.sh start





/opt/gls/clarity/tomcat/current/logs/sequencer-api.log2021-06-19 21:32:19.705 INFO --- [] SequencerAPIApplication : Started SequencerAPIApplication in 7.026 seconds (JVM running for 15.964)
...
2021-06-19 21:34:44.564 INFO --- [Library Tube Id=NV1234567-LIB, Flow Cell Id=RM123DSXX] LimsApiLookupUtil : Searching for containers with name 'NV1234567-LIB' or 'RM123DSXX'
....
2021-06-19 21:35:27.158 INFO --- [] FileService : Successfully retrieved file 'NV1234567-LIB.csv' with LIMS ID 40-51 through the API.















\\networkshare\run_data\\networkshare\run_data



/opt/gls/clarity/tomcat/current/logs/sequencer-api.log2021-06-19 21:32:19.705 INFO --- [] SequencerAPIApplication : Started SequencerAPIApplication in 7.026 seconds (JVM running for 15.964)
...
2021-06-19 21:34:44.564 INFO --- [Library Tube Id=NV1234567-LIB, Flow Cell Id=RM123DSXX] LimsApiLookupUtil : Searching for containers with name 'NV1234567-LIB' or 'RM123DSXX'
....
2021-06-19 21:35:27.158 INFO --- [] FileService : Successfully retrieved file 'NV1234567-LIB.csv' with LIMS ID 40-51 through the API.















\\networkshare\run_data\\networkshare\run_data








input.::Minimum Molarity (nM):: = (5 * input.::Final Loading Concentration (pM)::)/1000if (!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::
}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::step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: + input.::Adjusted Per Sample Volume (ul)::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 ;
output.::Tris-HCl Volume (ul):: = 38
} ;
if ( input.::Flowcell Type:: == ::S4:: ) {
output.::Volume of Pool to Denature (ul):: = 310 ;
output.::NaOH Volume (ul):: = 77;
output.::Tris-HCl Volume (ul):: = 78
}&& /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_Standard_Bulk_Pool1.csv \
-o 1.csv \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Standard_Bulk_Pool2.csv \
-o 2.csv \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Standard_Bulk_Pool3.csv \
-o 3.csv \
&& cat 1.csv 2.csv 3.csv > {compoundOutputFileLuid0}.csvstep.::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)::output.::Flowcell Type:: = input.::Flowcell Type:: ;
output.::Loading Workflow Type:: = input.::Loading Workflow Type::step.::Run Mode:: = input.::Flowcell Type::if (step.::Paired End::.toBoolean()) {
if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) {
fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::)
}
} else {
if (step.::Read 2 Cycles:: != 0) {
fail(::Read 2 Cycles must be 0 if Paired End is False.::)
}
};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::)
};if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) {
fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::)
};if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) {
fail(::Override Cycles ontains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::)
};nextStep = ::REMOVE::/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/conf/driverfiletemplates/NovaSeqDx_BCL2FASTQ_Samplesheet_v2.csv \
-o {compoundOutputFileLuid0}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-l {compoundOutputFileLuid1}"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::step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: + input.::Adjusted Per Sample Volume (ul)::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/DriverFileGenerator.jar -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Xp_Bulk_Pool.csv \
-o {compoundOutputFileLuid0}.csv \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Xp_Bulk_Pool2.csv \
-o append.csv \
&& cat append.csv >> {compoundOutputFileLuid0}.csv"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)::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/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"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"step.::Run Mode:: = input.::Flowcell Type::/Illumina/Sequencer/v2/sequencer_login/Illumina/Sequencer/v2/sequencer_login/Success/Illumina/Sequencer/v2/sequencer_login/ErrorSequencing run with Run ID {runId} of Step '{step.name}' ({step.limsid}) completed successfully.Step '${Step.name}' (${Step.limsid}) failed with Run ID ${runId}."Sequencing run with Run ID ${status.runInfo.runId} of Step '${step.configuration.name}' (${step.limsid}) aborted by user ${status.runInfo.userName}."nextStep = ::REMOVE::bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
script:validate_same_analyte_udf_value_for_all_inputs \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-l {compoundOutputFileLuid1} \
-f 'NovaSeqDx Run Mode'"step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: + 1nextStep = ::ADVANCE::output.::NovaSeqDx Run Mode:: = input.::NovaSeqDx Run Mode::script:validateSampleCount -min 1 -max 1bash -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 'NovaSeqDx v1.2' \
--STEP 'AUTOMATED - NovaSeqDx Run (NovaSeqDx v1.2)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS'"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 || step.::Index Read 2:: != 0) { fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::) } } else if (step.::Workflow Type:: == ::Single Index::) { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) { fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::) } } else { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) { fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::) } }; if (step.::Paired End::.toBoolean()) { if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) { fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::) } } else { if (step.::Read 2 Cycles:: != 0) { fail(::Read 2 Cycles must be 0 if Paired End is False.::) } }; 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::) }; if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) { fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::) }; if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) { fail(::Override Cycles contains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::) }; nextStep = ::REMOVE::step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: + 1if (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.:: )
};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 || step.::Index Read 2:: != 0) { fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::) } } else if (step.::Workflow Type:: == ::Single Index::) { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) { fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::) } } else { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) { fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::) } }; if (step.::Paired End::.toBoolean()) { if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) { fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::) } } else { if (step.::Read 2 Cycles:: != 0) { fail(::Read 2 Cycles must be 0 if Paired End is False.::) }}; 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::) }; if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) { fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::) }; if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) { fail(::Override Cycles contains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::) }; step.::Settings Header:: = step.hasValue(::UMI - Read 1 Length::) || step.hasValue(::UMI - Read 2 Length::) ? ::[Settings]:: : ::::; nextStep = ::REMOVE::{
"run_name": "NVOS16027_SPrime_2x250",
"run_mode": "S4",
"workflow_type": "DualIndex",
"librarytube_id": "NV0025867-LIB",
"flowcell_id": "",
"sample_loading_type": "NovaSeqStandard",
"rehyb": false,
"paired_end": true,
"read1": 151,
"read2": 151,
"index_read1": 8,
"index_read2": 8,
"output_folder": "\\\\network_path\\run_data",
"samplesheet": "",
"require_samplesheet_authentication": true,
"usecustomrecipe": false,
"customRecipe": null,
"use_basespace": false,
"basespace_mode": null,
"use_custom_read1_primer": false,
"use_custom_read2_primer": false,
"use_custom_index_read1_primer": false
}if (input.::NovaSeqDx Run Mode:: == ::DX::) {
if (input.::Loading Workflow Type:: == ::NovaSeq Xp::) {
fail(::Invalid option selected. NovaSeq Standard shall be selected for DX mode.::);
};
if (input.::Flowcell Type:: == ::SP:: || input.::Flowcell Type:: == ::S1::) {
fail(::Invalid option selected. Only S2 or S4 flowcell shall be selected for DX mode.::);
};
};bash -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 {compoundOutputFileLuid0} script:changeWorkflow \
\
--FIELD_NAME 'Loading Workflow Type' \
--FIELD_VALUE 'NovaSeq Standard' \
--WORKFLOW 'NovaSeqDx v1.2' \
--STEP 'Make Bulk Pool for NovaSeqDx Standard (NovaSeqDx v1.2)' \
--INPUTS_OR_OUTPUTS 'INPUTS' \
\
--FIELD_NAME 'Loading Workflow Type' \
--FIELD_VALUE 'NovaSeq Xp' \
--WORKFLOW 'NovaSeqDx v1.2' \
--STEP 'Make Bulk Pool for NovaSeqDx Xp (NovaSeqDx v1.2)' \
--INPUTS_OR_OUTPUTS 'INPUTS'"/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} \
-validateSingleOutput true \
-poolType bulk"step.::PhiX Volume (ul):: = !step.hasValue(::% PhiX (2.5nM) Spike-In::) ? 0 : step.::% PhiX (2.5nM) Spike-In::;
if (input.::Flowcell Type:: == ::SP::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 100;
step.::PhiX Volume (ul):: *= 0.6
};
if (input.::Flowcell Type:: == ::S1::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 100;
step.::PhiX Volume (ul):: *= 0.6
};
if (input.::Flowcell Type:: == ::S2::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 150;
step.::PhiX Volume (ul):: *= 0.9
};
if (input.::Flowcell Type:: == ::S4::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 310;
step.::PhiX Volume (ul):: *= 1.9
};
if (step.::PhiX Volume (ul):: == 0) {
step.::PhiX Volume (ul):: = ::::
};if ((input.::NovaSeqDx Run Mode:: == ::DX:: && !output.container.name.matches(::^DX[0-9]{7}-[A-Z]{3}$::)) || (input.::NovaSeqDx Run Mode:: == ::RUO:: && !output.container.name.matches(::[A-Z]{2}[0-9]{7}-[A-Z]{3}::))) {
fail(::Invalid Library Tube Barcode. Please verify and try again.::)
}/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} \
-validateSingleOutput true \
-poolType bulk"step.::PhiX Volume (ul):: = !step.hasValue(::% PhiX (0.25nM) Spike-In::) ? 0 : step.::% PhiX (0.25nM) Spike-In::;
if (input.::Flowcell Type:: == ::SP::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 18;
step.::PhiX Volume (ul):: *= 0.7;
};
if (input.::Flowcell Type:: == ::S1::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 18;
step.::PhiX Volume (ul):: *= 0.7;
};
if (input.::Flowcell Type:: == ::S2::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 22;
step.::PhiX Volume (ul):: *= 0.8;
};
if (input.::Flowcell Type:: == ::S4::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 30;
step.::PhiX Volume (ul):: *= 1.1;
};
if (step.::PhiX Volume (ul):: == 0) {
step.::PhiX Volume (ul):: = ::::;
};output.::Flowcell Type:: = input.::Flowcell Type:: ; nextStep = ::ADVANCE::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}"if ( input.::Flowcell Type:: == ::SP:: ) {
output.::BP Aliquot Volume (ul):: = 18 ;
output.::NaOH Volume (ul):: = 4 ;
output.::Tris-HCl Volume (ul):: = 5 ;
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 ;
output.::Tris-HCl Volume (ul):: = 5 ;
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 ;
output.::Tris-HCl Volume (ul):: = 6 ;
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 ;
output.::Tris-HCl Volume (ul):: = 8 ;
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:: ; nextStep = ::ADVANCE::output.::Flowcell Type:: = input.::Flowcell Type:: ;
output.::Loading Workflow Type:: = input.::Loading Workflow 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 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::)
}
} else if (step.::Workflow Type:: == ::Single Index::) {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::)
}
} else {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) {
fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::)
}
};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 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::)
}
} else if (step.::Workflow Type:: == ::Single Index::) {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::)
}
} else {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) {
fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::)
}
};if (step.::Paired End::.toBoolean()) {
if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) {
fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::)
}
} else {
if (step.::Read 2 Cycles:: != 0) {
fail(::Read 2 Cycles must be 0 if Paired End is False.::)
}
};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::)
}if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) {
fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::)
};if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) {
fail(::Override Cycles contains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::)
};nextStep = ::ADVANCE::/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/conf/driverfiletemplates/NovaSeqDx_BCL2FASTQ_Samplesheet_v2.csv \
-o {compoundOutputFileLuid0}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-l {compoundOutputFileLuid1}








input.::Minimum Molarity (nM):: = (5 * input.::Final Loading Concentration (pM)::)/1000if (!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::
}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::step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: + input.::Adjusted Per Sample Volume (ul)::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 ;
output.::Tris-HCl Volume (ul):: = 38
} ;
if ( input.::Flowcell Type:: == ::S4:: ) {
output.::Volume of Pool to Denature (ul):: = 310 ;
output.::NaOH Volume (ul):: = 77;
output.::Tris-HCl Volume (ul):: = 78
}&& /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_Standard_Bulk_Pool1.csv \
-o 1.csv \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Standard_Bulk_Pool2.csv \
-o 2.csv \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Standard_Bulk_Pool3.csv \
-o 3.csv \
&& cat 1.csv 2.csv 3.csv > {compoundOutputFileLuid0}.csvstep.::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)::output.::Flowcell Type:: = input.::Flowcell Type:: ;
output.::Loading Workflow Type:: = input.::Loading Workflow Type::step.::Run Mode:: = input.::Flowcell Type::if (step.::Paired End::.toBoolean()) {
if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) {
fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::)
}
} else {
if (step.::Read 2 Cycles:: != 0) {
fail(::Read 2 Cycles must be 0 if Paired End is False.::)
}
};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::)
};if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) {
fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::)
};if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) {
fail(::Override Cycles ontains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::)
};nextStep = ::REMOVE::/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/conf/driverfiletemplates/NovaSeqDx_BCL2FASTQ_Samplesheet_v2.csv \
-o {compoundOutputFileLuid0}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-l {compoundOutputFileLuid1}"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::step.::Total Sample Volume (ul):: = step.::Total Sample Volume (ul):: + input.::Adjusted Per Sample Volume (ul)::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/DriverFileGenerator.jar -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Xp_Bulk_Pool.csv \
-o {compoundOutputFileLuid0}.csv \
script:driver_file_generator \
-t /opt/gls/clarity/extensions/conf/driverfiletemplates/NovaSeq_Xp_Bulk_Pool2.csv \
-o append.csv \
&& cat append.csv >> {compoundOutputFileLuid0}.csv"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)::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/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"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"step.::Run Mode:: = input.::Flowcell Type::Sequencing run with Run ID {runId} of Step '{step.name}' ({step.limsid}) completed successfully.Step '${Step.name}' (${Step.limsid}) failed with Run ID ${runId}."Sequencing run with Run ID ${status.runInfo.runId} of Step '${step.configuration.name}' (${step.limsid}) aborted by user ${status.runInfo.userName}."nextStep = ::REMOVE::bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar \
script:validate_same_analyte_udf_value_for_all_inputs \
-i {stepURI:v2} \
-u {username} \
-p {password} \
-l {compoundOutputFileLuid1} \
-f 'NovaSeqDx Run Mode'"step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: + 1nextStep = ::ADVANCE::output.::NovaSeqDx Run Mode:: = input.::NovaSeqDx Run Mode::script:validateSampleCount -min 1 -max 1bash -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 'NovaSeqDx v1.2' \
--STEP 'AUTOMATED - NovaSeqDx Run (NovaSeqDx v1.2)' \
--INPUTS_OR_OUTPUTS 'OUTPUTS'"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 || step.::Index Read 2:: != 0) { fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::) } } else if (step.::Workflow Type:: == ::Single Index::) { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) { fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::) } } else { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) { fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::) } }; if (step.::Paired End::.toBoolean()) { if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) { fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::) } } else { if (step.::Read 2 Cycles:: != 0) { fail(::Read 2 Cycles must be 0 if Paired End is False.::) } }; 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::) }; if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) { fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::) }; if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) { fail(::Override Cycles contains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::) }; nextStep = ::REMOVE::step.::Number of Samples in Pool:: = step.::Number of Samples in Pool:: + 1if (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.:: )
};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 || step.::Index Read 2:: != 0) { fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::) } } else if (step.::Workflow Type:: == ::Single Index::) { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) { fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::) } } else { if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) { fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::) } }; if (step.::Paired End::.toBoolean()) { if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) { fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::) } } else { if (step.::Read 2 Cycles:: != 0) { fail(::Read 2 Cycles must be 0 if Paired End is False.::) }}; 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::) }; if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) { fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::) }; if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) { fail(::Override Cycles contains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::) }; step.::Settings Header:: = step.hasValue(::UMI - Read 1 Length::) || step.hasValue(::UMI - Read 2 Length::) ? ::[Settings]:: : ::::; nextStep = ::REMOVE::{
"run_name": "NVOS16027_SPrime_2x250",
"run_mode": "S4",
"workflow_type": "DualIndex",
"librarytube_id": "NV0025867-LIB",
"flowcell_id": "",
"sample_loading_type": "NovaSeqStandard",
"rehyb": false,
"paired_end": true,
"read1": 151,
"read2": 151,
"index_read1": 8,
"index_read2": 8,
"output_folder": "\\\\network_path\\run_data",
"samplesheet": "",
"require_samplesheet_authentication": true,
"usecustomrecipe": false,
"customRecipe": null,
"use_basespace": false,
"basespace_mode": null,
"use_custom_read1_primer": false,
"use_custom_read2_primer": false,
"use_custom_index_read1_primer": false
}vi /opt/gls/clarity/extensions/sequencer-api/application.ymlif (input.::NovaSeqDx Run Mode:: == ::DX::) {
if (input.::Loading Workflow Type:: == ::NovaSeq Xp::) {
fail(::Invalid option selected. NovaSeq Standard shall be selected for DX mode.::);
};
if (input.::Flowcell Type:: == ::SP:: || input.::Flowcell Type:: == ::S1::) {
fail(::Invalid option selected. Only S2 or S4 flowcell shall be selected for DX mode.::);
};
};bash -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 {compoundOutputFileLuid0} script:changeWorkflow \
\
--FIELD_NAME 'Loading Workflow Type' \
--FIELD_VALUE 'NovaSeq Standard' \
--WORKFLOW 'NovaSeqDx v1.2' \
--STEP 'Make Bulk Pool for NovaSeqDx Standard (NovaSeqDx v1.2)' \
--INPUTS_OR_OUTPUTS 'INPUTS' \
\
--FIELD_NAME 'Loading Workflow Type' \
--FIELD_VALUE 'NovaSeq Xp' \
--WORKFLOW 'NovaSeqDx v1.2' \
--STEP 'Make Bulk Pool for NovaSeqDx Xp (NovaSeqDx v1.2)' \
--INPUTS_OR_OUTPUTS 'INPUTS'"/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} \
-validateSingleOutput true \
-poolType bulk"step.::PhiX Volume (ul):: = !step.hasValue(::% PhiX (2.5nM) Spike-In::) ? 0 : step.::% PhiX (2.5nM) Spike-In::;
if (input.::Flowcell Type:: == ::SP::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 100;
step.::PhiX Volume (ul):: *= 0.6
};
if (input.::Flowcell Type:: == ::S1::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 100;
step.::PhiX Volume (ul):: *= 0.6
};
if (input.::Flowcell Type:: == ::S2::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 150;
step.::PhiX Volume (ul):: *= 0.9
};
if (input.::Flowcell Type:: == ::S4::) {
step.::Bulk Pool Volume (ul):: = step.::Number of Flowcells to Sequence:: * 310;
step.::PhiX Volume (ul):: *= 1.9
};
if (step.::PhiX Volume (ul):: == 0) {
step.::PhiX Volume (ul):: = ::::
};if ((input.::NovaSeqDx Run Mode:: == ::DX:: && !output.container.name.matches(::^DX[0-9]{7}-[A-Z]{3}$::)) || (input.::NovaSeqDx Run Mode:: == ::RUO:: && !output.container.name.matches(::[A-Z]{2}[0-9]{7}-[A-Z]{3}::))) {
fail(::Invalid Library Tube Barcode. Please verify and try again.::)
}/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} \
-validateSingleOutput true \
-poolType bulk"step.::PhiX Volume (ul):: = !step.hasValue(::% PhiX (0.25nM) Spike-In::) ? 0 : step.::% PhiX (0.25nM) Spike-In::;
if (input.::Flowcell Type:: == ::SP::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 18;
step.::PhiX Volume (ul):: *= 0.7;
};
if (input.::Flowcell Type:: == ::S1::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 18;
step.::PhiX Volume (ul):: *= 0.7;
};
if (input.::Flowcell Type:: == ::S2::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 22;
step.::PhiX Volume (ul):: *= 0.8;
};
if (input.::Flowcell Type:: == ::S4::) {
step.::Bulk Pool Volume (ul):: = step.'Number of Lanes to Sequence' * 30;
step.::PhiX Volume (ul):: *= 1.1;
};
if (step.::PhiX Volume (ul):: == 0) {
step.::PhiX Volume (ul):: = ::::;
};output.::Flowcell Type:: = input.::Flowcell Type:: ; nextStep = ::ADVANCE::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}"if ( input.::Flowcell Type:: == ::SP:: ) {
output.::BP Aliquot Volume (ul):: = 18 ;
output.::NaOH Volume (ul):: = 4 ;
output.::Tris-HCl Volume (ul):: = 5 ;
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 ;
output.::Tris-HCl Volume (ul):: = 5 ;
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 ;
output.::Tris-HCl Volume (ul):: = 6 ;
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 ;
output.::Tris-HCl Volume (ul):: = 8 ;
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:: ; nextStep = ::ADVANCE::output.::Flowcell Type:: = input.::Flowcell Type:: ;
output.::Loading Workflow Type:: = input.::Loading Workflow 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 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::)
}
} else if (step.::Workflow Type:: == ::Single Index::) {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::)
}
} else {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) {
fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::)
}
};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 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 and Index Read 2 must be 0 if No Index is selected.::)
}
} else if (step.::Workflow Type:: == ::Single Index::) {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: != 0) {
fail(::Index Read 1 must be greater than 0 and Index Read 2 must be 0 if Single Index is selected.::)
}
} else {
if (step.::Index Read 1:: == 0 || step.::Index Read 2:: == 0) {
fail(::Index Read 1 and Index Read 2 must be greater than 0 if Dual Index is selected.::)
}
};if (step.::Paired End::.toBoolean()) {
if (step.::Read 1 Cycles:: == 0 || step.::Read 2 Cycles:: == 0) {
fail(::Read 1 Cycles and Read 2 Cycles must be greater than 0 if Paired End is True.::)
}
} else {
if (step.::Read 2 Cycles:: != 0) {
fail(::Read 2 Cycles must be 0 if Paired End is False.::)
}
};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::)
}if (step.hasValue(::Analysis Software Version::) && !step.::Analysis Software Version::.matches(::^(\\d+)(\\.\\d+)*$::)) {
fail(::Analysis Software Version contains prohibited characters. Allowed characters are 0-9 and period. It shall start and end with numbers and separated by single period e.g. 3.8.4::)
};if (step.hasValue(::Override Cycles::) && !step.::Override Cycles::.matches(::[YNIU0-9;]+::)) {
fail(::Override Cycles contains prohibited characters. Allowed characters are: Y, N, I, U, 0-9 and ;. Example: N1Y150;I8;I7N1;Y141U10.::)
};nextStep = ::ADVANCE::/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/conf/driverfiletemplates/NovaSeqDx_BCL2FASTQ_Samplesheet_v2.csv \
-o {compoundOutputFileLuid0}.csv \
-q true \
-destLIMSID {compoundOutputFileLuid0} \
-l {compoundOutputFileLuid1}