Deprecating SSW in scikit-bio: recommendation for alignment algorithms in Python
Hello everyone,
We're planning on removing the SSW module from scikit-bio. This will occur sometime before the next release (which should be sometime in October).
It has been a general source of maintenance issues and limits our ability to target Windows platforms. While there have been some very lovely contributions such as #1709 and #1797 (from @mr-c and @theAeon respectively), we think the best approach is to remove this module.
Instead, we recommend using @jeffdaily's library Parasail and corresponding Python bindings: jeffdaily/parasail-python.
The documentation for this package is quite complete, and supports a similar usage pattern as our SSW bindings: https://github.com/jeffdaily/parasail-python#ssw-library-emulation
The only difficulty you may encounter from this transition is converting the cigar strings (from the "traceable" algorithms, into scikit-bio alignment objects). We would be happy to accept pull requests to this end, but we don't have anything in particular planned.
If you find @jeffdaily's Parasail useful, please remember to cite it :)
And here is a worked example comparing skbio's SSW with Parasail: https://gist.github.com/ebolyen/f759644a67d97a808f0ddb0933bcb4a0
Would this skbio-ified parasail package (that I shamelessly copied and packaged from @jvkersch) be of any use?
That is super lovely @theAeon! Thanks for sharing!
I will mention we are looking for maintainers for this project, so if anyone feels particularly strongly about alignment and how that should work in skbio (or other parts of scikit-bio), feel free to get in touch!
Wow, I'm flattered you all still find parasail useful! I wrote parasail as part of my dissertation and always hoped it would help the community. Unfortunately, in my current role I barely have time to maintain what is there. Perhaps someone from this community could help? I don't know how such transitions work; this was my first solo open source project.
pywfa was pointed out in #254 as another performant Python-accessible aligner.
We've decided to delay this removal, most likely for one more release. We identified two tools that are using local_pairwise_align_ssw: IAB and q2-feature-classifier. We suspect therefore that there may be others, so we're going to save this for 0.6.0.
Also makes sense from a semver perspective for sure.
Has anyone here been able to install parasail via pip on an M1/M2/M3 MacBook? If so, could you mention which version of parasail, Python, and macOS you're using?
@wasimsandhu There is some discussion about this on the Parasail GitHub page, see e.g. https://github.com/jeffdaily/parasail-python/issues/72.