jackh726 / bigtools

A high-performance BigWig and BigBed library in Rust
MIT License
70 stars 7 forks source link

Refactor bigtools internals and API for writing #45

Closed jackh726 closed 4 months ago

jackh726 commented 4 months ago

The adjustment here is the change to where iteration driven internally: rather than it being driven generically over the ChromData, implementors of ChromData drive the processing themselves. This makes the internal logic much more clear and simple. It also makes the external API more clean too.

It may be that there are future cleanups or changes that can be made here - one being allowing full external iteration (e.g. for pybigtools).

Performance-wise, this is essentially on-par or marginally faster than the existing implementation.

jackh726 commented 4 months ago

Going to go ahead and merge this. Aside from the couple bug fixes, there should be no semantic differences or additions here (unlike the pybigtools refactor).