YosefLab / Cassiopeia

A Package for Cas9-Enabled Single Cell Lineage Tracing Tree Reconstruction
https://cassiopeia-lineage.readthedocs.io/en/latest/
MIT License
75 stars 24 forks source link

Refactor `solver` module #214

Open mattjones315 opened 1 year ago

mattjones315 commented 1 year ago

Per a recent conversation in issue #205, we've determined that our recent software development efforts have outstripped the implementation of the DistanceSolver class. Namely, it's become apparent that the inheritance structure is limiting our ability to cleanly implement new distance-based algorithms and perhaps makes things unneccessarily complex. A move to composition-based software has been proposed.

The purpose of this issue is to discuss & plan a refactor of the DistanceSolver class and perhaps the entire solver module. In doing so, it would be ideal to maintain the current API as much as possible as to not break any existing code already relying on the solver module.