Skip to content

Illumina/interop

Repository files navigation

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 NextSeq 1k/2k and NovaSeqX. 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 3.8-3.12 Note that 3.10-3.12 are CentOS 7 or later while earlier versions support Centos 5 or later Note: dumptext has been deprecated in favor of imaging_table and will be removed in the next version


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.

Documentation

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

Install

Python

Supported versions for binary distribution: 3.5-3.10.

** Python 2.7 support has been removed **

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 https://github.com/Illumina/interop.git
$ mkdir build
$ cd build
$ cmake ../interop
$ cmake --build .

Building with InterOp

GCC/Clang

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