# Check My Sample Sheet: a Web Application for Validating Illumina Sample Sheets Before Demultiplexing

Laure Lemée, Etienne Kornobis, Rania Ouazahrou, Thomas Cokelaer

► To cite this version:

Laure Lemée, Etienne Kornobis, Rania Ouazahrou, Thomas Cokelaer. Check My Sample Sheet: a Web Application for Validating Illumina Sample Sheets Before Demultiplexing. 2025. pasteur-05116291

HAL Id: pasteur-05116291

https://pasteur.hal.science/pasteur-05116291v1

Preprint submitted on 17 Jun 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Check My Sample Sheet: a Web Application for Validating Illumina Sample Sheets Before Demultiplexing

**Laure Lemée**
Institut Pasteur

**Rania Ouazahrou**
Institut Pasteur

**Etienne Kornobis**
Institut Pasteur

**Thomas Cokelaer**
thomas.cokelaer@pasteur.fr

Institut Pasteur

## Research Article

**Keywords:** NGS, demultiplexing, web application

**Posted Date:** October 16th, 2024

**DOI:** https://doi.org/10.21203/rs.3.rs-5268893/v1

**License:** ©① This work is licensed under a Creative Commons Attribution 4.0 International License.

Read Full License

**Additional Declarations:** The authors declare no competing interests.
# Check My Sample Sheet: a Web Application for Validating
Illumina Sample Sheets Before Demultiplexing

Laure Lemée¹, Etienne Kornobis ¹,², Rania Ouazahrou ¹,², and Thomas Cokelaer *¹,²

¹Institut Pasteur, Université Paris Cité, Plate-forme Technologique Biomics, F-75015 Paris, France

²Institut Pasteur, Université Paris Cité, Bioinformatics and Biostatistics Hub, F-75015 Paris, France

## ABSTRACT

The proper configuration of an Illumina sequencing run is paramount to its success, and the sample sheet, which summarizes sample metadata, is a critical component. To ensure accurate demultiplexing and downstream analysis, validation of this sample sheet is essential. Here, we present a user-friendly web application built with Streamlit, leveraging the IEM Python module from the Sequana Python library, designed for thorough sanity checks of Illumina sample sheets.

Our application offers a streamlined solution for sequencing platforms seeking to validate sample sheets prior to initiating demultiplexing processes. Through an intuitive interface, users can easily upload sample sheet files, triggering a suite of validation checks that include crucial parameters such as sample duplication, consistency, and adherence to Illumina formatting standards.

The Web application *Check My Sample Sheet* empowers users to identify and rectify potential problems preemptively, mitigate errors, and optimize sequencing outcomes. Furthermore, our application's open-source nature facilitates extensibility, allowing for customization to specific workflow requirements or other types of sample sheet formats.

## 1 Introduction

In recent years, Illumina sequencing has emerged as a cornerstone technology in genomic research, facilitating high-throughput sequencing of DNA and RNA. Its success is based on sequencing-by-synthesis technology, which has revolutionized the field of genomics with its high-throughput, cost-effective, and accurate sequencing capabilities [1].

Central to the Illumina sequencing runs is the meticulous configuration of the sample sheet – a text file document that outlines essential metadata for each sample, including barcode assignments, and sample names. This sample sheet is crucial for tools like *bc12fastq* [2], which is used to convert BCL (base call) data into FASTQ files. The *bc12fastq* software utilizes the sample sheet to demultiplex sequencing data, assigning reads to the correct samples based on their barcodes. The more recent Illumina tool, such as *bclconvert*, also depends on the same type of input file.

Although the importance of accurate sample sheet construction cannot be overstated, the complexity of sequencing experiments often introduces the possibility of errors or inconsistencies, which can compromise downstream analyses. Consequently, rigorous validation of sample sheets remains an indispensable step in the sequencing workflow.

