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

Swath number exceeds number of swaths in RunInfo.xml #284

Closed koen-swaerts closed 2 years ago

koen-swaerts commented 2 years ago

I encountered a problem with the interop parsing of our latest VeriSeq run. I use Python3.9 and the Illumina interop parser version 1.1.23. When I try to load the interop files using:

# interop_dir is the parameter with the path to the directory of the run
from interop import py_interop_run_metrics
run_metrics = py_interop_run_metrics.run_metrics()
run_folder = run_metrics.read(interop_dir)

I get following error:

File "/demultiplexing/src/interop_parser.py", line 483, in parse_run run_folder = run_metrics.read(interop_dir) File "/root/.local/share/virtualenvs/demultiplexing-Z7NaUP8B/lib/python3.9/site-packages/interop/py_interop_run_metrics.py", line 391, in read return _py_interop_run_metrics.run_metrics_read(self, *args) interop.py_interop_run.invalid_run_info_exception: Swath number exceeds number of swaths in RunInfo.xml for record 0_16777259 in file IndexMetricsOut.bin - 7 > 3 /io/src/interop/model/run/info.cpp::validate (373)

It is the first time I encountered this kind of error (I already analysed over 200 runs with the same code without any problems). I already tried to downgrade to 1.1.21, but I got exactly the same error. Can you help me to fix this problem? The run was correctly processed by the VeriSeq server, and SAV did not give any problem.

ezralanglois commented 2 years ago

I have seen this happen before when the IndexMetricsOut.bin was corrupt. We put in this check specifically to to catch this scenario. So either try to re-copy from source or regenerate it.

koen-swaerts commented 2 years ago

I ran the script from the veriseq_input directory (directly from the VeriSeq server), and got the same error, so the re-copy from source option will not work. How can I regenerate it?

ezralanglois commented 2 years ago

Run the program that did the fastq conversion again.

koen-swaerts commented 2 years ago

I run the interop directly from the sequencers output folder as a QC before generating the fastqs. So bcl2fastq or bcl-convert did not run yet. Also, I never notised that these tools change the binaries.

koen-swaerts commented 2 years ago

It seems realy conterintuitive, but indeed if you do the demultiplexing before the runQC, the bin files are corrected.

@ezralanglois thanks for the help