NovaSeq 6000 Integration v3.4.0 Sample Sheet Customization
Clarity LIMS NovaSeq 6000 v3.4 Integration Package, together with Illumina Preset Protocols v2.3, provides sample sheet v2 generation functionality. This new functionality allows for ICA support.
The default configuration generates a sample sheet that contains content used for sequencing and BCL Convert. You can also generate v2 sample sheets that include custom content by editing the NovaSeq_BCL2FASTQ_Samplesheet_v2.csv template (included with IPP v2.3 and the NovaSeq 6000 v3.3 workflow). For example, custom content might include settings and data for other analysis applications, or additional settings used for BCL conversion.
Depending on the information required by the analysis software, you might need to include additional sample data tables in the generated sample sheet. If you need help determining the content to include in a sample sheet file, consult with the Illumina Support team.
Complete the following steps to create a customized v2 sample sheet template:
1. | Create a custom sample sheet template file by editing the default template settings. |
2. | Create a custom sample sheet template file for analysis. |
3. | Upload the custom template file to Clarity LIMS. |
4. | Modify the automation to generate a sample sheet using the custom template file. |
For information on troubleshooting the template file and its associated automation, refer to Troubleshooting Template File Generator.

In this example, two additional settings (AdapterRead1 and AdapterRead2), with predefined values, are added to the BCLConvert_Settings section of the NovaSeq_BCL2FASTQ_Samplesheet_v2.csv template file.
Additionally, the settings are configured to retrieve values from the Software Version and Override Cycles master step fields.
After editing, the BLConvert_Settings section appears as follows.
[BCLConvert_Settings]
SoftwareVersion,${PROCESS.UDF.Analysis Software Version##Value}
OverrideCycles,${PROCESS.UDF.Override Cycles##Value}
AdapterRead1,CTGTCTCTTATACACATCT
AdapterRead2,GCTAGCTAGCTAGCAGCTT
Naming the Output File
The following line in the default template tells the driver_file_generator script to use the OUTPUT.CONTAINER.NAME format for the name of the output file:
OUTPUT.FILE.NAME,${OUTPUT.CONTAINER.NAME}.csv
As the automation does not have the context for this name value, remove this line from the file and use the driver_file_generator -o option to set the output file name. For more information and an example of -o option usage, refer to the Modify Automation Script to Generate a Custom Sample Sheet section.
Naming the Template File
After editing the default template, save it with a new file name (eg, NovaSeq_BCL2FASTQ_Samplesheet_v2-modified.csv).
The example template file is shown in the following drop-down section.

SORT.BY.${INPUT.CONTAINER.ROW}${INPUT.CONTAINER.COLUMN}
PROCESS.POOLED.ARTIFACTS
CONTROL.SAMPLE.DEFAULT.PROJECT.NAME,Controls
HIDE, ${PROCESS.UDF.Read 2 Cycles##Value}, IF, NODATA
HIDE, ${PROCESS.UDF.Index Read 1##Value}, IF, NODATA
HIDE, ${PROCESS.UDF.Index Read 2##Value}, IF, NODATA
HIDE, ${PROCESS.UDF.Analysis Software Version##Value}, IF, NODATA
HIDE, ${PROCESS.UDF.Override Cycles##Value}, IF, NODATA
HIDE, ${INPUT.REAGENT.SEQUENCE##Dual}, IF, NODATA
<HEADER_BLOCK>
[Header]
FileFormatVerion,2
RunName,${PROCESS.UDF.Experiment Name}
InstrumentPlatform,NovaSeq
InstrumentType,NovaSeq 6000
IndexOrientation,Forward
[Reads]
Read1Cycles,${PROCESS.UDF.Read 1 Cycles}
Read2Cycles,${PROCESS.UDF.Read 2 Cycles##Value}
Index1Cycles,${PROCESS.UDF.Index Read 1##Value}
Index2Cycles,${PROCESS.UDF.Index Read 2##Value}
[BCLConvert_Settings]
SoftwareVersion,${PROCESS.UDF.Analysis Software Version##Value}
OverrideCycles,${PROCESS.UDF.Override Cycles##Value}
AdapterRead1,CTGTCTCTTATACACATCT
AdapterRead2,GCTAGCTAGCTAGCAGCTT
[BCLConvert_Data]
</HEADER_BLOCK>
<HEADER>
Sample_ID,Index,Index2
</HEADER>
<DATA>
${SAMPLE.NAME##NoSpecialCharacters},${INPUT.REAGENT.SEQUENCE##Single},${INPUT.REAGENT.SEQUENCE##Dual}
</DATA>
<TOKEN_FORMAT>
${INPUT.REAGENT.SEQUENCE##Single}
def index = token.indexOf("-")
if (index > 0) {
return token.substring(0,index)
} else {
return token
}
${INPUT.REAGENT.SEQUENCE##Dual}
def index = token.indexOf("-")
if (index >= 0) {
return token.substring(index + 1)
} else {
return null
}
${SAMPLE.NAME##NoSpecialCharacters}
return token.replaceAll(\"[^a-zA-Z0-9_]\", \"_\")
${PROCESS.UDF.Read 2 Cycles##Value}
if (token == '0') {
return null
}
return token
${PROCESS.UDF.Index Read 1##Value}
if (token == '0') {
return null
}
return token
${PROCESS.UDF.Index Read 2##Value}
if (token == '0') {
return null
}
return token
${PROCESS.UDF.Analysis Software Version##Value}
if (token == '0') {
return null
}
return token
${PROCESS.UDF.Override Cycles##Value}
if (token == '0') {
return null
}
return token
</TOKEN_FORMAT>

When using a template file for analysis, the file must include a Sample data section containing HEADER and DATA blocks. For information on creating HEADER and DATA blocks, refer to Creating Template Files.
Each template file can have only one Sample data section containing these blocks. If more Sample data tables are needed, create multiple template files and merge them using the concatenation command (cat) in the automation script. An example script that uses this command is provided in the Modify Automation Script to Generate a Custom Sample Sheet section.
Following is an example of a template file that includes HEADER and DATA blocks. The two empty lines after <HEADER_BLOCK> provide proper spacing when merging multiple files.
<HEADER_BLOCK>
[DragenGermline_Settings]
SoftwareVersion,3.8.4
ReferenceGenomeDir,${PROCESS.UDF.Reference Genome Directory}
MapAlignOutFormat,true
KeepFastq,true
[DragenGermline_Data]
</HEADER_BLOCK>
<HEADER>
Sample_ID
</HEADER>
<DATA>
${SAMPLE.NAME##NoSpecialCharacters}
</DATA>
• | The [DragenGermline_Settings] section provides ICA with information about the analysis application. It tells ICA that this section belongs to the Dragen Germline Analysis Application and allows for the extraction of the settings information required by the analysis run. |
• | The sample DATA section provides ICA with information about the analysis application. It tells ICA that this section belongs to the Dragen Germline Analysis Application, and allows for the extraction of the sample data required by the analysis run. |

1. | From Configuration, select the Automation tab. |
2. | From the Automation tab, select the Step Automation tab. |
3. | In the automations list, select the automation to modify. |
4. | Under Template Files, select Upload File and upload the custom template file. |
After uploading the template file, a new token for the file displays in the Tokens section. You can use this token in the automation command line, as described in the following section.

After uploading a template file, modify the automation so that the driver_file_generator script uses the new file to generate the sample sheet. Following is an example of a modified automation command line.
bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/DriverFileGenerator.jar -i {stepURI:v2} -u {username} -p {password} -l {compoundOutputFileLuid1} \
script:driver_file_generator \
-t {file:NovaSeq_BCL2FASTQ_Samplesheet_v2-modified.csv} \
-o 1.csv \
script:driver_file_generator \
-t {file:Custom_DrageGermline.csv} \
-o 2.csv \
&& cat 1.csv 2.csv > {compoundOutputFileLuid0}.csv"
In this example, the last line uses concatenation to merge the two files referenced in the script (eg, NovaSeq_BCL2FASTQ_Samplesheet_v2-modified.csv and Custom_DrageGermline.csv) into a single file.