scalableminds / webknossos-connect

Connect webKnossos with existing datasets (BossDB, Neuroglancer Precomputed)
GNU Affero General Public License v3.0
0 stars 0 forks source link

Creating volume annotation from existing Neuroglancer segmentation layer fails #90

Closed cnzqy1 closed 4 years ago

cnzqy1 commented 4 years ago

When using webknossos-connect to interface with Neuroglancer precomputed datasets, creating volume annotation from existing segmentation layer does not work properly. Chrome developer console shows that it tried to fetch data from the existing segmentation layer but got error 500.

The segmentation layer is stored as compressed_segmentation, and viewing this segmentation layer using webKnossos works (just does not work in the annotation mode). I can see similar behavior in publicly available datasets such as harris2015.

Checking the error log from the webknossos-connect Docker container I saw two types of errors:

Traceback (most recent call last):
  File "/app/wkconnect/__main__.py", line 50, in add_dataset
    organization_name, dataset_name, deepcopy(dataset_config)
  File "/app/wkconnect/backends/neuroglancer/backend.py", line 115, in handle_new_dataset
    for layer_name, layer in dataset_info["layers"].items()
  File "/app/wkconnect/backends/neuroglancer/backend.py", line 102, in __handle_layer
    return (layer_name, from_json(layer, Layer))
  File "/app/wkconnect/utils/json.py", line 24, in from_json
    return cls(**data)
TypeError: __init__() got an unexpected keyword argument 'segments'

and

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/sanic/app.py", line 750, in handle_request
    response = await response
  File "/app/wkconnect/webknossos/access.py", line 59, in decorated_function
    return await f(request, *args, **kwargs)
  File "/app/wkconnect/routes/datasets/read_data.py", line 40, in get_data_post
    bucket_requests = from_json(request.json, List[WKDataRequest])
  File "/app/wkconnect/utils/json.py", line 35, in from_json
    return [from_json(value, list_type) for value in data]
  File "/app/wkconnect/utils/json.py", line 35, in <listcomp>
    return [from_json(value, list_type) for value in data]
  File "/app/wkconnect/utils/json.py", line 24, in from_json
    return cls(**data)
TypeError: __new__() got an unexpected keyword argument 'version'

It looks like some arguments are not supported in the annotation mode. The viewer mode on the other hand does not trigger these two errors.

philippotto commented 4 years ago

Thank you for the bug report! We will look into fixing this.

philippotto commented 4 years ago

@cnzqy1 Feel free to check out the newest master of webKnossos in which this bug should be fixed. webknossos-connect doesn't need to be updated.