Illumina provides a tool called Illumina Experiment Manager (IEM) [3] and should be available within the sequencing platform facilities. It offers a solution to create sample sheets, including the official set of indices for barcoding and the possibility to add custom indices. Furthermore, while IEM software provides robust validation capabilities, its dependence on Windows-based environments presents a significant drawback for users operating on alternative platforms. Moreover, there are scenarios where an alternative tool becomes essential. In fact, users often need to validate sample sheets at different stages of their workflow, not just during the creation. An open source tool that is cross-platform compatible and can be seamlessly integrated into existing pipelines remains crucial. Such a tool would facilitate continuous validation, ensure data integrity, and reduce the risk of errors that could compromise sequencing results.

To address these challenges and streamline the sample sheet validation process, we created a simple web application built with Streamlit [4] – a Python-based framework for creating interactive web applications. Using the proven

<footnote>*corresponding author: thomas.cokelaer@pasteur.fr</footnote>
capabilities of the IEM Python module from Sequana [5] library, our application offers a user-friendly interface to perform complete sanity checks on Illumina sample sheets. In this paper, we first describe the format of the Illumina sample sheet and some concepts of Illumina sequencing required to understand the format of the sample sheet. We focus specifically on version 2.20 of the `bc12fastq` software. Then, we present the design, implementation, and utility of our web application, *Check My Sample Sheet*, highlighting the various checks that are performed. Finally, we present the results, including several case studies.

# 2 Illumina Sample Sheet Format

## 2.1 Overview

The sample sheet in Illumina sequencing workflows is a text file that outlines essential metadata for each sample, including barcode assignments, sample names, and other relevant information. Despite being a plain text file, it traditionally uses a CSV (Comma-Separated Values) extension. This can lead to confusion, as users or software may attempt to handle it as a standard CSV file, which is not. The structure and formatting of the sample sheet consists of four optional sections called *Header*, *Reads*, *Settings*, and *Data*. We will now describe the sample sheet format in detail, explaining the purpose and content of each section. This description is based on the official Illumina documentation [2]. Except for a few exceptions highlighted later, we will adhere to these specifications as closely as possible.

## 2.2 Detailed description

All four sections begin with the section name enclosed in square brackets. Note that all four sections are optional and that additional sections may be added but will be ignored by `bc12fastq`. Although section names are case-insensitive, the IEM software outputs them with the title case (the first letter is uppercase and the rest are lowercase). Therefore, we will not check for cases in the sections' names; `[Data]`, `[DATA]`, `[data]` are all valid data section name. Note also that a section names must end with closing square brackets. Extra colons and end-of-line characters are accepted, but other characters will prevent the sections from being parsed.

**Header:** the [Header] section in the Illumina sample sheet is not directly used by `bc12fastq` for demultiplexing or data conversion processes. It contains metadata and information about the sequencing run as a whole such as the flow cell ID, run date, and instrument type. Additionally, it may include experimental parameters such as the index chemistry kit. The fields included in the [Header] section are flexible; users can add custom fields to provide useful metadata that can help in organizing and tracking sequencing runs. No checks are required for this section *per se*. Here is an example of Header section generated by IEM software:

```
[Header]
FileFormatVersion,2
Date,2021-07-10
Workflow,GenerateFASTQ
Application,FASTQ Only
Assay,RNA-seq
Description,your description
Chemistry,Default
```

**Reads:** The [Reads] section specifies the number of sequencing cycles for each read in the sequencing run. It contains one or two lines depending on the type of run (single-read or paired-end run). Each line in the [Reads] section consists of a single integer value that represents the number of cycles (bases) to be sequenced for that read. The order of the lines corresponds to the order of the reads during the sequencing process. For example, the first line specifies the number of cycles for Read 1, and the second line, if present, specifies the number of cycles for Read 2.

```
[Reads]
151
151
```

This section is generally ignored because modern Illumina sequencers and software, such as `bc12fastq`, utilize the `RunInfo.xml` file to obtain read length information. However, for older Illumina sequencers and earlier versions
CHECK MY SAMPLE SHEET - OCTOBER 15, 2024

