YosefLab / Cassiopeia

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

FitchCount #125

Closed mattjones315 closed 3 years ago

mattjones315 commented 3 years ago

This PR implements FitchCount, previously described in Quinn et al, Science 2021. This is implemented as a function in cassiopeia/tools/small_parsimony.py, but per a conversation with @sprillo, we are entertaining the idea of eventually moving this over to a separate library with an emphasis on rate-matrix estimation.

As I implemented FitchCount, I also implemented functionality for performing a breadth-first-search on the tree, as well as subsetting the tree to get the subtree below a given node.

sprillo commented 3 years ago

(@mattjones315 just added a couple comments / questions, not really a review!)

codecov[bot] commented 3 years ago

Codecov Report

Merging #125 (9dd8fde) into master (9ff60ed) will decrease coverage by 0.00%. The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #125      +/-   ##
==========================================
- Coverage   85.31%   85.31%   -0.01%     
==========================================
  Files          65       65              
  Lines        4434     4527      +93     
==========================================
+ Hits         3783     3862      +79     
- Misses        651      665      +14     
Impacted Files Coverage Δ
cassiopeia/data/CassiopeiaTree.py 92.22% <100.00%> (+0.84%) :arrow_up:
cassiopeia/mixins/errors.py 100.00% <100.00%> (ø)
cassiopeia/tools/__init__.py 100.00% <100.00%> (ø)
cassiopeia/tools/small_parsimony.py 98.51% <100.00%> (-1.49%) :arrow_down:
cassiopeia/solver/HybridSolver.py 73.94% <0.00%> (-11.77%) :arrow_down:
cassiopeia/solver/MaxCutGreedySolver.py 93.47% <0.00%> (-4.35%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 9ff60ed...9dd8fde. Read the comment docs.

mattjones315 commented 3 years ago

Thanks for the help @sprillo & @Lioscro! I believe I've addressed all of your collective comments. @Lioscro -- would you mind taking another look when you have a chance and letting me know if the codebase looks good for merging in or if there's anything else you'd like me to change? Thanks in advance!