Illumina / interop

C++ Library to parse Illumina InterOp files
http://illumina.github.io/interop/index.html
GNU General Public License v3.0
75 stars 26 forks source link

v1.1.27 and higher dumptext is not backwards compatible with error metrics < v6 #314

Closed channsoden closed 1 year ago

channsoden commented 1 year ago

I'm guessing a bit on the issue title, and this issue affects interop_dumptext.

v1.1.27 and higher only work for parsing runs from our NextSeq 2000, and attempting to parse runs from our other instruments results in a core dump. V1.1.25 and lower works for runs from our other instruments, but attempting to parse runs from the NextSeq 2000 gives the following error when starting to parse the error metrics:

No format found to parse ErrorMetricsOut.bin with version: 6 of 3
/opt/conda/conda-bld/illumina-interop_1659474011889/work/./interop/io/metric_stream.h::read_metrics (109)

I'm guessing that the update on the NextSeq 2000 to accommodate 600 cycle runs caused it to output v6 error metrics, support for which was then added in v1.1.27, but that caused an error when trying to parse the error metrics from machines that still output v3 error metrics.

ezralanglois commented 1 year ago

Yes, this is correct. Dumptext was not intended to be used to parse interop files and should not have been included in the public release. This was just used to debug issues such as file corruption.

Most people are happy to switch over the imaging_table, which provides a csv style output and is much easier to parse.

If you are using a metric not covered by imaging_table, then let me know.

Tetrajf commented 1 year ago

Hi @ezralanglois . We just started getting the exact same error since tech support installed the latest software yesterday for the Nextseq 2000. Unfortunately I'm trying to modify a python wrapper script that was written by someone else so I'm a bit lost for now as to what to modify in order to correct the issue. The wrapper does not use Dumptext but instead uses only the python scripts e.g. py_interop_run_metrics, py_interop_run, py_interop_summary. These are the only packages imported from interop. I guess I might be able to figure out how to modify the script but I guess the most obvious solution might be with versions of interop. We're currently using version 1.1.23. From the above it seems thats the latest version 1.1.27. Could upgrading potentially solve the issue? Will the aforementioned python scripts function similarly? Sorry I'm asking first without trying but we have interop installed on a cluster that I do have rights for so it will be somewhat of a pain to update.

ezralanglois commented 1 year ago

Yes, interop is kept backwards compatible. Upgrading is always safe and you get the latest features.