of the bcl2fastq software that did not generate or use RunInfo.xml, the [Reads] section provided the necessary information about read lengths. So, it is still useful to check the values in this section.

**Settings:** The [Settings] section provides configuration parameters and settings specific to the sequencing run. Again, this is an optional section. However, unlike the [Header] and [Reads], the key-value pairs provided here are used when demultiplexing the data and are therefore of significant importance. This section can, for instance, trim adapter sequences in place of more dedicated tools [6, 7], remove Unique Molecular Identifiers (UMIs), or exclude specific tiles from analysis (see below for tile definition). Below is an example with four valid key-value pairs that encompass typical use cases. For a complete list of specifications, see the [2] guide and Annex 7.1.

```
[Settings]
Adapter,AGATCGGAAGAGCACACGTCTGAACTCCAGTCA
AdapterRead2,AGATCGGAAGAGCGTCGTGTAGGAAAGAGTGT
Read1StartFromCycle,2
ReverseComplement,1
ExcludeTiles,1101+1104+1110-1115
```

The nucleotide sequences, which must consist of the set A, C, G, T (uppercase), are used for keys such as Adapter and AdapterRead2 for trimming adapters. Note that there is no Read1 after Adapter for single-end run. Boolean values can be true, t, yes, y, 1 for true, and false, f, no, n, 0 for false. These are used with keys such as ReverseComplement to create reversed complemented FASTQ files. Numeric values, which only include the digits from 0 to 9, are used for keys such as Read1StartFromCycle. Finally, there is one possibility of complex pattern that is used to exclude tiles. Tiles are small imaging areas on a flowcell. The total number of tiles depends on the number of lanes, swaths, and surfaces that are imaged on the flow cell, and how the cameras work together to collect the images as illustrated in Fig. 1. The figure also illustrates examples of under-clustered and well-clustered tiles, providing visual context for why certain tiles might be excluded. Tiles can be excluded using the key ExcludeTiles. For instance, ExcludeTiles,1101+1104+1110-1115 skips tiles 1101, 1104, and 1110-1115. Note that the first digit corresponds to the surface, the second to the swaths, and the last two digits to the tile number. The number of surfaces, swaths, and tiles depends on the type of flowcell.

Finally, note that the keys are not case sensitive. For instance, the key ReverseComplement can be written reversecomplement.

**[Data]:** the [Data] section is the most crucial part of the Illumina sample sheet, as it contains the primary information necessary for sample identification and sequencing. This section provides a detailed list of all the samples to be sequenced, including essential metadata such as sample IDs, sample names, index sequences (for single indexing), and index2 sequences (for double-indexing) used for distinguishing different samples. It is formatted as a comma-separated file. Here is a simplified version with only five columns:

```
[Data]
Sample_ID,Sample_Name,I7_Index_ID,index,Sample Project
S1,Sample_1,I7-001,CGATGT,Project1
S2,Sample_2,I7-002,ACGCGT,Project1
```

While the Data section is technically optional, omitting it (or leaving it empty) results in all reads being stored in a single file called Undetermined_S0_R1_001.fastq.gz. The undetermined file contains all reads that were not associated with one of the barcoded samples. Since an empty or missing [Data] section is not pertinent for our application, we make it mandatory.

The header of the [Data] section indicates the content of the columns that follow. According to the specifications, none of the columns are compulsory, but without an index column or sample IDs, all samples will be placed in the same undetermined file. Therefore, the Sample_ID and index columns are highly recommended. In our application, the Sample_ID and index columns are made mandatory.

Here is a summary of the most common columns:

* Sample_ID: a unique identifier assigned to a sample

* Sample_Name: a more descriptive name or label (see later), aiding in organizational purposes (see later).

