├── docs
├── images
│ ├── example_plots.png
│ ├── ILLUMINA_LOGO_RGB_new.png
│ ├── MiSeqDemo_q-heat-map.png
│ ├── MiSeqDemo_q-histogram.png
│ ├── ILLUMINA_LOGO_RGB_new_200_45.png
│ ├── MiSeqDemo_flowcell-Intensity.png
│ ├── MiSeqDemo_ClusterCount-by-lane.png
│ └── MiSeqDemo_Intensity-by-cycle_Intensity.png
├── theme
│ ├── bootstrap3
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ ├── js
│ │ │ └── npm.js
│ │ └── css
│ │ │ └── sticky-footer-navbar.css
│ └── footer.html
├── src
│ ├── example4.md
│ ├── example3.md
│ ├── example2.md
│ ├── example1.md
│ ├── calculated_metrics.md
│ ├── j_example.md
│ ├── example_summary.md
│ ├── example_imaging.md
│ ├── apps.md
│ ├── performance.md
│ └── binary_formats.md
└── CMakeLists.txt
├── cmake
├── ConfigureFile.cmake
├── Modules
│ ├── csharp
│ │ ├── packages.config.in
│ │ ├── FindDotNetStandard.cmake
│ │ ├── dotnetStandard.csproj.in
│ │ ├── FindDotNet.cmake
│ │ ├── msbuild.csproj.in
│ │ └── FindMono.cmake
│ ├── CheckStdInt.cmake
│ ├── CheckIsNaN.cmake
│ ├── UseGMock.cmake
│ ├── UseGTest.cmake
│ └── UseGitVersion.cmake
├── CheckSWIGVersion.cmake
├── CopyListOfFiles.cmake
├── version.rc.in
└── DependencyManager.cmake
├── .gitattributes
├── tools
├── teamcity
│ └── pull_request
│ │ ├── msvc_2015_py27_dotnet.bat
│ │ ├── msvc_2017_py27_dotnet.bat
│ │ ├── msvc_2019_py27_dotnet.bat
│ │ ├── msvc_2017_py34_dotnet.bat
│ │ ├── msvc_2017_py35_dotnet.bat
│ │ ├── msvc_2017_py36_dotnet.bat
│ │ ├── msvc_2017_py37_dotnet.bat
│ │ ├── msvc_2017_py38_dotnet.bat
│ │ ├── msvc_2017_py27_dotnetstandard.bat
│ │ ├── centos7_gcc-485-debug.sh
│ │ ├── centos7_gcc-485-ppc.sh
│ │ └── msvc.bat
├── hooks
│ ├── pre-push.sh
│ └── pre-commit.sh
├── package_docker.bat
├── docker
│ ├── DockerFile_Centos6
│ ├── DockerFile_Centos7
│ └── DockerFile_Centos5
├── build_docs.sh
├── prereqs
│ ├── travis-osx-install.sh
│ ├── travis-linux-install.sh
│ └── utility.sh
├── package_docker.sh
├── patches
│ └── mono_patch.txt
└── build_cov_test.sh
├── src
├── ext
│ ├── swig
│ │ ├── arrays
│ │ │ ├── arrays_impl.i
│ │ │ └── arrays_numpy_impl.i
│ │ └── exceptions
│ │ │ └── exceptions_impl.i
│ ├── csharp
│ │ ├── package.targets
│ │ ├── AssemblyInfo.cs.in
│ │ └── package.nuspec.in
│ └── python
│ │ ├── __init__.py.in
│ │ ├── __main__.py.in
│ │ └── setup.py.in
├── CMakeLists.txt
├── tests
│ ├── csharp
│ │ ├── TestSuite.cs
│ │ ├── logic
│ │ │ ├── DependencyTest.cs
│ │ │ ├── PlotQScoreHistogram.cs
│ │ │ ├── PlotQScoreHeatmap.cs
│ │ │ ├── PlotFlowcellMap.cs
│ │ │ └── PlotDataByLaneTest.cs
│ │ └── metrics
│ │ │ ├── RunMetricsTest.cs
│ │ │ └── ExtendedTileMetricsTest.cs
│ ├── interop
│ │ ├── io
│ │ │ └── csv_format.cpp
│ │ ├── logic
│ │ │ └── metric_type_ext_test.cpp
│ │ ├── metrics
│ │ │ └── inc
│ │ │ │ ├── summary_run_metrics_test.h
│ │ │ │ └── metric_format_fixtures.h
│ │ ├── unit_tests.cpp
│ │ └── util
│ │ │ └── option_parser_test.cpp
│ ├── python
│ │ ├── DepTests.py
│ │ └── CMakeLists.txt
│ └── CMakeLists.txt
├── examples
│ ├── csharp
│ │ ├── SummaryExample.cs
│ │ ├── Example1.cs
│ │ ├── Example3.cs
│ │ ├── CMakeLists.txt
│ │ ├── Example2.cs
│ │ └── ImagingExample.cs
│ ├── CMakeLists.txt
│ ├── example1.cpp
│ ├── example_populate_qmetricset.cpp
│ ├── example_q_metric.cpp
│ └── example3.cpp
├── interop
│ └── logic
│ │ ├── metric
│ │ ├── extraction_metric.cpp
│ │ └── extended_tile_metric.cpp
│ │ └── plot
│ │ └── plot_metric_list.cpp
└── apps
│ └── CMakeLists.txt
├── interop
├── config.h.in
├── util
│ ├── exception_specification.h
│ ├── timer.h
│ ├── base_exception.h
│ ├── self_registration.h
│ ├── static_assert.h
│ ├── map.h
│ ├── assert.h
│ ├── length_of.h
│ ├── exception.h
│ ├── math.h
│ ├── cstdint.h
│ ├── filesystem.h
│ └── unique_ptr.h
├── logic
│ ├── metric
│ │ ├── index_metric.h
│ │ ├── extended_tile_metric.h
│ │ ├── extraction_metric.h
│ │ └── dynamic_phasing_metric.h
│ ├── plot
│ │ ├── plot_sample_qc.h
│ │ ├── plot_metric_list.h
│ │ ├── plot_qscore_histogram.h
│ │ ├── plot_qscore_heatmap.h
│ │ └── plot_point.h
│ ├── logic.h
│ ├── summary
│ │ ├── run_summary.h
│ │ └── index_summary.h
│ └── table
│ │ ├── create_imaging_table_columns.h
│ │ ├── create_imaging_table.h
│ │ └── table_util.h
├── interop.h
├── model
│ ├── table
│ │ └── table_exceptions.h
│ ├── plot
│ │ └── plot_exceptions.h
│ ├── metric_base
│ │ ├── metric_exceptions.h
│ │ └── point2d.h
│ ├── run
│ │ ├── image_dimensions.h
│ │ └── run_exceptions.h
│ ├── summary
│ │ ├── metric_average.h
│ │ └── surface_summary.h
│ └── model_exceptions.h
├── constants
│ ├── typedefs.h
│ └── enum_description.h
└── io
│ └── format
│ ├── generic_layout.h
│ ├── stream_membuf.h
│ ├── abstract_text_format.h
│ └── default_layout.h
└── .github
└── workflows
└── docs.yaml
/docs/images/example_plots.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/example_plots.png
--------------------------------------------------------------------------------
/docs/images/ILLUMINA_LOGO_RGB_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/ILLUMINA_LOGO_RGB_new.png
--------------------------------------------------------------------------------
/docs/images/MiSeqDemo_q-heat-map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/MiSeqDemo_q-heat-map.png
--------------------------------------------------------------------------------
/docs/images/MiSeqDemo_q-histogram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/MiSeqDemo_q-histogram.png
--------------------------------------------------------------------------------
/docs/images/ILLUMINA_LOGO_RGB_new_200_45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/ILLUMINA_LOGO_RGB_new_200_45.png
--------------------------------------------------------------------------------
/docs/images/MiSeqDemo_flowcell-Intensity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/MiSeqDemo_flowcell-Intensity.png
--------------------------------------------------------------------------------
/docs/images/MiSeqDemo_ClusterCount-by-lane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/MiSeqDemo_ClusterCount-by-lane.png
--------------------------------------------------------------------------------
/cmake/ConfigureFile.cmake:
--------------------------------------------------------------------------------
1 | #
2 | # Configure a file as a build step
3 | #
4 |
5 |
6 | configure_file(${CONFIG_INPUT_FILE} ${CONFIG_OUTPUT_FILE} @ONLY)
7 |
--------------------------------------------------------------------------------
/cmake/Modules/csharp/packages.config.in:
--------------------------------------------------------------------------------
1 |
2 |
3 | @CSHARP_PACKAGE_REFERENCES@
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # InterOp Git Normalization
2 |
3 | # Ensure Bash Scripts are runnable on Windows
4 | *.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof
--------------------------------------------------------------------------------
/docs/images/MiSeqDemo_Intensity-by-cycle_Intensity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/images/MiSeqDemo_Intensity-by-cycle_Intensity.png
--------------------------------------------------------------------------------
/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Illumina/interop/HEAD/docs/theme/bootstrap3/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2015_py27_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 14 2015" DotNet 2.7
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2017_py27_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 15 2017" DotNet 2.7
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2019_py27_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 16 2019" DotNet 3.8
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2017_py34_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 15 2017" DotNet 3.4 package_wheel
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2017_py35_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 15 2017" DotNet 3.5 package_wheel
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2017_py36_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 15 2017" DotNet 3.6 package_wheel
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2017_py37_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 15 2017" DotNet 3.7 package_wheel
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2017_py38_dotnet.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 15 2017" DotNet 3.8 package_wheel
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/msvc_2017_py27_dotnetstandard.bat:
--------------------------------------------------------------------------------
1 | set build_number=%1%
2 | call tools\teamcity\pull_request\msvc.bat %build_number% "Visual Studio 15 2017" DotNetStandard 2.7
3 |
--------------------------------------------------------------------------------
/tools/teamcity/pull_request/centos7_gcc-485-debug.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | build_number=$1
4 | sh ./tools/package_docker.sh docker-bioinformatics.dockerhub.illumina.com/interop_centos7 "${build_number}" "-DENABLE_VERACODE=ON" Debug
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/ext/swig/arrays/arrays_impl.i:
--------------------------------------------------------------------------------
1 |
2 | #if defined(SWIGCSHARP)
3 | %include "arrays_csharp_impl.i"
4 | #elif defined(SWIGJAVA)
5 | %include "arrays_java_impl.i"
6 | #elif defined(SWIGPYTHON)
7 | %include "arrays_numpy_impl.i"
8 | #endif
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | add_subdirectory("interop")
3 |
4 | if(ENABLE_SWIG)
5 | add_subdirectory("ext")
6 | endif()
7 |
8 | add_subdirectory("apps")
9 | add_subdirectory("examples")
10 |
11 | if(ENABLE_TEST)
12 | add_subdirectory("tests")
13 | endif()
14 |
--------------------------------------------------------------------------------
/tools/hooks/pre-push.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 |
4 | version=`git describe --tags --dirty=-src | cut - -f1`
5 |
6 | grep -q $version CMakeLists.txt
7 | ret=$?
8 | if [ "$?" -eq "1" ] ; then
9 | echo "Incorrect archive version, update to $version"
10 | exit 1
11 | fi
12 |
13 |
--------------------------------------------------------------------------------
/docs/src/example4.md:
--------------------------------------------------------------------------------
1 | Reporting simple statistics {#simple_stats}
2 | ============================
3 |
4 | Now, let us consider how to summarize the data using simple statistics.
5 |
6 | C++
7 | ---
8 |
9 | @snippet src/examples/example4.cpp Calculating simple statistics
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/ext/csharp/package.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | %(FileName)%(Extension)
6 | PreserveNewest
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/interop/config.h.in:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifndef HAVE_STDINT_H
3 | #cmakedefine HAVE_STDINT_H
4 | #endif
5 | #ifndef HAVE_SYS_TYPES_H
6 | #cmakedefine HAVE_SYS_TYPES_H
7 | #endif
8 | #cmakedefine HAVE_UNORDERED_MAP_IN_STD
9 | #cmakedefine HAVE_NO_STD_ISNAN
10 | #ifndef HAVE_ISNAN
11 | #cmakedefine HAVE_ISNAN
12 | #endif
13 | #cmakedefine HAVE___ISNAN
14 | #cmakedefine HAVE_FLOAT_H_ISNAN
15 | #cmakedefine HAVE_UNIQUE_PTR
16 |
--------------------------------------------------------------------------------
/src/ext/csharp/AssemblyInfo.cs.in:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 |
3 | [assembly: AssemblyTitle("Illumina.InterOp with @CMAKE_CXX_COMPILER_ID@ @CMAKE_CXX_COMPILER_VERSION@")]
4 | [assembly: AssemblyCompany("Illumina")]
5 | [assembly: AssemblyProduct("Illumina.InterOp - @VERSION@ ")]
6 | [assembly: AssemblyCopyright("Copyright © Illumina 2015")]
7 | [assembly: AssemblyVersion("@VERSION_SHORT@")]
8 | [assembly: AssemblyFileVersion("@VERSION_SHORT@")]
9 |
10 |
--------------------------------------------------------------------------------
/tools/package_docker.bat:
--------------------------------------------------------------------------------
1 | rem Build InterOp in Docker
2 |
3 |
4 |
5 | set image=ezralanglois/interop
6 | set dist_dir=dist
7 |
8 | if exist %dist_dir% rd /s /q %dist_dir%
9 | mkdir %dist_dir%
10 |
11 | docker pull %image%
12 | if %errorlevel% neq 0 exit /b %errorlevel%
13 | docker run --rm -v %cd%:/src:ro -v %cd%/dist:/dist:rw %image% sh /src/tools/package.sh /src /dist teamcity OFF Release
14 | if %errorlevel% neq 0 exit /b %errorlevel%
15 |
16 |
--------------------------------------------------------------------------------
/interop/util/exception_specification.h:
--------------------------------------------------------------------------------
1 | /** Exception utilities
2 | *
3 | * The header provides a macro to throw more informative exceptions
4 | *
5 | * @file
6 | * @date 6/25/18
7 | * @version 1.0
8 | * @copyright GNU Public License.
9 | */
10 | #pragma once
11 |
12 | #if (!defined(__cplusplus) || __cplusplus < 201700L) && 0
13 | #define INTEROP_THROW_SPEC(SPEC) throw SPEC
14 | #else
15 | #define INTEROP_THROW_SPEC(SPEC)
16 | #endif
17 |
18 |
--------------------------------------------------------------------------------
/docs/src/example3.md:
--------------------------------------------------------------------------------
1 | Reporting Extraction Metrics {#extraction_report}
2 | ============================
3 |
4 | Now, let us consider how to summarize the data into useful reporting metrics. This example continues with extraction
5 | metrics.
6 |
7 | C#
8 | --
9 |
10 | @snippet src/examples/csharp/Example3.cs Reporting Extraction Metrics in CSharp
11 |
12 | C++
13 | ---
14 |
15 | @snippet src/examples/example3.cpp Reporting Extraction Metrics
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/tests/csharp/TestSuite.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using NUnit.Framework;
3 | using NUnitLite;
4 | using System.Reflection;
5 |
6 | namespace Illumina.InterOp.Interop.UnitTest
7 | {
8 | ///
9 | /// Test C# Swig Wrapping
10 | ///
11 | public class Program
12 | {
13 | public static int Main(string[] args)
14 | {
15 | return new AutoRun(Assembly.GetCallingAssembly()).Execute(args);
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/tools/docker/DockerFile_Centos6:
--------------------------------------------------------------------------------
1 | # sudo docker build --rm -t docker-bioinformatics.dockerhub.illumina.com/interop_centos6 -f ./tools/docker/DockerFile_Centos6 tools
2 |
3 | FROM quay.io/pypa/manylinux2010_x86_64
4 |
5 | ENV JAVA_HOME /usr/java/jdk1.8.0_131
6 | ENV JUNIT_HOME /opt/junit
7 | ENV NUNIT_DIR /opt/nunit/NUnit-2.6.4
8 |
9 | COPY prereqs/docker-centos6-install.sh /docker-centos6-install.sh
10 | RUN bash docker-centos6-install.sh && rm -fr docker-centos6-install.sh
11 |
12 |
--------------------------------------------------------------------------------
/tools/docker/DockerFile_Centos7:
--------------------------------------------------------------------------------
1 | # docker build --rm -t ezralanglois/interop_centos7 -f ./tools/docker/DockerFile_Centos7 tools
2 |
3 | FROM docker-bioinformatics.dockerhub.illumina.com/manylinux2014_x86_64
4 |
5 | ENV JAVA_HOME /usr/java/jdk1.8.0_131
6 | ENV JUNIT_HOME /opt/junit
7 | ENV NUNIT_DIR /opt/nunit/NUnit-2.6.4
8 | ENV PATH="/opt/dotnet:${PATH}"
9 |
10 | COPY prereqs/docker-centos7-install.sh /docker-centos7-install.sh
11 | RUN bash docker-centos7-install.sh && rm -fr docker-centos7-install.sh
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/src/example2.md:
--------------------------------------------------------------------------------
1 | Reporting Tile Metrics {#tile_report}
2 | ======================
3 |
4 | Now, let us consider how to summarize the data into useful reporting metrics. This example continues with tile
5 | metrics, which can be used to report cluster PF on a per lane basis (similar to SAV, except we do not consider
6 | reads in this example).
7 |
8 | C#
9 | --
10 |
11 | @snippet src/examples/csharp/Example2.cs Reporting Tile Metrics in CSharp
12 |
13 | C++
14 | ---
15 |
16 | @snippet src/examples/example2.cpp Reporting Tile Metrics
17 |
18 |
--------------------------------------------------------------------------------
/src/ext/python/__init__.py.in:
--------------------------------------------------------------------------------
1 | __project__ = "Illumina InterOp"
2 | __license__ = "GPL"
3 | __copyright__ = "Copyright (C) 2015-2017, Illumina, inc."
4 | __description__ = "Set of common routines used for reading and writing Illumina InterOp metric files"
5 | __url__ = "https://github.com/Illumina/interop"
6 | __doc_url__ = "http://illumina.github.io/interop/index.html"
7 | __version__ = "@INTEROP_VERSION@"
8 | __maintainer__ = "Illumina, inc."
9 | __contact__ = "https://github.com/Illumina/interop/issues"
10 |
11 | from interop.core import *
12 |
13 |
--------------------------------------------------------------------------------
/docs/theme/bootstrap3/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/docs/theme/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |