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.
$ git clone https://github.com/Illumina/interop.git
$ mkdir build
$ cd build
$ cmake ../interop
$ cmake --build .
g++ example1.cpp -l interop_lib -L <install_dir>/lib64 -I <install_dir>/include
For CLang, just substitute g++ with clang++.
There are several known limitations to the current library:
- 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#.
- Microsoft .Net less than v4.0.30319 is currently not supported (Same for Mono)
- MinGW cannot compile the code when ENABLE_BACKWARDS_COMPATIBILITY=ON
- We do not support Mono on Windows
- If both Visual Studio and Mono are installed, the build script will only use Visual Studio for C#
- We do not support 32-bit builds
- MinGW W64 4.9.x and prior will not link properly
- Visual Studio 12 2013 is not supported for the C# Bindings (Results in heap corruption)
- We support .NET Core 2.x or later
- Big endian systems are currently not supported
- We do not support compilers earlier than 4.8.x - too many compiler bugs
The following images were generated using the applications provided by the InterOp package.