* Index (Barcode): short nucleotide sequences ligated to DNA fragments, enabling multiplexed sequencing by allowing the assignment of sequencing reads to their respective samples.
CHECK MY SAMPLE SHEET - OCTOBER 15, 2024

<figure><img src="image_2.png" /><figcaption>Figure 1: Diagram illustrating the hierarchical structure of a flowcell. A flowcell is composed of multiple lanes, each lane is divided into swaths, and each swath is subdivided into tiles. The figure also depicts examples of under-clustered and well-clustered tiles, with the bottom right figure showing an under-clustered density image and the bottom left image showing a well-clustered density image.</figcaption></figure>

* Index2 (Barcode): a second short nucleotide sequences ligated to DNA fragments.

* Description: a brief description of the sample, providing additional context.

* Sample Project: specify the project to which each sample belongs, aiding in organizational purposes (see later).

Other known columns are Sample_Lane, Sample_Plant, i7_index_id, i5_index_id. When Lane column is not provided or not filled, all lanes are converted. Otherwise, only populated lanes are converted.

The combination of Sample_ID, Sample_Name and Sample该项目 defines the final output structure. Here are some rules:

The Sample_ID, Sample_Name, and Sample Project define the layout of the output directory and how demulti-plexed FASTQ files are stored:

* If the Sample_ID and Sample_Name fields are omitted, all reads are stored in the undetermined file since no indexes are associated with any sample name.

* If Sample_ID is provided but Sample_Name is not, or the column is left empty, then the output files are stored in the output directory with one file per sample ID named as <ID>_SX_R1_001.fastq.gz, where X is replaced by the row number of the sample <ID>.

* If a Sample_Name is provided, there are two possibilities. If Sample_Name is identical to the ID, the samples are stored as <ID>_SX_R1_001.fastq.gz, whereas if Sample_Name is different from the ID, then the FASTQ files are stored in a sub-directory such as <ID>/<NAME>_SX_R1_001.fastq.gz.

* If a Sample Project column exists and is provided, the FASTQ files will be stored in a subdirectory named after the project.
## 3 Methods

In order to scan and validate sample sheets effectively, we developed a Python module called `iem` within the Sequana Python library [5]. This module has been used in production, for instance, in the Sequana demultiplex pipeline [8].

Most demultiplexing errors come from erroneous sample sheets. When an error is detected, bioinformatics facilities need to report back to sequencing facilities until the sample sheet is corrected, which can be time-consuming. To address this issue, we designed a website where users have access to a simple interface to validate their sample sheets before submission to bioinformatics facilities.

For the development of the web application, we chose `Streamlit` [4] that is a powerful and intuitive Python-based framework to create interactive web applications. It simplifies the process of building data-driven applications by allowing rapid development and real-time updates with minimal code.

A Python-based framework was selected because of its versatility and the wide range of libraries available for data manipulation and web development. The use of Python ensures seamless integration with the existing `iem` module and other components of the Sequana library. Using these technologies, we were able to create a robust, user-friendly web application that can be easily accessed via any web browser, democratizing the sample sheet validation process and ensuring data integrity across sequencing workflows.

The `streamlit` application depends on Sequana Python library and a `Streamlit` plugin both being available on the Python website (pypi.org); see Sec. 3 for installation instructions.

The web application workflow is made simple with a single entry page where users can upload a sample sheet, or paste a sample sheet in a text area. Then, the sample sheet is processed via a **process** button as illustrated in Fig. 2. The sample sheet file must have a `.txt` or `.csv` extension.

Once the input file is processed, a validation status is reported as successful or failed followed by a more detailed list of status labeled as Success/Warning/Errors most being made in the [Settings] and [Data] sections. The settings is read as a dictionary made of key-value pairs, while the data section is read as a CSV file. The settings are mostly checked for type validation as explained in the 2.2 and the data sections is checked for type validation as well as uniqueness of sample names and identifiers.

