Skip to content

Comments

Fix for circular references#113

Merged
lcoombe merged 3 commits intomasterfrom
circular
Aug 19, 2024
Merged

Fix for circular references#113
lcoombe merged 3 commits intomasterfrom
circular

Conversation

@lcoombe
Copy link
Member

@lcoombe lcoombe commented Aug 19, 2024

  • I found that in some cases, using a circular reference can lead to no scaffolds being scaffolded
  • With some investigation, it was due to the checking for start/end nodes in the linear graph search step
    • We relied on looking for nodes with a degree of 1 at either end of the linear segment, but it is possible for a perfect circular path to be a valid graph segment, meaning that all nodes would have a degree of 2
  • With this fix, identify these edge cases, and break the graph at the minimizer node with the smallest position in the reference
    • This allows scaffolding to take place properly

* If all of the graph nodes have a degree of 2, no source/target nodes will be found, and currently no scaffolds will be assigned
* If this is detected, choose a minimizer node (smallest position in highest weight assembly), and make this the 'source' node
* Break the graph at incident edge, and continue the path determination
@lcoombe lcoombe merged commit cb61d15 into master Aug 19, 2024
@lcoombe lcoombe deleted the circular branch August 19, 2024 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant