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

Tree-based agglomeration #32

Merged
merged 45 commits into from Oct 15, 2014
Merged

Tree-based agglomeration #32

merged 45 commits into from Oct 15, 2014

Conversation

jni
Copy link
Collaborator

@jni jni commented Jan 15, 2014

I've been thinking about optimizing gala. I think one of the first steps is to stop merging segments during agglomeration, and just keep track of the merges in a tree. I've created a Python tree library viridis (after Morelia viridis, the green tree python) and use it to keep track of the merge tree. All the segment merging logic is gone, simplifying the codebase while increasing efficiency. It passes all the current tests (admittedly few, but they cover the essentials of agglomeration and feature computation).

Please let me know if there are any objections to this change.

@jni
Copy link
Collaborator Author

jni commented Jan 21, 2014

Don't merge this! Turns out Travis was "passing" despite failing tests! (See #33.) Will rebase and fix failing tests.

jni and others added 29 commits January 23, 2014 21:35
MergeQueue.peek() was designed to look at the next item in the merge
queue without popping it. However, the next item *could* be invalid,
and cause a merge of a valid item past threshold!

This commit fixes that by having peek() discard invalid items until a
valid one is at the front of the queue.
Tree merging was causing the sp2segment map to be incorrect when the
merge boundaries were being refined. Postponing the merge until after
boundary refinement fixes the issue.
The region intersection graph allows quick computation of current VI
and rand index during an agglomeration run.
I doubled the size of the contingency table, but when there is no
contingency table, I hadn't doubled the size of the ones() array,
resulting in an IndexError. This is now fixed.
NealJMD and others added 16 commits September 22, 2014 22:33
 - added optimized.pyx for Cython, and tests for its functions
 - added missing kwarg to classify.py function
 - modified imio.read_h5_stack to not fail with kwargs for other imio function args
 - stop agglo.py tracking 'extent' set after features are built
 - optimize 'histogram' and 'moments' feature computations with Cython
 - added 'contact' feature, which helped win SNEMI3D
 - added adjusted Rand error metric to evaluate.py
 - dramatically improved testing framework
 - updated travis build to use Conda
 - updated README with all the goodies
 - other minor improvements
@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 740bebb on jni:tree-agglo into * on janelia-flyem:master*.

@jni
Copy link
Collaborator Author

jni commented Oct 15, 2014

I'm merging this as a precursor to a release. Boom!

jni added a commit that referenced this pull request Oct 15, 2014
Tree-based agglomeration
@jni jni merged commit 790949c into janelia-flyem:master Oct 15, 2014
@jni jni deleted the tree-agglo branch October 15, 2014 05:48
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.

None yet

3 participants