<figure><img src="image_3.png" /><figcaption>Figure 2: Screenshot of the main page landing on the Check My Sample Sheet web application.</figcaption></figure>
# 4 Results

## 4.1 An open source web application

The source code of the web application can be easily used to install local instances. The following set of commands will download, install, and deploy an instance of the web application.

```
git clone https://github.com/sequana/webappSamplesheet
cd check_my_sample_sheet
pip install --file requirements.txt
streamlit run app.py
```

## 4.2 An open source standalone application

The web application described here uses the Sequana Python module called `iem` to perform all the checks. For production or batch validation, one can also use the `sequana` standalone:

```
pip install sequana # install sequana alone
```

```
sequana samplesheet --check SampleSheet.csv
```

```
sequana samplesheet --full-check SampleSheet.csv
```

```
sequana samplesheet --quick-fix SampleSheet.csv
```

Once the Sequana library is installed (line 1), you can check the validity of a sample sheet file (line 3) that will tell you whether the sample sheet looks correct or not. You can also get all the status on the checks performed, including warnings, using the `--full-check` option (line 4). If users have introduced spurious colons or semi-colons at the end of each line, you can automatically remove them using the `--quick-fix` option (line 5).

## 4.3 User interface

The user experience was made as simple as possible with a main landing page 2 and a menu on the left hand side. The menu can redirect to the main page application, a list of examples that can be tried by copy/paste them into the dedicated text area, a citation page, and links to the source code.

## 4.4 Checks

The number of checks available through the web interface and the Python module depends on the sample sheet's content. These checks primarily focus on validating the key-value pairs in the [Settings] section and the format and content of the [Data] section. Overall, there are 20 possible success checks, 13 warnings, and 20 potential errors. These numbers depends on the content of the provided sample sheet.

### Settings Section Validation

To ensure the overall validity of the [Settings] section, several checks are performed. Adapter-related keys are validated to ensure that sequences are composed of letters A, C, G, and T, and errors are returned if invalid characters are found. Boolean options, such as `ReverseComplement`, `FindAdapterWithIndels`, `TrimUMI`, and `CreateFastqForIndexReads`, are verified to be valid booleans as accepted by `bcl2fastq`; errors are returned for invalid values. Additionally, cycle and UMI-length-related options are validated to be valid positive numbers, with errors raised for invalid entries. Finally, the validity of tile-related patterns is also checked (as explained in Sec. 2.2).

### Section Presence

The presence of the [Data], [Settings], [Header], and [Reads] sections is verified. If the [Data] section is missing, an error is raised. If any of the other sections is missing, a warning is raised.

### Data Section Validation

The majority of the checks focus on the [Data] section. It makes sure that the [Data] section is formatted as a valid CSV file. If columns such as `I7_index_ID`, `Sample Project`, `Description`, `Sample_Plate`, `Sample_Well`, `Lane`,
`Index_Plate`, or `Index_Plate_Well` are missing, a warning is raised. The presence of `sample_id` and `index` columns is required; if they are missing, an error is raised. Sample IDs are checked to ensure that they are not set to forbidden names (all or unknown) and that there are no duplicate identifiers. The `Sample Project` column is validated to ensure that it is not set to forbidden names (all or default). The `Sample_Name` column is checked to ensure that it is not set to forbidden names (unknown or undetermined); if the `Sample_Name` column is provided, a warning is raised for empty or duplicate entries. It is also ensured that `Sample_ID`, `Sample_Name`, and `Sample Project` contain only alphanumeric characters, hyphens, and underscores. The `index` column is checked for duplicate entries; for dual indexing, it is ensured that the `index` and `index2` columns are unique. The sequences in these columns are validated to contain only A, C, G, T, and N. If the `Sample_Lane` column is present, the lane numbers are verified to be between 1 and 8.

## 4.5 Case studies

For simplicity, we ignore the [Header] and [Reads] sections in the case studies that follow.

Here is a minimalist example with the [Data] section only, and the two mandatory columns `Sample_ID` and `index` (made mandatory by our application):

