Skip to content

HTS Bioinf - NIPT Software


This document describes the NIPT software system.


HTS bioinformaticians are responsible for developing and updating the in-house components of the NIPT software system. Illumina is responsible for the VeriSeq NIPT Solution v2 software.

The NIPT Software has three major components:

  1. Clarity Integration and Automation
  2. VeriSeq NIPT Solution v2
  3. SWL Integration

Clarity Integration and Automation

Clarity Integration and Automation software is built around Illumina's VeriSeq NIPT Integration v1.0 Clarity module (described in VeriSeq NIPT Integration v1.0 - User & Configuration Guide.pdf). This module comes with a Clarity workflow named "VeriSeq NIPT v1.0" and an automation system installed on a LIMS server.

However, the workflow and the automation system do not meet our needs. Thus a new Clarity workflow together with an accompanying in-house Clarity automation system have been created to:

  • Combine "Clarity created batching" approach with the "ad hoc batching" approach. Officially, one of the "Clarity created batching" or "ad hoc batching" should be used. Each approach has its own convenience, at the same time, involves some manual work. But we want to take the convenience of both approaches and avoid the manual work as much as possible.
  • Track reagent lots and instruments in Clarity LIMS.
  • Allow duplicated samples (containers) in Clarity, e.g. for reanalysis.

"VeriSeq NIPT v1.0_EHD" Workflow

The original "VeriSeq NIPT v1.0" workflow is composed of one protocol with the same name. The protocol has 2 steps:

  1. Generate Batch & Input Sample Sheet (VeriSeq NIPT v1.0)
  2. AUTOMATED – Data Analysis(VeriSeq NIPT v1.0)

To track instruments such as Hamilton robot, PCR machine etc., and sequencing reagents, a new protocol is created by adding an extra step "Register NIPT Instruments v1.0" to the original protocol.

The new protocol has 3 steps:


Following instruments and reagents are tracked in step 2 of the "VeriSeq NIPT v1.0_EHD" workflow:


Inhouse Clarity Automation System

In addition to the original automation that comes with the Illumina VeriSeq NIPT Integration v1.0 module, there is an in-house automation system composed of four modules:

  1. duplicate_handling
  2. adhoc_batching
  3. fc_reports
  4. lot_instrument_tracing

Each module is run as a cron job on LIMS server. Each module monitors one or more reports generated along with the progress of a NIPT batch.

adhoc_batching module

The VeriSeq NIPT Solution v2 officially supports two batching approaches which are mutually exclusive.

The "Clarity generated batch" approach requires that a lab engineer manually selects all samples (e.g., 23, 46 or 92 samples) in Clarity into a batch and goes through the 1st step ("Generate Batch & Sample Sheet") of the "VeriSeq NIPT v1.0" workflow manually. Upon completion of this step, the "sample sheet" text file containing metadata (already in Clarity) of each sample will be generated. This approach requires that the lab engineer picks up exactly the same set of samples from storage to load onto the Hamilton robot.

The "ad hoc batching" approach allows loading a rack of "random" samples onto Hamilton, but the metadata of the samples must be typed in manually on the Hamilton robot control computer. Alternatively, a premade "sample sheet" containing metadata of each sample must be supplied.

The adhoc_batching module combines the "Clarity generated batch" and "ad hoc batching" approach. It allows the lab to load a rack of "random" samples onto Hamilton robot and automatically receive a "sample sheet" containing all samples and their metadata registered in Clarity.

  • The lab starts with loading a rack of "random" samples.
  • An ad hoc batch initiation report with barcodes (the same as sample name and container name in Clarity) of all the samples will be generated in the "output" share of VeriSeq Onsite Server (VOS) which is mounted on LIMS server.
  • The adhob_batching module monitoring the "output" share will pick up the batch initiation report and confirm that all the samples are in the "Generate Batch & Sample Sheet" queue.
  • If not, it waits and tries again later. If yes, the module automatically selects all the samples contained in the report into a batch in Clarity and goes through the "Generate Batch & Sample Sheet" step.
  • The "sample sheet" will then be generated and put in the "NIPT- Lab" share of the Windows server "Endpoint" and is accessible from the Hamilton robot's instrument control computer for pooling.

This module completes the "Generate Batch & Input Sample Sheet" process and forwards all samples to the 2nd step ("Register NIPT Instruments v1.0") of the NIPT workflow.

Lab completes 2nd step of the workflow manually where instruments and sequencing reagents are registered. Once this step is completed, samples will be queued in the 3rd step ("AUTOMATED - Data Analysis").

