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

Add Volume Tasks #3712

Merged
merged 40 commits into from
Feb 6, 2019
Merged

Add Volume Tasks #3712

merged 40 commits into from
Feb 6, 2019

Conversation

fm3
Copy link
Member

@fm3 fm3 commented Jan 30, 2019

URL of deployed dev instance (used for testing):

Steps to test:

  • create new task type, select volume as tracing type
  • create tasks with this task type (try bulk + form-based. file-upload is not yet supported)
  • request tasks, trace, finish
  • download project, you should get zip with nmls and data zips
  • task type tracing type should be immutable (since tasks once created have their initialized tracing bases)
  • viewing the project/tasktype as compound annotation should fail (since merging volume tracings is not yet defined)
  • skeleton task handling should be unaffected

Issues:


  • Updated changelog
  • Updated migration guide if applicable
  • [ ] Updated documentation if applicable
  • Needs datastore update after deployment
  • Ready for review [Backend]
  • Ready for review [Frontend]

@fm3 fm3 self-assigned this Jan 30, 2019
@fm3
Copy link
Member Author

fm3 commented Jan 31, 2019

status: creating + requesting + tracing + finishing volume tasks works
todo:

  • back-end: download
  • front-end: add form field to task type
  • front-end: finish + get next task (or error handling for that)
  • front-end: show task tracing type in UI (task dashboard, task list etc.)
  • front-end: disable file-upload in task-creation for volume tasktypes
  • test all the things

@philippotto
Copy link
Member

I added the necessary UI to the task creation form (but not bulk). For bulk creation, we need to think about how we want to extend the format. At the moment, every value is mandatory (except for script id). Adding a second optional parameter can get ugly. Making it mandatory is not backwards compatible. Not sure how we should handle this.

@philippotto
Copy link
Member

On a second thought, I'm not sure anymore whether it makes sense to model the skeleton / volume distinction within the actual task instances. Wouldn't it make sense to encode this within the TaskType? This would also simplify things, such as the bulk creation (since the tracing type is already defined within the task type).

@philippotto philippotto self-assigned this Feb 1, 2019
@fm3 fm3 requested a review from jstriebel February 4, 2019 07:41
@fm3 fm3 changed the title [WIP] volume tasks Add Volume Tasks Feb 4, 2019
Copy link
Contributor

@jstriebel jstriebel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Backend code LGTM, also tested it 👍 . I noticed two things that are probably related to the frontend, probably they are not supposed to work yet: I was not able to brush or trace anything in a volume task (might be because I enabled default settings). And the task types view shows the Settings that are only related to skeleton tracings also for volume tracings.

@philippotto
Copy link
Member

I was not able to brush or trace anything in a volume task (might be because I enabled default settings).

Actually, this should work. Did you select the "brush tool" in the top bar?

And the task types view shows the Settings that are only related to skeleton tracings also for volume tracings.

Right now, these settings are very generic (e.g., move value is independent of tracing type). They include a lot of skeleton settings, but could include volume settings in the future, as well. I'd leave it as is to reduce complexity. In the future, we could still separate this, if we want to.

  • front-end: disable file-upload in task-creation for volume tasktypes

I just pushed the necessary changes for this.

@jstriebel
Copy link
Contributor

Actually, this should work. Did you select the "brush tool" in the top bar?

Sure. You can try this yourself with on the dev-instance:
https://volumetasks.webknossos.xyz/annotations/Task/5c585c0801000041016c9c3e#0,253,32,0,1.00

Right now, these settings are very generic (e.g., move value is independent of tracing type). They include a lot of skeleton settings, but could include volume settings in the future, as well. I'd leave it as is to reduce complexity. In the future, we could still separate this, if we want to.

In thins case I'm meant the Settings column in the TaskTypes view, not the Recommended User Settings. Sorry for the confusion. I think there are only two settings, that are both specific for skeleton tracings.

Copy link
Member

@daniel-wer daniel-wer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good, great that this didn't cause lots of code changes! 🎉
I'd say if the testing goes well we can deploy this as is, but in the next days I would definitely want to take an hour to go through the code and look for "tasks-are-skeleton-only" assumptions - I know that we made those a few times in the past :)

Will report back after testing!

CHANGELOG.md Outdated Show resolved Hide resolved
app/assets/javascripts/admin/task/task_create_bulk_view.js Outdated Show resolved Hide resolved
topLeft: boundary.lowerBoundary,
};
}

export function convertPointToVecInBoundingBox(boundingBox: ServerBoundingBox): BoundingBoxObject {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this function unused now?
But we can also check that when we refactor the bounding box/upper-lower boundary mess, maybe add a comment.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it's unused. I'd leave it as is, though, since the cost of recreating the function (in case it's needed again) is higher than having the few additional unused lines in the code base. Getting rid of some bounding box types will be more rewarding :)

app/assets/javascripts/oxalis/model_initialization.js Outdated Show resolved Hide resolved
@daniel-wer
Copy link
Member

Testing went well, great work @fm3 and @philippotto 🚢

@fm3 fm3 merged commit f279737 into master Feb 6, 2019
@fm3 fm3 deleted the volume-tasks branch February 6, 2019 09:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Volume tasks
4 participants