```
[Data]
Sample_ID, index
ID1, TGACCA
ID2, CATTTT
```

If we copy and paste this code into the web application (in the text area) and process it, a validation results section appears on the web page as illustrated in Fig. 3. Here, the sample sheet is validated. A progress bar then shows all checks that are performed, highlighting errors first, then warnings, and finally all successful checks.

<figure><img src="image_4.png" /><figcaption>Figure 3: Validation results related to the case study 1 (correct sample sheet).</figcaption></figure>

Another simplified sample sheet introduces several errors: one in the [Settings] section with a typo in the adapter sequence (trailing 'N'), an invalid character in the index sequence ('n'), and duplicated sample IDs in the [Data] section.

The result of the process is shown in Fig. 4. The main result is that errors were found, reporting duplicated IDs. In the detail section, the three introduced errors are reported with information such as the location of the error. For example, the wrong index sequence is located in line 1.
[Settings]
Adapter, ACGTACGTN
3
[Data]
Sample_ID, index
ID1, TGACCa
ID1, CATTTT

<figure><img src="image_5.png" /><figcaption>Figure 4: Validation results related to the case study 2 (several errors) leading to errors being reported.</figcaption></figure>

The final example is based on a common source of errors that encompasses a large proportion of the errors we en-
countered: the erroneous introduction of semicolons by the editors used by the users. Consider this example where
semicolons were introduced at the end of each line:

[Settings];;;;
Adapter; AGATCGGAAGAGCACACGTCTGAACTCCAGTCA;;;
AdapterRead2; AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT;;;
;;;
[Data];;;
Sample_ID; Sample_Name; I7_Index_ID; index; Sample Project
A;; NFO1; CGATGT;
B;; NFO3; ACAGTG;

The result shown in Fig. 5 raises a main error. The detailed reports show several errors and, in particular, a missing
[Data] section. Indeed, the extra character prevent the [Data] to be parsed correctly. The application performs a quick
fix on the input file removing any trailing semicolon. In this example, users can download a corrected file.

5 Data and Software availability

The web application presented here is hosted on streamlit website at https://check-my-sample-sheet.streamlit.app/. The source code is available on GitHub under the https://github.com/sequana/webappSamplesheet repository. The core of the application is based on the IEM module of the Sequana library available on pypi.org website; the source code is also available on the Sequana Github Repository.
<figure><img src="image_6.png" /><figcaption>Figure 5: Validation results related to the case study 3 (extra semicolons) leading to errors.</figcaption></figure>

## 6 Conclusion

The validation of Illumina sample sheets plays a pivotal role in ensuring the reliability of sequencing experiments. Using the capabilities of Streamlit and the Sequana IEM Python module, our Web application offers a user-friendly and platform-independent solution for comprehensive sanity checks of Illumina sample sheets. Through an intuitive interface, users can easily upload sample sheets and perform validation checks encompassing necessary parameters such as sample duplication, consistency, and adherence to Illumina formatting standards.

The application, available at check-my-sample-sheet.streamlit.app, can easily be included as an iframe within any website. The open source code is also available for facilities to install instances locally.

Moreover, the underlying Sequana module used within the application is highly versatile and can be integrated into other applications and pipelines, making it a valuable tool for various sequencing workflows. This module was also integrated into the sequanaDemultiplex pipeline and was used effectively and hundreds of sequencing runs to demultiplex various sequencing runs (ISeq, MiSeq, ...).

Looking ahead, we envision continued refinement and expansion of our web application to incorporate additional features, and integration with other sequencing platforms (e.g., MGI) further broadening the scope and utility of our validation tools.

## Acknowledgments

LL, EK, RO, TC work has been supported by the France Génomique Consortium (ANR 10-INBS-09-08) and IBISA and the Biomedics Platform of Institut Pasteur, Paris, France.

## Author contributions

