-
Notifications
You must be signed in to change notification settings - Fork 2
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
slow_odgi
: proofs
#87
Conversation
Rename pollen-py into pollen_py
Terribly sorry to have added other PRs onto this one! The story is that I added a tiny CI thing to teach myself about it, but didn't realize that large chunks of our existing code would fail the CI tests. When I then created this small PR, all those failures came up. The failing CI made me panic needlessly and I decided to fix those issues right here, but I should have gone about it via a separate PR. To clarify, this PR now has three things in it:
The last two are not deep, but they have big diffs. Thankfully, AFAIK, no-one else is currently working on those files. If you are, and if my changes have made life hard for you, please let me know. I'll revert this stuff and make it right! |
I'll note that #89 also got rid of a lot of GFA and temp files that IMO should never have been committed! Please let me know if I made a mistake! |
Super cool! Defining a notion of graph equivalence (or refinement) seems to be the first step toward checking program correctness. That is, we decide something like About the names and the And no worries about the PR noise; I just looked at the one new |
Appease MyPy
This PR is a modest step towards #85.
We'll add further checks as we think of them, but for now I have
paths_logically_le
. I take a path-forward approach and ask, in the relevant commands (justchop
andinject
for now) that the graph we pass is "less than or equal to" the graph we get back. That is, every path that I used to have in the input graph still exists, with the same name and sequence, in the new graph.flip
does satisfy this condition spiritually, but does not satisfy it as written. The reason is silly:flip
adds the string "_inv" to the names of the paths that it flips. We do this because odgi does. If we are okay with diverging from odgi in this regard, I can remove this addition of "_inv".#85 talks about logical equality, but I've come up with this logical
<=
approach because I think there's some value there. We can state==
using<=
and antisymmetry.