nanoporetech / pod5-file-format

Pod5: a high performance file format for nanopore reads.
https://pod5-file-format.readthedocs.io/
Other
134 stars 18 forks source link

pod5 convert fast5 error, currently using python 3.10 and singularity 3.10.4 #144

Open hilo1 opened 1 month ago

hilo1 commented 1 month ago

Attempted to convert one fast5 file to test pod5 functionality on our current system

Used standard convertfast5 command and then used the POD5_DEBUG=1 additional to generate additional a log that I'm sharing here. I'm hoping it is something silly like I have an older version of python also loaded and that might be interfering.

Logs

Singularity> pod5 convert fast5 PAW59116_pass_2cfaf0b1_98202c91_9986.fast5 --output converted9986.pod5 An unexpected error occurred: getrandom
Converting 1 Fast5s: 0%| | 0/4000 [00:03<?, ?Reads/s] POD5 has encountered an error: 'getrandom'

For detailed information set POD5_DEBUG=1' Converting 1 Fast5s: 0%| | 0/4000 [00:03<?, ?Reads/s] Singularity> POD5_DEBUG=1 pod5 convert fast5 PAW59116_pass_2cfaf0b1_98202c91_9986.fast5 --output converted9986.pod5 An unexpected error occurred: getrandom
Converting 1 Fast5s: 0%| | 0/4000 [00:01<?, ?Reads/s]Traceback (most recent call last): File "/usr/local/bin/pod5", line 8, in sys.exit(main()) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/main.py", line 60, in main return run_tool(parser) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/parsers.py", line 41, in run_tool raise exc File "/usr/local/lib/python3.10/dist-packages/pod5/tools/parsers.py", line 38, in run_tool return tool_func(kwargs) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/parsers.py", line 137, in run return convert_from_fast5(kwargs) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 63, in wrapper raise exc File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 60, in wrapper ret = func(*args, kwargs) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/pod5_convert_from_fast5.py", line 826, in convert_from_fast5 raise exc File "/usr/local/lib/python3.10/dist-packages/pod5/tools/pod5_convert_from_fast5.py", line 810, in convert_from_fast5 process_conversion_tasks( File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 63, in wrapper raise exc File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 60, in wrapper ret = func(*args, *kwargs) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/pod5_convert_from_fast5.py", line 741, in process_conversion_tasks writer = output_handler.get_writer(path) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 63, in wrapper raise exc File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 60, in wrapper ret = func(args, kwargs) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/pod5_convert_from_fast5.py", line 241, in get_writer return self._open_writer(output_path=output_path) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 63, in wrapper raise exc File "/usr/local/lib/python3.10/dist-packages/pod5/tools/utils.py", line 60, in wrapper ret = func(*args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/pod5/tools/pod5_convert_from_fast5.py", line 227, in _open_writer writer = p5.Writer(output_path) File "/usr/local/lib/python3.10/dist-packages/pod5/writer.py", line 108, in init self._writer: Optional[p5b.FileWriter] = p5b.create_file( RuntimeError: getrandom Converting 1 Fast5s: 0%| | 0/4000 [00:01<?, ?Reads/s]

Specifications

HalfPhoton commented 1 month ago

The error: RuntimeError: getrandom Is from the GLIBC getrandom function (docs) which is available from in versions Linux 3.17, glibc 2.25.

Can you please check your linux kernel version uname -r?

Best regards, Rich

hilo1 commented 1 month ago

Thanks for your swift response Rich! I think I have to beg my systems administrator for an update

Here's the result: 3.10.0-514.2.2.el7.x86_64

Best, Noe

HalfPhoton commented 1 month ago

Hi Noe, no problem!

Yeah, it looks like this is the underlying issue. It might be possible to get a suitable glibc version within your singularity or docker container though. Although I'm not sure on the details on achieving this.

Best regards, Rich