TC implemented the website and Sequana code used to check the sample sheet. LL, RO and EK did the beta testing. TC, LL, RO and EK wrote the manuscript.

## Conflict of interest statement.

None declared.
References

[1] David R. Bentley et al. Accurate whole human genome sequencing using reversible terminator chemistry. *Nature*, 456(7218):53–59, 2008.

[2] Illumina. bcl2fastq User Guide, 2024. Last accessed on 2024-07-26.

[3] Illumina. Illumina experiment manager (IEM). https://emea.support.illumina.com/sequencing/sequencing_software/experiment_manager/downloads.html. Accessed: July 25, 2024.

[4] Streamlit Inc. A faster way to build and share data apps. https://www.streamlit.io, 2024. Accessed: July 25, 2024.

[5] Thomas Cokelaer, Dimitri Desvillechabrol, Rachel Legendre, and Mélissa Cardon. Sequana: a set of snakemake NGS pipelines. *Journal of Open Source Software*, 2(16):352, 2017.

[6] Marcel Martin. Cutadapt removes adapter sequences from high-throughput sequencing reads. *EMBnet.journal*, 17(1):10–12, 2011.

[7] Shifu Chen. fastp: Ultrafast one-pass fastq data preprocessing, quality control, and deduplication using fastp. *iMeta*, 2(2):i884–i890, 2023.

[8] Thomas Cokelaer. Sequana demultiplex pipeline. https://github.com/sequana/demultiplex, 2023.
# 7 Annex

## 7.1 Complete example (single indexing)

```
[Header]
Local Run Manager Analysis Id,43043
Experiment Name,MyProject
Date,2020-01-24
Module,GenerateFASTQ - 2.0.0
Workflow,GenerateFASTQ
Library Prep Kit,Custom
Description,200123-PE-MP-150
Chemistry,Default
```

[Reads]

151
151

[Settings]

Adapter,AGATCGGAAGAGCACACGTCTGAACTCCAGTCA

[Data]

Sample_ID,Sample_Name,Description,index,I7_Index_ID,Sample Project
1,1,first sample,TGACCA,TGACCA,B3202
A,A,sample A,CATTTT,CATTTT,B3202
AB,AB,combo A+B,ACAGTG,ACAGTG,B3202
AB1,AB1,,GTGAAA,GTGAAA,B3202

## 7.2 Settings section

