Closed aaronmussig closed 2 weeks ago
Hi @aaronmussig,
Normally Pyrodigal should indeed be deterministic. Non-determinism is often caused when some parts of the program are reading undefined memory, often out of bounds.
This may be linked to https://github.com/hyattpd/Prodigal/pull/100 as I'm seeing the error is happening next to the edge on the reverse strand. I'll check if the fixed version still causes the issue.
Hi @althonos,
Re-ran this using v3.5.2 and both execution methods are returning the same result. Thanks for looking into it!
Good to hear, thanks!
Hello,
Firstly, thanks for your work with Pyrodigal! I wasn't able to determine if Pyrodigal should be deterministic, if it is then ignore this ticket.
I have an extremely rare case that took quite some time to identify, but Pyrodigal will occasionally give a different result when running via Shell vs. Python subprocess. The strange part is that the likelihood of Pyrodigal giving a different result is higher when running via a Python subprocess though.
To replicate the issue:
Dockerfile
Entering container
Running Pyrodigal
Results
Over 200 trials I get the following results:
The differences between the two hashes are:
i.e. the 597610 hash starts with Y instead of M.