This PR implements the following changes:
(Please tick any or all of the following that are applicable)
[ ] :sparkles: New feature (A non-breaking change which adds functionality).
[X] :bug: Bug fix (A non-breaking change, which fixes an issue).
[ ] :boom: Breaking change (fix or feature that would cause existing functionality to change).
:clipboard: Additional detail
Fixes #13
The DBG building process currently may fail to incorporate some kmers
into a DBG if they exist in a perfect circle.
Perfect circles don't have "ends" and so the kmers involved in them don't
get incorporated into a DBG during construction at present
This commit implements a draft improvement that fixes this problem.
After constructing unitigs and consuming kmers in the usual way. If there
are any kmers left, they are left due to this circle problem, so it starts by picking
one of the kmers involved in a circle and just keeps going forward until that same
kmer is found again. The circle then is turned into a unitig - broken at an arbitrary point.
:ballot_box_with_check: Checklist
[ ] :art: The changes implemented is consistent with the julia style guide.
[ ] :blue_book: I have updated and added relevant docstrings, in a manner consistent with the documentation styleguide.
[ ] :blue_book: I have added or updated relevant user and developer manuals/documentation in docs/src/.
[ ] :ok: There are unit tests that cover the code changes I have made.
[ ] :ok: The unit tests cover my code changes AND they pass.
[ ] :pencil: I have added an entry to the [UNRELEASED] section of the manually curated CHANGELOG.md file for this repository.
[X] :ok: All changes should be compatible with the latest stable version of Julia.
[X] :thought_balloon: I have commented liberally for any complex pieces of internal code.
Types of changes
This PR implements the following changes: (Please tick any or all of the following that are applicable)
:clipboard: Additional detail
Fixes #13
The DBG building process currently may fail to incorporate some kmers into a DBG if they exist in a perfect circle. Perfect circles don't have "ends" and so the kmers involved in them don't get incorporated into a DBG during construction at present
This commit implements a draft improvement that fixes this problem. After constructing unitigs and consuming kmers in the usual way. If there are any kmers left, they are left due to this circle problem, so it starts by picking one of the kmers involved in a circle and just keeps going forward until that same kmer is found again. The circle then is turned into a unitig - broken at an arbitrary point.
:ballot_box_with_check: Checklist
docs/src/
.[UNRELEASED]
section of the manually curatedCHANGELOG.md
file for this repository.