C++ Library to parse Illumina InterOp files

License: GPL-3.0

Language: C++

Keywords: cpp, csharp, illumina-sequencing, interop, python, python27, python3, python35, python36, swig

Quick Start

TravisCI_Status AppVeyor_status Coverity_status

The Illumina InterOp libraries are a set of common routines used for reading InterOp metric files produced by Illumina sequencers including NovaSeq. These libraries are backwards compatible and capable of supporting prior releases of the software, with one exception: GA systems have been excluded.

We now support an interface to Python 2.7 (UCS-4) and 3.4-3.6 (see contents below)

The InterOp files supported by this library include:

  • CorrectedIntMetricsOut.bin
  • ErrorMetricsOut.bin
  • ExtractionMetricsOut.bin
  • ExtendedTileMetricsOut.bin
  • ImageMetricsOut.bin
  • QMetricsOut.bin
  • TileMetricsOut.bin
  • IndexMetricsOut.bin
  • QMetrics2030Out.bin
  • QMetricsByLaneOut.bin
  • EmpiricalPhasingMetricsOut.bin

This library is written in C++98 and provides bindings for C# using the SWIG interface. This support includes examples and unit tests for both languages.


Content Description
Main Index page for the documentation
Install Describes how to install Illumina InterOp from binaries and the source code
Applications Describes applications that transform binary InterOp data into text
Examples How to examples showing how to use the Illumina InterOp C++ API
Modules Short descriptions of the most useful code in the Illumina InterOp API
Changes Changes between releases of the source code
Issues Have a question? Need a feature? Found a bug? Interact with the developers here.
Performance Computation performance of the code
Formats Description of the binary formats for each InterOp file
Python Step by step tutorial using the Python binding



Supported versions for binary distribution: Python 2.7 and 3.4-3.6.

You should have NumPy already installed.

$ pip install interop

Test the installation

$ python -m interop --test

If you see this error:

RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa

Then upgrade numpy and try again.

From Source

$ git clone
$ mkdir build
$ cd build
$ cmake ../interop
$ cmake --build .

Building with InterOp


g++ example1.cpp -l interop_lib -L <install_dir>/lib64 -I <install_dir>/include

For CLang, just substitute g++ with clang++.

Known Limitations

There are several known limitations to the current library:

  1. You cannot build a shared library on Windows. Our CMake build script disallows it for good reason, it currently does not work. You can still use a static library on Windows. There is one caveat, you can build a shared library for the SWIG bindings, e.g. C#.
  2. Microsoft .Net less than v4.0.30319 is currently not supported (Same for Mono)
  3. MinGW cannot compile the code when ENABLE_BACKWARDS_COMPATIBILITY=ON
  4. We do not support Mono on Windows
  5. If both Visual Studio and Mono are installed, the build script will only use Visual Studio for C#
  6. We do not support 32-bit builds
  7. MinGW W64 4.9.x and prior will not link properly
  8. Visual Studio 12 2013 is not supported for the C# Bindings (Results in heap corruption)
  9. We support .NET Core 2.x or later
  10. Big endian systems are currently not supported
  11. We do not support compilers earlier than 4.8.x - too many compiler bugs

SAV Analysis Tab

The following images were generated using the applications provided by the InterOp package.

Example Plots

Project Statistics

Sourcerank 8
Repository Size 4.82 MB
Stars 35
Forks 12
Watchers 18
Open issues 3
Dependencies 0
Contributors 2
Tags 52
Last updated
Last pushed

Top Contributors See all

Robert Langlois nudpa

Packages Referencing this Repo

The Illumina InterOp libraries are a set of common routines used for reading InterOp metric files...
Latest release 9.9.2 - Updated - 35 stars

Recent Tags See all

v1.1.8 December 05, 2018
v1.1.7 November 15, 2018
v1.1.6 October 04, 2018
v1.1.5 September 24, 2018
v1.1.4 February 16, 2018
v1.1.3 January 26, 2018
v0.9.2 January 23, 2018
v9.9.2 January 22, 2018
v1.1.2 December 19, 2017
v1.1.1.test.4 December 15, 2017
v1.1.1.test October 25, 2017
v1.1.1 October 25, 2017
v1.1.0 October 23, 2017
v1.0.25 May 22, 2017
v1.0.24 May 05, 2017

Something wrong with this page? Make a suggestion

Last synced: 2018-12-06 00:21:16 UTC

Login to resync this repository