-
Notifications
You must be signed in to change notification settings - Fork 214
Hublabel #4870
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
Open
electricEpilith
wants to merge
75
commits into
master
Choose a base branch
from
hublabel
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Hublabel #4870
Changes from 74 commits
Commits
Show all changes
75 commits
Select commit
Hold shift + click to select a range
37848a6
some progress on hub label integration?
electricEpilith 297a11f
hub labeling in (debugging not finished), also changes to deal with C…
electricEpilith 9d4c2e2
Point at compatible libbdsg and get build working on Mac
adamnovak 8c13cf3
Use the new indexing types and accessors to avoid fetching nodes by t…
adamnovak 788224d
Use accessors so we can build the Tiny oversized snarl test index and…
adamnovak 4985468
Try dumping hub label data for debugging
adamnovak 86e4e31
Add synthetic Boost graph dumping code, and missing semicolon, and li…
adamnovak ee5bd54
Merge remote-tracking branch 'origin/master' into hublabel
adamnovak e84e657
Use libbdsg with slightly more implemented hub labeling integration
adamnovak 4f31496
Make sure NodeProp fields are not used before initialization
adamnovak 232a589
Stop trying to look up removed trivial snarls
adamnovak 30e392a
Add the debugging to subgraph finding that I needed to fix ChainRecor…
adamnovak 9639b68
Stop trying to interpret the root as a chain in debug prints
adamnovak c0db406
Turn off debugging after passing existing snarl distance index tests
adamnovak ce1027f
Merge remote-tracking branch 'origin/master' into hublabel
adamnovak 77c2ec2
Merge remote-tracking branch 'origin/hublabel' into hublabel
adamnovak 163764f
Make randomized graph test actually exercise oversized snarls sometimes
adamnovak ddce5f4
Add function for loading a handlegraph from JSON
adamnovak e56353f
Allow cactus-ifying all handle graphs
adamnovak 4f66c25
Add synthetic fix for actually populating the unique_ptr right
adamnovak 5436d73
Commit partial synthetic refactor to use new JSON load method
adamnovak 2c3721d
Revert "Commit partial synthetic refactor to use new JSON load method"
adamnovak 695cff5
Replace string_to_graph with json2graph
adamnovak 8ede8df
Remove a bunch of mostly unused functions for working with Protobuf G…
adamnovak e472799
Mostly-automatically convert tests to use vg::io::json2graph
adamnovak 904f445
Remove duplicative JSON to graph function
adamnovak 809a766
Set up tiny test that breaks oversized snarl logic
adamnovak f2d4f08
Remove unused cases
adamnovak caaa512
Fill in the dustances through oversized snarls to pass more distance …
adamnovak f15a5f9
Add exhaustive test for small snarls
adamnovak a0c71e6
Add a test for one of the failing possible small oversized snarls spe…
adamnovak 8c048e2
Pin down one small graph
adamnovak e036967
Add more test cases from sequential and random graphs and make them pass
adamnovak 8860e3a
Turn off debugging after passing random graph test
adamnovak eeaa175
Add initial synthetic code for SnarlDecompositionFuzzer and randomly_…
adamnovak c2f3279
Synthesize code that puts child chains the right way around
adamnovak c3cd3b7
Synthesize much simpler code that I designed myself because stochasti…
adamnovak c75e7ed
Synthesize slightly more encapsulated code
adamnovak a9ba894
Simplify the cursor loop and the flipping determination
adamnovak 836e7ee
Hook up orientation fuzzers to random graph tests and fail to find mo…
adamnovak 22ff0c4
Dump mostly-synthetic hot tips for cool robots
adamnovak e92a036
Implement populating is_regular and the single strict notion of regul…
adamnovak e4e1dae
Add debugging and reduce Saturn levels by not consuming all_children
adamnovak 934e53e
Turn off debugging and don't count bounds as children for regularity
adamnovak 21d2bb6
Set looping "distances" in distanceless index so we can tell snarls a…
adamnovak a203cb6
Use libbdsg that tries not to make way too many MPHF threads
adamnovak 07d0472
Add another test to make sure we aren't missing reversals hiding in t…
adamnovak 9aa832a
don't build tests for sparsehash due to C++20 incompatibility
electricEpilith 85b2f44
don't build tests for sparsehash due to C++20 incompatibility
electricEpilith 180dbf0
Parallelize cache_payloads and re-preload distance index before it
electricEpilith b8d310d
Atomic-ize progress and remove uninformative comment text
adamnovak 0281b81
Replace snarl tree depth limit with fixed point check
adamnovak 4422b08
Preload distance index only once
adamnovak aa2d827
Remove extra argument
adamnovak 96b57ee
Use libbdsg that should define child snarl count function
adamnovak 3c27df0
Regular-ify simple snarls
adamnovak 9b48cfe
Merge pull request #4860 from vgteam/parallel-payload-caching
adamnovak 957ebeb
Merge pull request #4857 from vgteam/hublabel-debug
adamnovak e6343e0
merge newer commits into hublabel
electricEpilith 644b900
move libbdsg up
electricEpilith 44321a3
added back (more) preloading to speed minimizer back up
electricEpilith 0c5c0d9
update oldest-supported-compiler-job, upgrade gcc requirement to 10 t…
electricEpilith 992c1cc
edit correct place for GCC version notice
electricEpilith 7569cc1
move up libbdsg to upgrade snarl distance index version number
electricEpilith b81e331
add (a substantial amount of) instrumentation for vg giraffe
electricEpilith 528ec4e
fix abs() errors on Mac
electricEpilith a3760d1
additional abs() fix
electricEpilith 7920c76
minor print changes
electricEpilith 190469a
Revert "minor print changes"
electricEpilith 3e573bd
Revert "add (a substantial amount of) instrumentation for vg giraffe"
electricEpilith 6cf266c
second try at instrumentation
electricEpilith e5513aa
Revert "second try at instrumentation"
electricEpilith bea2589
Merge pull request #4868 from electricEpilith/hublabel
electricEpilith e9c3d40
snarl distance index version number update
electricEpilith e286bf5
Fix typo in src/snarl_distance_index.cpp
electricEpilith File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| # VG Project Notes | ||
|
|
||
| ## Building | ||
| - New `.cpp` files auto-discovered | ||
| - Build with `make -j8` or `make obj/whatever.o` to build just one .o. | ||
| - You may be getting errors from `clangd`. If these errors seem spurious, stop and demand a `clangd` that works properly. | ||
|
|
||
| ## Testing | ||
|
|
||
| ### Running Bash-TAP Tests | ||
| Use `prove -v` (not `bash`) to execute Bash-TAP tests. This provides proper test harness output and better error reporting. | ||
|
|
||
| **Important**: Run `prove` from the `test/` directory: | ||
| ```bash | ||
| cd test | ||
| prove -v t/26_deconstruct.t | ||
| ``` | ||
|
|
||
| ### Running Unit Tests | ||
| To run all unit tests: | ||
| ```bash | ||
| ./bin/vg test | ||
| ``` | ||
| - `./bin/vg test "[tag]"` runs tests matching a tag | ||
|
|
||
| #### Writing Unit Tests | ||
| - Framework: Catch v2 (header-only) | ||
| - Include: `#include "catch.hpp"` (in `src/unittest/catch.hpp`) | ||
| - Macros: `TEST_CASE("name", "[tags]")`, `SECTION("name")`, `REQUIRE(cond)` | ||
| - Namespace: `vg::unittest` | ||
| - Directory: `src/unittest/` | ||
|
|
||
| ### Running All Tests | ||
| ```bash | ||
| make test | ||
| ``` | ||
|
|
||
| ## Writing Code | ||
|
|
||
| ### HandleGraph API | ||
| The interfaces in libhandlegraph model a bidirected sequence graph (where nodes have DNA sequences and edges can connect to either the start or end of each involved node). | ||
|
|
||
| #### Core types | ||
| - `handle_t` - opaque 64-bit value | ||
| - `nid_t` - node ID type | ||
| - `edge_t` = `pair<handle_t, handle_t>` | ||
|
|
||
| #### Key HandleGraph methods | ||
| - `get_handle(nid_t, bool is_reverse=false)` → `handle_t` | ||
| - `get_id(handle_t)` → `nid_t` | ||
| - `get_is_reverse(handle_t)` → `bool` | ||
| - `flip(handle_t)` → `handle_t` (toggle orientation) | ||
| - `get_sequence(handle_t)` → `string` (in handle's orientation) | ||
| - `follow_edges(handle_t, bool go_left, iteratee)` - iterate neighbors | ||
| - `for_each_handle(iteratee, bool parallel=false)` - iterate all nodes | ||
| - `for_each_edge(iteratee, bool parallel=false)` - iterate all edges | ||
| - `has_edge(handle_t left, handle_t right)` → `bool` | ||
|
|
||
| #### MutableHandleGraph additions | ||
| - `create_handle(string seq)` / `create_handle(string seq, nid_t id)` → `handle_t` | ||
| - `create_edge(handle_t left, handle_t right)` | ||
| - `destroy_handle(handle_t)` / `destroy_edge(handle_t, handle_t)` | ||
|
|
||
| #### HandleGraph algorithms | ||
| - Things like `topological_sort.hpp` and copy_graph.hpp` are in `deps/libhandlegraph/src/include/handlegraph/algorithms`. | ||
|
|
||
| #### bdsg::HashGraph | ||
| - Header: `deps/libbdsg/bdsg/include/bdsg/hash_graph.hpp` | ||
| - Implements MutablePathMutableHandleGraph | ||
| - Go-to handlegraph implementation to use | ||
| - In libbdsg | ||
|
|
||
| ### Utilities | ||
| - `reverse_complement(string)` → `string` in src/utility.hpp | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| BOTS.md |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule libbdsg
updated
15 files
| +8 −4 | CMakeLists.txt | |
| +1 −0 | Makefile | |
| +281 −0 | bdsg/include/bdsg/ch.hpp | |
| +65 −0 | bdsg/include/bdsg/hublabel.hpp | |
| +208 −0 | bdsg/include/bdsg/internal/indexing_iterator.hpp | |
| +22 −1 | bdsg/include/bdsg/internal/mapped_structs.hpp | |
| +1 −202 | bdsg/include/bdsg/internal/packed_structs.hpp | |
| +270 −0 | bdsg/include/bdsg/landmark.hpp | |
| +369 −69 | bdsg/include/bdsg/snarl_distance_index.hpp | |
| +1,042 −0 | bdsg/src/ch.cpp | |
| +394 −0 | bdsg/src/hublabel.cpp | |
| +501 −0 | bdsg/src/landmark.cpp | |
| +674 −640 | bdsg/src/snarl_distance_index.cpp | |
| +309 −4 | bdsg/src/test_libbdsg.cpp | |
| +7 −2 | bdsg/src/vectorizable_overlays.cpp |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't really explain how two passes of preloading could possibly help, either.