There several HMM libraries with python bindings out there. The tesserae.py implementation could be replaced with an implementation that uses on of these libraries. This would greatly enhance maintainability and give us insight into how the current implementation performs compared to a highly optimized library implementation.
The second link focuses a lot on speed improvements using AVX instructions and threading and it includes a discussion on how this was done in their code base. I think it's worth a read in any case.
There several HMM libraries with python bindings out there. The
tesserae.py
implementation could be replaced with an implementation that uses on of these libraries. This would greatly enhance maintainability and give us insight into how the current implementation performs compared to a highly optimized library implementation.Here are two libraries to take a look at:
The second link focuses a lot on speed improvements using AVX instructions and threading and it includes a discussion on how this was done in their code base. I think it's worth a read in any case.