arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

IGA Library Prep Automated v2.1

hashtag
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.

hashtag
Protocol 1: Sample Selection

Protocol Type = Sample Prep

Next Steps Configuration

hashtag
Step 1: Select Samples

  • Master Step Name = Select Samples (IGA v2.1)

  • Step Type = No Outputs

hashtag
Automations

chevron-rightValidate Sample Attributes (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightSample Selection - Set Library prep method and Next steps (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightSample Selection - Route plated gDNA (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Protocol 2: Sample Plating

Protocol Type = Sample Prep

Next Steps Configuration

hashtag
Step 1: Plate Samples

  • Master Step Name = Sample Plating (IGA v2.1)

  • Step Type = Standard

  • Derived Sample Generation = Variable

hashtag
Automations

chevron-rightSample Plating & Extraction - Validate Single Sample Type and Library Prep Method (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightPlacement Reminder (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon entry

chevron-rightSample Plating - Sample Placement SAM Plate Barcode Uniqueness Check (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon exit

chevron-rightSample Plating - Set Transfer Volume & Create Liquid Handler Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Manual button

chevron-rightSample Plating - Hamilton Output Plate Barcode Check, Store Instrument ID & Set Next Steps to Remove from Workflow before Custom Routing (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightSample Plating - Route samples (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Projects

    • Well Sort Order = Column

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Projects

    • Well Sort Order = Column

hashtag
Placement = Enabled

  • Defaults

    • Sample Grouping = Group by Projects

    • Well Sort Order = Column

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Protocol 3: Blood Extraction

Protocol Type = Sample Prep

Next Steps Configuration

hashtag
Step 1: DNA Extraction - Blood

  • Master Step Name = DNA Extraction - Blood (IGA v2.1)

  • Step Type = Standard

  • Derived Sample Generation = Fixed, 1

hashtag
Automations

chevron-rightSample Plating & Extraction - Validate Single Sample Type and Library Prep Method (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightExtraction - Sample Placement EDP Plate Barcode Uniqueness Check (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon exit

chevron-rightExtraction - Count Samples & Create LH Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon entry

chevron-rightExtraction - Check LH Output File Barcode & Parse Reagent Info & Check for Missing Barcodes & Set Next Steps to Remove from Workflow (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightExtraction - Routing (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Column

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Column

hashtag
Placement = Enabled

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Column

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Protocol 4: Saliva Extraction

Protocol Type = Sample Prep

Next Steps Configuration

hashtag
Step 1: DNA Extraction - Saliva

  • Master Step Name = DNA Extraction - Blood (IGA v2.1)

  • Step Type = Standard

  • Derived Sample Generation = Fixed, 1

hashtag
Automations

chevron-rightSample Plating & Extraction - Validate Single Sample Type and Library Prep Method (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightExtraction - Sample Placement EDP Plate Barcode Uniqueness Check (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon exit

chevron-rightExtraction - Count Samples & Create LH Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon entry

chevron-rightExtraction - Check LH Output File Barcode & Parse Reagent Info & Check for Missing Barcodes & Set Next Steps to Remove from Workflow (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightExtraction - Routing (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Column

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Column

hashtag
Placement = Enabled

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Column

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Protocol 5: Illumina DNA PCR-Free

Protocol Type = Sample Prep

Next Steps Configuration

hashtag
Step 1: DNA Batching PCR-Free

  • Master Step Name = DNA Batching NFPF (IGA v2.1)

  • Step Type = Standard

  • Derived Sample Generation = Fixed, 1

hashtag
Automations

chevron-rightDNA Batching PF - Set Final Volume and Validate Sample Type Combination (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightPlacement Reminder (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon entry

chevron-rightDNA Batching - Sample Placement DNA Plate Barcode Uniqueness Check (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon exit

chevron-rightDNA Batching PF - Generate LH Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Manual button

chevron-rightDNA Batching - Check LH Output File Barcode, Store Instrument ID, Set Next Steps to Advance (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightRegister Step Completed (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Placement = Enabled

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Column

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Step 2: Index Planning PCR-Free

  • Master Step Name = Indexing Planning (IGA v2.1)

  • Step Type = No Outputs

hashtag
Automations

chevron-rightRegister Step Started (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightIndexing Planning - Validate and Check for Duplicates of Index Plate Barcode, Validate Indexing Offset, and Set Next Steps (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightRegister Step Completed (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Step 3: Library Prep - Indexing PCR-Free

  • Master Step Name = Indexing NFPF (IGA v2.1)

  • Step Type = Add Labels

  • Derived Sample Generation = Fixed, 1

hashtag
Automations

chevron-rightIndexing - Validate Index Category and Index Plate Barcode (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightIndexing - Custom Indexing with Hamilton Offsets and Dynamic Index Category Discovery (IGA v2.1)hashtag
  • Trigger Location = Add Labels

  • Trigger Style = Automatic upon entry

chevron-rightLibrary Prep - Indexing PF - Validate/Copy LibPlate Barcode, Set Default Norm. Mol. if Applicable, and Generate LH Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Manual button

chevron-rightLibrary 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)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightLibrary Prep - Indexing PF - Route Samples to Sequencing Platform Selection with Automatic Workflow Detection (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Add Labels

  • Label Groups

    • Nextera UDP A

    • Nextera UDP B

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Protocol 6: Illumina DNA with Enrichment

Protocol Type = Sample Prep

Next Steps Configuration

hashtag
Step 1: DNA Batching with Enrichment

  • Master Step Name = DNA Batching NFE (IGA v2.1)

  • Step Type = Standard

  • Derived Sample Generation = Fixed, 1

hashtag
Automations

chevron-rightDNA Batching Enrichment - Set Final Volume (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightPlacement Reminder (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon entry

chevron-rightDNA Batching - Sample Placement DNA Plate Barcode Uniqueness Check (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon exit

chevron-rightDNA Batching Enrichment - Generate LH Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Manual button

chevron-rightDNA Batching - Check LH Output File Barcode, Store Instrument ID, Set Next Steps to Advance (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightRegister Step Completed (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Placement = Enabled

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Step 2: Index Planning with Enrichment

  • Master Step Name = Indexing Planning (IGA v2.1)

  • Step Type = No Outputs

hashtag
Automations

chevron-rightRegister Step Started (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightIndexing Planning - Validate and Check for Duplicates of Index Plate Barcode, Validate Indexing Offset, and Set Next Steps (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightRegister Step Completed (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Step 3: Library Prep - Indexing with Enrichment

  • Master Step Name = Indexing NFE (IGA v2.1)

  • Step Type = Add Labels

  • Derived Sample Generation = Fixed, 1

hashtag
Automations

chevron-rightIndexing - Validate Index Category and Index Plate Barcode (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightIndexing - Custom Indexing with Hamilton Offsets and Dynamic Index Category Discovery (IGA v2.1)hashtag
  • Trigger Location = Add Labels

  • Trigger Style = Automatic upon entry

chevron-rightLibrary Prep - Indexing Enrichment - Copy Input Plate Barcode to Output Plate (IGA v2.1)hashtag
  • Trigger Location = Add Labels

  • Trigger Style = Automatic upon exit

chevron-rightLibrary Prep - Indexing Enrichment - Copy Indexing Metadata to Outputs & Set Next Steps to Advance (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightRegister Step Completed (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Add Labels

  • Label Groups

    • Nextera UDP A

    • Nextera UDP B

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Step 4: Library Prep - Pre-Capture Pooling with Enrichment

  • Master Step Name = Library Prep NFE - Pool Libraries (IGA v2.1)

  • Step Type = Pooling

  • Aliquot Generation = Fixed, 1

hashtag
Automations

chevron-rightRegister Step Started (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightLibrary Prep - Pooling Enrichment - Validate Pool Sizes (IGA v2.1)hashtag
  • Trigger Location = Pooling

  • Trigger Style = Automatic upon exit

chevron-rightLibrary Prep - Pooling Enrichment - Sample Placement PCPP Plate Barcode Uniqueness Check (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon exit

chevron-rightLibrary Prep - Pooling Enrichment - Create LH Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Manual button

chevron-rightLibrary Prep - Pooling Enrichment - Validate LH Output File Name, Parse Reagents & Set Next Steps to Advance (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightRegister Step Completed (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Pooling

  • Label Uniqueness = On

  • Defaults

    • Sample Grouping = Group by Containers

hashtag
Placement = Enabled

  • Defaults

    • Well Sort Order = Row

    • Placement Pattern = Column

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Step 5: Library Prep - Capture and Wash with Enrichment

  • Master Step Name = Capture and Wash NFE (IGA v2.1)

  • Step Type = Standard

  • Derived Sample Generation = Fixed, 1

hashtag
Automations

chevron-rightRegister Step Started (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightCapture and Wash Enrichment - Sample Placement LIB Plate Barcode Uniqueness Check & Update Pool Count (IGA v2.1)hashtag
  • Trigger Location = Placement

  • Trigger Style = Automatic upon exit

chevron-rightCapture and Wash Enrichment - Create LH Input File (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Manual button

chevron-rightCapture and Wash Enrichment - Validate LH Output File Name, Parse Reagents & Set Next Steps to Advance (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightRegister Step Completed (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Placement = Enabled

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Step 6: Post-Capture Pool QC with Enrichment

  • Master Step Name = Generic Pool QC NFE (IGA v2.1)

  • Step Type = Standard QC

  • Measurement Generation = Fixed, 1

hashtag
Automations

chevron-rightRegister Step Started (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightPool 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)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightPool QC - Generic - Enrichment - Route QC Passed Samples to Sequencing Platform Selection (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Record Details

  • Step Data (Master Step Fields)

hashtag
Protocol 7: Sequencing Platform Selection

Protocol Type = Sample Prep

Next Steps Configuration

hashtag
Step 1: Select Sequencing Platform

  • Master Step Name = Sequencing Platform Selection (IGA v2.1)

  • Step Type = No Outputs

hashtag
Automations

chevron-rightRegister Step Started (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon entry

chevron-rightSequencing Platform Selection - Copy Instrument Type to Analyte & Set Next Steps to Remove from Workflow (IGA v2.1)hashtag
  • Trigger Location = Record Details

  • Trigger Style = Automatic upon exit

chevron-rightSequencing Platform Selection - Route to Sequencing Workflow by Type (IGA v2.1)hashtag
  • Trigger Location = Step

  • Trigger Style = Automatic upon exit

hashtag
Queue

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Ice Bucket

  • Defaults

    • Sample Grouping = Group by Containers

    • Well Sort Order = Row

hashtag
Record Details

  • Step Data (Master Step Fields)

Sample Table
  • Column Headers

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

  • Expanded View Fields

Sample Table (Column Headers)

Category

Field Name

Field Type

Options

Additional Options and Dropdown Items

Container

Container Name

Built-in

Container

LIMS ID (Container)

Built-in

Presets

  • Illumina DNA PCR-Free

  • Illumina DNA with Enrichment

Quick reference checklist: Sample Selection

Multiline Text

Read Only

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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Derived Sample

    Sample Name

    Built-in

    Submitted Sample

  • Naming Convention = {InputItemlName}
    Sample Table
    • Column Headers

      Category

      Field Name

      Field Type

      Options

      Additional Options and Dropdown Items

      Derived Sample

      Waiting

      Built-in

    • Expanded View Fields

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Submitted Sample

    Library Prep Method

    Text

    Submitted Sample

    Sample Type

    Text

    Placement Pattern = Column
  • Destination Containers

    • 96 well plate

  • Defaults = User tasks for this page: - Select blue 'Run' button - Download Liquid Handler Input File

    Quick reference checklist: Sample Plating. ii) post Liquid Handler

    Multiline Text

    Read Only

    Defaults = User tasks continued: - Upload resulting Liquid Handler Output File - Select Next Steps

    Step Sample Type

    Text

    Read Only

  • 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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

  • Naming Convention = {InputItemName}
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Derived Sample

    Waiting

    Built-in

    Submitted Sample

    Library Prep Method

    Text

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Submitted Sample

    Library Prep Method

    Text

    Submitted Sample

    Sample Type

    Text

    Placement Pattern = Column
  • Destination Containers

    • 96 well plate

  • Liquid Handling Instrument ID

    Text

    Read Only

    MLB

    Text

    ProK

    Text

    RSB

    Text

    Sample Count

    Numeric

    Read Only

    Default = 0

    Step Sample Type

    Text

    Read Only

    Quick reference checklist: DNA Extraction - Blood. i) pre Liquid Handler

    Multiline Text

    Read Only

    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

    Multiline Text

    Read Only

    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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container

    Built-in

    Container

  • Naming Convention = {InputItemName}
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Derived Sample

    Waiting

    Built-in

    Submitted Sample

    Library Prep Method

    Text

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Submitted Sample

    Library Prep Method

    Text

    Submitted Sample

    Sample Type

    Text

    Placement Pattern = Column
  • Destination Containers

    • 96 well plate

  • Liquid Handling Instrument ID

    Text

    Read Only

    MLB

    Text

    ProK

    Text

    RSB

    Text

    Sample Count

    Numeric

    Read Only

    Default = 0

    Step Sample Type

    Text

    Read Only

    Quick reference checklist: DNA Extraction - Saliva. i) pre Liquid Handler

    Multiline Text

    Read Only

    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

    Multiline Text

    Read Only

    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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container

    Built-in

    Container

  • Naming Convention = {InputItemName}_DNA
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Placement Pattern = Column
  • Destination Containers

    • 96 well plate

  • Default = 350

    Liquid Handling Instrument ID

    Text

    Read Only

    Notes:

    Multiline Text

    Read Only

    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

    Multiline Text

    Read Only

    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

    Multiline Text

    Read Only

    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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

  • Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    • Default = 1

    • Range From 1 to 12

    Quick reference checklist: Indexing Planning

    Multiline Text

    Read Only

    • 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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

  • Naming Convention = {SubmittedSampleName}
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    Well

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    Well

    Built-in

    Nextera UDP C
  • Nextera UDP D

    • Default = CTGTCTCTTATACACATCT

    BLT-PF

    Text

    ELM-T

    Text

    HP3

    Text

    Index Plate Barcode (read from input samples)

    Text

    • Read Only

    Index Plate Offset (read from input samples)

    Text

    • Read Only

    IPB

    Text

    Library Plate Barcode

    Text

    • Required Field

    Liquid Handling Instrument ID

    Text

    • Read Only

    Quick reference checklist: Library Prep IDPF. i) pre Liquid Handler

    Multiline Text

    • Read Only

    • 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

    Multiline Text

    • Read Only

    • 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'

    RSB

    Text

    Sample Count

    Numeric

    • Read Only

    • Default = 0

    • Decimal Places Displayed = 0

    ST2

    Text

    TB1

    Text

    TWB

    Text

  • 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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container

    Built-in

    Container

  • Naming Convention = {InputItemName}_DNA
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Placement Pattern = Column
  • Destination Containers

    • 96 well plate

  • Default = 450

    Liquid Handling Instrument ID

    Text

    Read Only

    Notes:

    Multiline Text

    Read Only

    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

    Multiline Text

    Read Only

    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

    Multiline Text

    Read Only

    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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

  • Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    • Default = 1

    • Range From 1 to 12

    Quick reference checklist: Indexing Planning

    Multiline Text

    Read Only

    • 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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

  • Naming Convention = {SubmittedSampleName}
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Nextera UDP C
  • Nextera UDP D

  • Quick reference checklist: Library Prep IDE.

    Multiline Text

    Read Only

    • 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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

  • Naming Convention = {PoolName}
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Well Sort Order = Row
    Destination Containers
    • 96 well plate

    Default = CTGTCTCTTATACACATCT

    eBLT

    Text

    EPM

    Text

    Index Plate Barcode (read from input samples)

    Text

    • Read Only

    Index Plate Offset (read from input samples)

    Text

    • Read Only

    Liquid Handling Instrument ID

    Text

    • Read Only

    Quick reference checklist: Library Prep IDE - pool libraries. i) pre Liquid Handler.

    Multiline Text

    • Read Only

    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.

    Multiline Text

    • Read Only

    Default = User tasks continued: - After running the Prep method on the Liquid Handler, upload resulting Liquid Handler Output File - Click on 'Next Steps'

    RSB

    Text

    Sample Count

    Numeric

    • Read Only

    • Default = 0

    SPB

    Text

    ST2

    Text

    TB1

    Text

    Total Pool Volume (ul)

    Numeric

    Default = 30

    TWB

    Text

  • 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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Derived Sample

    Diluent Volume (uL)

    Numeric

    Decimal Places Displayed = 1

    Derived Sample

  • Naming Convention = {InputItemName}
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Placement Pattern = Same Shape
  • Destination Containers

    • 96 well plate

  • EHB2

    Text

    EPM

    Text

    ET2

    Text

    HP3

    Text

    Liquid Handling Instrument ID

    Text

    Read Only

    Pool Count

    Numeric

    Read Only

    Default = 0

    PPC

    Text

    Probes

    Text

    Quick reference checklist: Capture and Wash IDE. i) pre Liquid Handler.

    Multiline Text

    Read Only

    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.

    Multiline Text

    Read Only

    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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

  • Naming Convention = {InputItemName}
    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Step File Placeholders
    • QC Instrument Results (Generic Placeholder) - Manually uploaded

    • Script Log File (Aggregated) - Automatically attached

  • Sample Table

    • Enable QC Flags = Yes

    • Sample Display Default = Expand

    • Well Sort Order = Row

    • File Column Options

      • File Column Display = Hide

      • File Attachment Method = Auto

    • Table Columns - Global Fields

  • Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Sample Table (Column Headers)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    • 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)

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

  • Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    IGA WF Build Version

    Text

    Read Only

    Default = 2.1.0.1

    Library Prep Method

    Text Dropdown

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Liquid Handling Instrument ID

    Text

    Read Only

    Quick reference checklist: Sample Plating. i) pre Liquid Handler

    Multiline Text

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Ethanol

    Text

    ITB

    Text

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Ethanol

    Text

    ITB

    Text

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Batching Well Volume (uL)

    Numeric

    Required Field

    Default = 40

    DNA (ng) required for tagmentation

    Numeric

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Index Plate Barcode

    Text

    Required Field

    Hamilton Indexing Offset Column

    Numeric

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Adapter

    Text

    • Required Field

    • Read Only

    • Default = CTGTCTCTTATACACATCT

    Adapter Read 2

    Text

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Batching Well Volume (uL)

    Numeric

    Required Field

    Default = 45

    DNA (ng) required for tagmentation

    Numeric

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Index Plate Barcode

    Text

    Required Field

    Hamilton Indexing Offset Column

    Numeric

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Index Plate Barcode (read from input samples)

    Text

    Read Only

    Index Plate Offset (read from input samples)

    Text

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Adapter

    Text

    • Required Field

    • Read Only

    Default = CTGTCTCTTATACACATCT

    Adapter Read 2

    Text

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    EE1

    Text

    EEW

    Text

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Quick reference checklist: Pool QC IDE.

    Multiline Text

    Read Only

    Default = User tasks for this page: - 'Run' Capture and Wash automation - Download resulting Liquid Handler Input File

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Sequencing Platform

    Text Dropdown

    Required Field

    • Presets

      • NovaSeq_IGA

      • NextSeq 1000/2000 v2.3

    • Default = NovaSeq_IGA

    Quick reference checklist: Sequencing Platform Selection

    Multiline Text

    Required Field

    Read Only

    Required Field

    • Required Field

    • Read Only

    Required Field

    Read Only

    • Required Field

    • Read Only

    Read Only

    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'"
    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}"
    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'"
    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'"
    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.'"
    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}"
    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}"
    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}"
    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'"
    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'"
    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}"
    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}"
    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}"
    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'"
    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'"
    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}"
    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}"
    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}"
    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'"
    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'"
    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.'"
    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}"
    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}"
    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}"
    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/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: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}"
    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'"
    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'"
    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}"
    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}"
    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.'"
    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'"
    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'"
    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.'"
    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}"
    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}"
    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}"
    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/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: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}"
    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'"
    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'"
    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}"
    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}"
    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}"
    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'"
    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'"
    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}"
    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}"
    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}"
    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}"
    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/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: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'"
    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}"
    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}"
    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/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 -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}"
    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'"
    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'"
    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}"
    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'"

    Text

    Text

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Normalized Molarity (nM)

    Numeric

    Decimal Places Displayed = 2

    Derived Sample

    INTERNALFIELD_QCValue_forRouting

    Text

    Measurement

    Normalized Molarity (nM)

    Numeric

    Decimal Places Displayed = 2

    Measurement

    INTERNALFIELD_QCValue_forRouting

    Text

    Read Only

    Project

    Project Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Submitted Sample

    Illumina Universal Sample Identifier

    Built-in

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Submitted Sample

    Sample Conc.

    Numeric

    Decimal Places Displayed = 2

    Submitted Sample

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Library Prep Method

    Text

    Submitted Sample

    Sample Conc.

    Numeric

    Decimal Places Displayed = 2

    Submitted Sample

    Submitted Sample Type

    Text

    Read Only

    Submitted Sample

    Units

    Text

    Submitted Sample

    Library Prep Method

    Text

    Submitted Sample

    Sample Type

    Text

    Submitted Sample

    Sequencing Method

    Text Dropdown

    Custom Entries

    Presets

    • Single Read

    • Paired End Read

    • Indexed Single Read

    • Indexed Paired End Read

    Submitted Sample

    Submitted Sample Name

    Built-in

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Submitted Sample

    Date Submitted

    Built-in

    Submitted Sample

    Submitted Sample

    Sequencing Method

    Text Dropdown

    Custom Entries

    Presets

    • Single Read

    • Paired End Read

    • Indexed Single Read

    • Indexed Paired End Read

    Submitted Sample

    Submitted Sample Name

    Built-in

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Submitted Sample Type

    Text

    Read Only

    Derived Sample

    Transfer Volume (ul)

    Numeric

    Submitted Sample

    Sample Type

    Text

    Submitted Sample

    Submitted Sample Labware Type

    Text

    Submitted Sample

    Sample Type

    Text

    Submitted Sample

    Sequencing Method

    Text Dropdown

    Custom Entries

    Presets

    • Single Read

    • Paired End Read

    • Indexed Single Read

    • Indexed Paired End Read

    Submitted Sample

    Submitted Sample Name

    Built-in

    Submitted Sample

    Submitted Sample Name

    Built-in

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Submitted Sample Type

    Text

    Read Only

    Project

    Project Name

    Built-in

    Submitted Sample

    Library Prep Method

    Text

    Submitted Sample

    Sample Type

    Text

    Submitted Sample

    Sequencing Method

    Text Dropdown

    Custom Entries

    Presets

    • Single Read

    • Paired End Read

    • Indexed Single Read

    • Indexed Paired End Read

    Submitted Sample

    Submitted Sample Name

    Built-in

    Submitted Sample

    Submitted Sample Name

    Built-in

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Submitted Sample Type

    Text

    Read Only

    Project

    Project Name

    Built-in

    Submitted Sample

    Library Prep Method

    Text

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Submitted Sample

    Library Prep Method

    Text

    Submitted Sample

    Sample Type

    Text

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Diluent Volume (uL)

    Numeric

    Decimal Places Displayed = 1

    Derived Sample

    Initial Input DNA (ng)

    Numeric

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Sample Needed (uL)

    Numeric

    Decimal Places Displayed = 1

    Derived Sample

    Warnings

    Text

    Read Only

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    INTERNALFIELD_QCValue_forRouting

    Text

    Derived Sample

    Sample Name

    Built-in

    Project

    Project Name

    Built-in

    Derived Sample

    INTERNALFIELD_IndexPlanning_Metadata

    Text

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Derived Sample

    INTERNALFIELD_IndexPlanning_Metadata

    Text

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container Name

    Built-in

    Container

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Normalized Molarity (nM)

    Numeric

    Decimal Places Displayed = 2

    Derived Sample

    Sample Name

    Built-in

    Submitted Sample

    Library Prep Method

    Text

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Diluent Volume (uL)

    Numeric

    Decimal Places Displayed = 1

    Derived Sample

    Initial Input DNA (ng)

    Numeric

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Sample Needed (uL)

    Numeric

    Decimal Places Displayed = 1

    Derived Sample

    Warnings

    Text

    Read Only

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    INTERNALFIELD_IndexPlanning_Metadata

    Text

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    INTERNALFIELD_IndexPlanning_Metadata

    Text

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Number of Samples in Pool

    Numeric

    Default = 0

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Sample Needed (uL)

    Numeric

    Decimal Places Displayed = 1

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Category

    Field Name

    Field Type

    Options

    Additional Options and Dropdown Items

    Container

    Container Name

    Built-in

    Container

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Waiting

    Built-in

    Project

    Project Name

    Built-in

    LIMS ID (Container)

    Built-in

    Container

    Well

    Built-in

    Derived Sample

    Sample Name

    Built-in

    Derived Sample

    Sequencing Platform

    Text

    Project

    Project Name

    Built-in

    Units

    Sample Category

    LIMS ID (Container)