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

Mapping updates in response to certain mutations #361

Closed
stuarteberg opened this issue Feb 2, 2022 · 3 comments
Closed

Mapping updates in response to certain mutations #361

stuarteberg opened this issue Feb 2, 2022 · 3 comments
Assignees
Labels

Comments

@stuarteberg
Copy link
Member

  • When a supervoxel is split, the supervoxel must be added to the in-memory map, with a body of 0
  • When a body is cleaved, the newly allocated body ID must be added as a SUPERVOXEL in the mapping, with a body of 0
  • If we ever implement any "body renumber" feature(Explicit renumbering of body IDs #360), then DVID should also add the new body ID as a supervoxel ID in the mapping, with a body of 0.

Obviates #323
Related: #289, #297

While you're at it, if you could handle #267 (task 3), that would be great:

  1. split-supervoxel messages could include the body ID
@DocSavage DocSavage self-assigned this Apr 16, 2022
@DocSavage
Copy link
Member

Fully fixed by commits d7ae3c9 and db19cbe. Because this slightly modifies what a "mapping" constitutes, i.e., the id-to-be-mapped is not always a supervoxel, the documentation for the /mapping endpoint has been changed to emphasize it:

GET <api URL>/node/<UUID>/<data name>/mapping[?queryopts]

	Returns JSON for mapped uint64 identifiers (labels). The mapping holds not only the
	unique IDs of supervoxels but also newly created IDs for renumbered & cleaved bodies
	that will never overlap with supervoxel IDs. 
	
	Expects JSON in GET body:

	[ label1, label2, label3, ...]

	Returns for each POSTed label the corresponding mapped label:

	[ 23, 0, 911, ...]

	The mapped label can be 0 in the following circumstances:
	* The label was a supervoxel ID that was split into two different unique IDs.
	* The label is used for a newly generated ID that will be a new renumbered label.
	* The label is used for a newly generated ID that will represent a cleaved body ID.

@stuarteberg
Copy link
Member Author

@DocSavage Just to be clear: These changes affect not only the /mapping endpoint, but also the complete /mappings endpoint, yes?

@DocSavage
Copy link
Member

@stuarteberg Yes. I'm pushing a change to the documentation for GET and POST /mappings as well to make clear the mapping keys aren't just supervoxel ids any more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants