-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement multi-threaded FastQ compression for umi-transfer #11
Implement multi-threaded FastQ compression for umi-transfer #11
Conversation
370dc81
to
ce5bd10
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems to work for me and I think it looks good! Would be fun to do some benchmarking at some point as well.
16e9988
to
62128f0
Compare
… umi-transfer fails.
…afely the trait Send is not implemented for dyn ZWriter
…ing them to the output file.
56c8c84
to
b33ad60
Compare
…the rexpect crate.
b33ad60
to
1a0df50
Compare
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. Thanks for integrating Codecov - We've got you covered ☂️ |
umi-transfer 1.0.0 does its job, but the performance of the single-threaded tool is poor. I/O should be asynchronous to avoid blocking per-core threads, and this pull request implements such a functionality for the output files using the gzp crate. Inspiration how to incorporate it into the actual code was drawn from Crabz and Ouch, both MIT-licensed tools as well. Thread-pinning, albeit supported by
gzp
has not been enabled because of the additional complexity involved.In a later PR, the input file logic will be slightly improved as well - not with multi-threading, but switching from flate2 decompression to gzp as well, to not use two libraries for the same purpose.
PS: 😟 Seems I have to fix the CI first...that Action uses no longer existing steps... which is being done in #12