Seems like you've got a strong plan, but make sure you can act on it.
I would suggest sticking to your course and optimizing from here, I think your design is slightly outside the norm and, for that reason, may yield faster runtimes if executed efficiently.
Keep in mind that you may also have to check for quality scores in the reads themselves if the user wanted to impose thresholds for both indexes and reads.
Try implementing, your bucketing and file reading systems, make sure they work as intended before designing main loop logic.
As a final suggestion, I would browse some other folks' code and figure out whether your output will be of same of higher quality. If so, then you'll be good to go.
Notes:
Do your high-level functions have example outputs?
Are your test inputs and outputs in the right location?
Seems like you've got a strong plan, but make sure you can act on it.
I would suggest sticking to your course and optimizing from here, I think your design is slightly outside the norm and, for that reason, may yield faster runtimes if executed efficiently. Keep in mind that you may also have to check for quality scores in the reads themselves if the user wanted to impose thresholds for both indexes and reads. Try implementing, your bucketing and file reading systems, make sure they work as intended before designing main loop logic.
As a final suggestion, I would browse some other folks' code and figure out whether your output will be of same of higher quality. If so, then you'll be good to go.
Notes: Do your high-level functions have example outputs? Are your test inputs and outputs in the right location?
These might be considerations for grading.