According to the Illumina document 15051736 version 3 available on support.illumina.com [2], there are three categories of settings. The [Settings] section of the sample sheet can be used to specify options about (i) adapter trimming (see Table 1, (ii) cycle, UMI and tiles (see Table 2), and (iii) FASTQ files (see Table 3). For convenience, we reproduce here the three tables.

## 7.3 Data section

In Table 4, we gather the columns to be found in the Data section. The first six rows are those found in the Illumina document 15051736 version 3 [2]. Other columns names may be found in various IEM sample sheet but are informative and not used in the demultiplex process (e.g., description).
<table><caption>Table 1: Valid keys from the settings section related to adapter trimming.</caption><thead><tr><td>Setting</td><td>Description</td></tr></thead><tbody><tr><td>Adapter or TrimAdapter</td><td>The sequence of the adapter to be trimmed. If a sequence for Adapter-Read2 is specified, the setting applies to Read 1 only. To trim multiple adapters, separate the sequences with a plus sign (+) to indicate independent adapters that must be independently assessed or trimming for each read.</td></tr><tr><td>AdapterRead2 or TrimAdapterRead2</td><td>The adapter sequence to be trimmed in Read 2. If not provided, the sequence specified in Adapter or TrimAdapter is applied. To trim multiple adapters, separate the sequences with a plus sign (+) to indicate independent adapters that must be assessed for trimming independently for each read.</td></tr><tr><td>MaskAdapter</td><td>The adapter sequence to be masked rather than trimmed. If MaskAdapterRead2 is provided, this setting masks Read 1 only.</td></tr><tr><td>MaskAdapterRead2</td><td>The adapter sequence to be masked in Read 2. If not provided, the same sequence specified in MaskAdapter is applied.</td></tr><tr><td>FindAdaptersWithIndels</td><td>0-False. A sliding window algorithm is used and indels of adapter sequence bases are not allowed. 1-True (default). An approximate string matching algorithm identifies the adapter, treating indels as one mismatch.</td></tr></tbody></table>

<table><caption>Table 2: Valid keys from the settings section related to UMI, cycle, tiles.</caption><thead><tr><td>Setting</td><td>Description</td></tr></thead><tbody><tr><td>Read1EndWithCycle</td><td>The last cycle to use for Read 1.</td></tr><tr><td>Read2EndWithCycle</td><td>The last cycle to use for Read 2.</td></tr><tr><td>Read1StartFromCycle</td><td>The first cycle to use for Read 1.</td></tr><tr><td>Read2StartFromCycle</td><td>The first cycle to use for Read 2.</td></tr><tr><td>Read1UMILength</td><td>The length of the UMI used for Read 1.</td></tr><tr><td>Read2UMILength</td><td>The length of the UMI used for Read 2.</td></tr><tr><td>Read1UMIStartFromCycle</td><td>The first cycle to use for UMI in Read 1. The cycle index is absolute and not affected by the Read1StartFromCycle setting. The software supports UMIs only at the beginning or end of reads. Unless paired with Read1UMILength, the software ignores this setting.</td></tr><tr><td>Read2UMIStartFromCycle</td><td>The first cycle to use for UMI in Read 2. The cycle index is absolute and not affected by the Read2StartFromCycle setting. The software supports UMIs only at the beginning or end of reads. Unless paired with Read2UMILength, the software ignores this setting.</td></tr><tr><td>TrimUMI</td><td>0-False (default). 1-True. The software trims the UMI bases from Read 1 and Read 2.</td></tr><tr><td>ExcludeTiles</td><td>Tiles to exclude. Separate tiles with a plus sign (+) or specify a range with a hyphen (-). For example: ExcludeTiles,1101+2201+1301-1306 skips tiles 1101, 2201, and 1301-1306.</td></tr><tr><td>ExcludeTilesLaneX</td><td>Tiles to exclude for a given lane. For example: Exclude-TilesLane6,1101-1108 skips tiles 1101-1108 for lane 6.</td></tr></tbody></table>
<table><caption>Table 3: Valid keys from the settings section related to FASTQ output.</caption><thead><tr><td>Setting</td><td>Description</td></tr></thead><tbody><tr><td>CreateFastqForIndexReads</td><td>0—False (default). 1—True. The software generates FASTQ files for index reads. Normally, FASTQ files for index reads are not needed because the index adapter sequences are included in the FASTQ files. Demultiplexing is automatic and based on the sample sheet.*</td></tr><tr><td>ReverseComplement</td><td>0—False (default). 1—True. All reads are written to FASTQ files in the reverse complement. The reverse complements are necessary when processing mate-pair data using BWA, which requires paired-end data, and other nonstandard cases</td></tr></tbody></table>

<table><caption>Table 4: Valid keys from the data section related to FASTQ output.</caption><thead><tr><td>Setting</td><td>Description</td></tr></thead><tbody><tr><td>Sample_Lane</td><td>When specified, the software generates FASTQ files only for the samples with the specified lane number.</td></tr><tr><td>Sample_ID</td><td>The sample ID.</td></tr><tr><td>Sample_Name</td><td>The sample name.</td></tr><tr><td>Sample Project</td><td>The sample project name. The software creates a directory with the specified sample project name and puts the FASTQ files there. You can assign multiple samples to the same project.</td></tr><tr><td>index</td><td>The Index 1 (i7) index adapter sequence.</td></tr><tr><td>index2</td><td>The Index 2 (i5) index adapter sequence.</td></tr></tbody></table>