Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for circular references #113

Merged
merged 3 commits into from
Aug 19, 2024
Merged

Fix for circular references #113

merged 3 commits into from
Aug 19, 2024

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
3 checks passed
@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