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

“NaN” for each of py_interop_run_metrics.run_metrics().tile_metric_set.at(*).percent_pf() #276

Closed drberg1000 closed 2 years ago

drberg1000 commented 2 years ago

Can you tell me which files are used to generate the value returned by the py_interop_run_metrics.run_metrics().tile_metric_set(*).percent_pf() function?

[m106093@dlmpcim02 ~]$ python Python 3.6.3 (default, Feb 14 2020, 10:00:47) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux Type "help", "copyright", "credits" or "license" for more information.

from interop import py_interop_run_metrics, py_interop_run run_metrics = py_interop_run_metrics.run_metrics() valid_to_load = py_interop_run.uchar_vector(py_interop_run.MetricCount, 0) py_interop_run_metrics.list_analysis_metrics_to_load(valid_to_load) run_metrics.read('/dlmp/labdata/illumina/210913_M01081_0050_000000000-JV8L2', valid_to_load) tile_metric_set = run_metrics.tile_metric_set() tile_metric_set.size() 38 i = 0 tile_metric = tile_metric_set.at(i) tile_metric.percent_pf() # **** This is the command that is failing ** nan float('nan') + 3 # Showing that when we sum percent_pf() from multiple tiles we keep ‘nan’ as the result nan size = tile_metric_set.size() for i in range(size): ... tile_metric = tile_metric_set.at(i) ... tile_metric.percent_pf() ... nan nan nan nan

ezralanglois commented 2 years ago

You can get the prefix like so

>>> py_interop_run_metrics.run_metrics().tile_metric_set().prefix()
Tile

We always name the file *MetricsOut.bin

So the file is:

TileMetricsOut.bin

drberg1000 commented 2 years ago

Thanks. Since this is a binary file I can't do much to see where there might have been a problem. It does look like this file is only 1/5th the size of the norm. Any ideas what might cause the file to be undersized?

ezralanglois commented 2 years ago

If you have a partial file, then the InterOp library will throw an incomplete_file_exception

If you are not getting that exception, then you likely have the entire file.

Reasons the file can change size (other than incomplete):

  1. Number of tiles is different between runs you are comparing
  2. Number of reads is different between runs you are comparing

You can compare the RunInfo.xml between the runs and see if either of those is different.

drberg1000 commented 2 years ago

No incomplete_file_exceptions are being thrown.

There's some other variable in the mix for file size. I'm looking at runs with identical cycle and tile counts. Yet I have file sizes of 1902 (problem file), 8742, 9502, and others.

ezralanglois commented 2 years ago

Do they have the same read structure? E.g. R1 I1 I2 R2?

ezralanglois commented 2 years ago

No response since Oct