fcs_reports module

By default, the File Capture Service (FCS) installed on LIMS server monitors the "output" share of the VOS. FCS detects different types of reports newly generated, such as batch initiation report, sample invalidation report, nipt report etc., checks if all samples in the report are in the required state in Clarity, and (if yes) triggers an action to move samples forward the NIPT workflow.

For example, if a new batch initiation report is detected, FCS verifies that all samples are in the "AUTOMATED – Data Analysis" queue. If yes, the "AUTOMATED – Data Analysis" step is started automatically. If not, it tries again later. However, there is a time limit after a new report is detected until all samples are in the required state. If the time limit is reached, the report will be ignored causing the NIPT workflow never to complete.

This problem becomes significant with addition of the "Register NIPT Instruments v1.0" step.

The fcs_reports module solves this problem.

The FCS is configured not to monitor the "output" share directly. Instead, the fcs_reports module detects new reports and verify that all samples in a new report are in the required state in Clarity. If not, it waits and try again later. If yes, the fcs_reports module copies the new report to another directory which is monitored by the FCS. See an overview in:


Details are in:


lot_instrument_tracing module

The lot_instrument_tracing module monitors new library reagent reports and registers the reagent lots to the corresponding "Generate Batch & Sample Sheet" process's UDFs. Following reagent lots are registered:


Duplicate Handling

Duplicates are handled by the duplicate_handling module together with the fcs_reports module.

NIPT samples are exported from SWL and then imported into Clarity without filtering. So a sample can be exported from SWL and imported into Clarity multiple times causing one or more duplicates in Clarity. This is because a sample will always be exported from SWL unless its analysis is completed.

A duplicate in Clarity crashes the 3rd step of the NIPT workflow.

Any sample that has been registered more than once (in different projects) is considered as duplicated. But depending on the specific scenarios, the handling approach of a duplicate may differ.

The duplicate_handling module periodically checks if a sample queued in the 1st step of the NIPT workflow is a duplicate and should be deleted automatically:

  1. The sample has been included in a previous project and finished NIPT workflow and passed QC. The queued sample will be deleted.
  2. More than one instances (same sample in different projects) of the sample are queued in 1st step, the older one will be deleted.

There are duplicates that cannot be deleted and need to be handled differently:

  1. The sample finished NIPT workflow and passed QC, but got re-queued or re-added to the NIPT workflow. The queued sample can not be deleted since that actual work has been done on it. Instead, the sample should be removed from the NIPT workflow manually.
  2. The sample was included in a previous project and the NIPT workflow has started. But the sample did not complete the workflow or it completed the workflow but failed QC (this is typically a case of reanalysis). The "fcs_reports module handles such duplicates as follows:

    1. If the module is processing a new nipt report, rename containers of all other instances of the sample by appending a "_NIPT" to the container names.
    2. If the module is processing a new batch initiation report, reset the name of the container of current instance (remove the "_NIPT" suffix if any). The container name needs to be restored because the sample sheet must have the original container.

VeriSeq NIPT Solution v2

The VeriSeq NIPT analysis is done by the VeriSeq NIPT Solution v2 Assay Software running on the VOS. Once a sequencing run is finished, the data analysis starts. NIPT report(s) containing analysis results for each sample will be generated and put in the "output" share of VOS when the analysis finishes. Details of the software is in veriseq-nipt-solution-v2-software- guide.pdf.

SWL Integration

The SWL integration system contains two components:

  1. SWL Clarity Integration service. This service is supplied by Sykehuspartner and is developed by Nexus (the supplier of SWL). This is not in the scope of this procedure.
  2. In-house swl_integration module.

swl_integration module

The swl_integration module is run as a cron job on LIMS server. It monitors new nipt reports, interprets the report with predefined rules and generates an interpreted nipt report (.tsv file) in compatible format with the SWL Clarity Integration service. As a backup solution, the interpreted report is also available as a .csv file which can be opened in Excel.

Details of the predefined interpretation rules and the fomat of the report are described in:


The interpreted report is put in the "NIPT-Lab" share of the Windows server "Endpoint" and is accessible from the Hamilton robot's instrument control computer. This report is copied to OUS network with an ironkey to be imported into SWL by the SWL Clarity Integration service.

All in-house software modules are version controlled in the Gitlab repository.


Gitlab repository:


  • VeriSeq NIPT Integration v1.0 - User & Configuration Guide.pdf
  • veriseq-nipt-solution-v2-software-guide.pdf
  • whole_workflow_overview.pdf