diff --git a/API_CHANGELOG.md b/API_CHANGELOG.md index 68bbc2f629..87384193b6 100644 --- a/API_CHANGELOG.md +++ b/API_CHANGELOG.md @@ -2,7 +2,7 @@ This changelog notes changes to API endpoints that are documented and listed through Swagger. Changes to undocumented, internal CATMAID APIs are not included in this changelog. -## Under development +## 2018.07.19 ### Additions diff --git a/CHANGELOG.md b/CHANGELOG.md index b70f448ce7..7a097ee2e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ -## Under development +## 2018.07.19 +Contributors: Albert Cardona, Andrew Champion, Pat Gunn, Tom Kazimiers, Will Patton, Eric Trautmans ### Notes diff --git a/package.json b/package.json index fa5128faa7..e7373c14b5 100644 --- a/package.json +++ b/package.json @@ -9,5 +9,9 @@ "jshint": "2.9.5", "karma": "2.0.2", "jsdoc": "3.5.5" + }, + "dependencies": { + "bootprint": "^1.0.2", + "bootprint-openapi": "^1.1.0" } } diff --git a/sphinx-doc/source/_static/api/index.html b/sphinx-doc/source/_static/api/index.html index 4c9a9d445a..94a09c52c3 100644 --- a/sphinx-doc/source/_static/api/index.html +++ b/sphinx-doc/source/_static/api/index.html @@ -243,6 +243,25 @@

Tag: samplers

POST /{project_id}/samplers/{sampler_id}/domains/add-all

Create a new domain for a sampler.

+ + + + +

Tag: skeleton

+ +

+

+ + + + + + + + + + + @@ -287,6 +306,11 @@

Tag: skeletons

+ + + + @@ -482,7 +506,7 @@

Tag: volumes

- @@ -594,6 +618,11 @@

Tag: connectors

+ + + + @@ -2727,6 +2756,7 @@

GET /{projec one array per connector link with the following content: [Linked skeleton ID, Connector ID, Connector X, Connector Y, Connector Z, Link confidence, Link creator ID, Linked treenode ID, Link edit time].

+

A POST handler is able to accept large lists of skeleton IDs.

@@ -2837,6 +2867,136 @@

GET /{projec +
+
+
Get connectors linked to a set of skeletons.
+

POST /{project_id}/connectors/links/

+ Tags: + connectors +
+
+
+

Get connectors linked to a set of skeletons.

+

The result data set includes information about linked connectors on a given + input set of skeletons. These links are further constrained by relation + type, with currently support available for: postsynaptic_to, + presynaptic_to, abutting, gapjunction_with.

+

Returned is an object containing an array of links to connectors and a set + of tags for all connectors found (if not disabled). The link array contains + one array per connector link with the following content: [Linked skeleton ID, + Connector ID, Connector X, Connector Y, Connector Z, Link confidence, Link + creator ID, Linked treenode ID, Link edit time].

+

A POST handler is able to accept large lists of skeleton IDs.

+ +
+ + +
+ +

application/x-www-form-urlencoded +

+
+
+

OperationDescription
POST /{project_id}/skeleton/connectivity_matrix

Return a sparse connectivity matrix representation for the given skeleton

GET /{project_id}/skeletons/in-bounding-box

Get a list of all skeletons that intersect with the passed in bounding

+
POST /{project_id}/skeletons/in-bounding-box

Get a list of all skeletons that intersect with the passed in bounding

GET /{project_id}/volumes/{volume_id}/intersect

Test if a point intersects with a given volume.

+

Test if a point intersects with the bounding box of a given volume.

GET /{project_id}/connectors/links/

Get connectors linked to a set of skeletons.

+
POST /{project_id}/connectors/links/

Get connectors linked to a set of skeletons.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ project_id + path + string + + + + +
+ skeleton_ids +

Skeletons to list connectors for

+
formData + string[] + + + + +
+ relation_type +

Relation of listed connector links

+
formData + string + + + + +
+ with_tags +

If connector tags should be fetched

+
formData + boolean + + + +
+ + +
+ +
+
+ 201 Created + +
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+ +
@@ -3396,9 +3556,9 @@

GET /{projec - node_type + project_id -

Either 'connector', 'treenode' or 'location'

+

Project containing node of interest

formData @@ -3412,9 +3572,9 @@

GET /{projec - project_id + node_id -

Project containing node of interest

+

ID of node to list labels for

formData @@ -3428,9 +3588,9 @@

GET /{projec - node_id + node_type -

ID of node to list labels for

+

Either 'connector', 'treenode' or 'location'

formData @@ -4210,9 +4370,9 @@

DELETE /{pro - project_id + link_id -

Project of landmark group

+

The link to delete

path @@ -4226,9 +4386,9 @@

DELETE /{pro - link_id + project_id -

The link to delete

+

Project of landmark group

path @@ -4464,9 +4624,9 @@

GET /{projec - landmarkgroup_id + project_id -

The ID of the landmark group.

+

The project the landmark group is part of.

path @@ -4480,9 +4640,9 @@

GET /{projec - project_id + landmarkgroup_id -

The project the landmark group is part of.

+

The ID of the landmark group.

path @@ -4601,12 +4761,13 @@

POST /{proje - landmarkgroup_id + project_id - +

The project the landmark group is part of.

+ path - string + integer @@ -4616,13 +4777,12 @@

POST /{proje - project_id + landmarkgroup_id -

The project the landmark group is part of.

- + path - integer + string @@ -4749,9 +4909,9 @@

DELETE /{pro - landmarkgroup_id + project_id -

The landmark group to link

+

Project of landmark group

path @@ -4781,9 +4941,9 @@

DELETE /{pro - project_id + landmarkgroup_id -

Project of landmark group

+

The landmark group to link

path @@ -4850,9 +5010,9 @@

PUT /{projec - landmarkgroup_id + project_id -

The landmark group to link

+

Project of landmark group

path @@ -4882,9 +5042,9 @@

PUT /{projec - project_id + landmarkgroup_id -

Project of landmark group

+

The landmark group to link

path @@ -4959,9 +5119,9 @@

GET /{projec - landmarkgroup_id + project_id -

The starting landmark group

+

Project of landmark groups

path @@ -4975,9 +5135,9 @@

GET /{projec - project_id + landmarkgroup_id -

Project of landmark groups

+

The starting landmark group

path @@ -5380,9 +5540,9 @@

DELETE /{pro - project_id + group_id -

Project of landmark group

+

The group to unlink from

path @@ -5396,9 +5556,9 @@

DELETE /{pro - landmark_id + project_id -

The landmark to unlink from

+

Project of landmark group

path @@ -5412,9 +5572,9 @@

DELETE /{pro - group_id + landmark_id -

The group to unlink from

+

The landmark to unlink from

path @@ -5653,9 +5813,9 @@

DELETE /{pro - location_id + project_id -

The location to unlink

+

Project of landmark group

path @@ -5669,9 +5829,9 @@

DELETE /{pro - project_id + landmark_id -

Project of landmark group

+

The landmark to unlink

path @@ -5685,9 +5845,9 @@

DELETE /{pro - landmark_id + location_id -

The landmark to unlink

+

The location to unlink

path @@ -6005,13 +6165,12 @@

POST /{proje - neuron_id + project_id -

ID of neuron to rename

- + path - integer + string @@ -6021,12 +6180,13 @@

POST /{proje - project_id + neuron_id - +

ID of neuron to rename

+ path - string + integer @@ -6318,7 +6478,22 @@

POST /{proje - + + + n_largest_skeletons_limit + +

Maximum number of the largest skeletons in view

+ + formData + + integer + + + + + + + @@ -6833,9 +7008,9 @@

DELETE /{pro - project_id + point_id -

Project point is part of

+

ID of point

path @@ -6849,9 +7024,9 @@

DELETE /{pro - point_id + project_id -

ID of point

+

Project point is part of

path @@ -6918,9 +7093,9 @@

GET /{projec - project_id + point_id -

Project point is part of

+

ID of point

path @@ -6934,9 +7109,9 @@

GET /{projec - point_id + project_id -

ID of point

+

Project point is part of

path @@ -7009,9 +7184,9 @@

POST /{proje - project_id + point_id -

Project point is part of

+

ID of point

path @@ -7025,9 +7200,9 @@

POST /{proje - point_id + project_id -

ID of point

+

Project point is part of

path @@ -7390,6 +7565,21 @@

POST /{proje + + + leaf_segment_handling + +

How leaf segments should be handled, can be 'ignore', 'merge' or 'short-interval'.

+ + formData + + string + + + + + + @@ -7714,9 +7904,9 @@

POST /{proje - connector_id + interval_id -

Connector to set state of

+

Interval the connector is part of

formData @@ -7745,9 +7935,9 @@

POST /{proje - interval_id + connector_id -

Interval the connector is part of

+

Connector to set state of

formData @@ -7832,7 +8022,7 @@

GET /{projec - project_id + interval_id path @@ -7847,7 +8037,7 @@

GET /{projec - interval_id + project_id path @@ -7922,12 +8112,13 @@

POST /{proje - project_id + interval_id - - path +

Interval to update state of

+ + formData - string + integer @@ -7937,13 +8128,12 @@

POST /{proje - interval_id + project_id -

Interval to update state of

- - formData + + path - integer + string @@ -8078,7 +8268,7 @@

GET /{projec - project_id + domain_id path @@ -8093,7 +8283,7 @@

GET /{projec - domain_id + project_id path @@ -8168,12 +8358,13 @@

GET /{projec - project_id + domain_id - - path +

Domain to list intervals for

+ + formData - string + integer @@ -8183,13 +8374,12 @@

GET /{projec - domain_id + project_id -

Domain to list intervals for

- - formData + + path - integer + string @@ -8254,7 +8444,7 @@

POST /{proje - project_id + domain_id path @@ -8269,7 +8459,7 @@

POST /{proje - domain_id + project_id path @@ -8820,6 +9010,133 @@

POST /{proje

+ +
+
+
Return a sparse connectivity matrix representation for the given skeleton
+

POST /{project_id}/skeleton/connectivity_matrix

+ Tags: + skeleton +
+
+
+

Return a sparse connectivity matrix representation for the given skeleton + IDs. The returned dictionary has a key for each row skeleton having + outgoing connections to one or more column skeletons. Each entry stores a + dictionary that maps the connection partners to the individual outgoing + synapse counts.

+ +
+ + +
+ +

application/x-www-form-urlencoded +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ project_id +

Project of skeletons

+
path + integer + + + + +
+ rows +

IDs of row skeletons

+
formData + string[] + + + + +
+ columns +

IDs of column skeletons

+
formData + string[] + + + + +
+ with_locations +

Whether or not to return locations of connectors

+
formData + boolean + + + +
+
+ +
+ +
+
+ 201 Created + +
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
@@ -9614,7 +9931,7 @@

GET /{projec

Get a list of all skeletons that intersect with the passed in bounding - box.

+ box. Optionally, only a subsed of passed in skeletons can be tested against.

@@ -9762,44 +10079,353 @@

GET /{projec - - - - -
- -
-
- 200 OK - -
-
-
-
- -
-
-
- -
-
- -
-
-
-

-

- - -
-
-
Return relationship between label IDs and skeleton IDs
-

POST /{project_id}/skeletons/node-labels

- Tags: - skeletons -
-
-
+ + + min_nodes + +

A minimum number of nodes per result skeleton

+ + formData + + float + + + + + + + + + min_cable + +

A minimum number of cable length per result skeleton

+ + formData + + float + + + + + + + + + volume_id + +

Alternative to manual bounding box definition. The bounding box of the + volume is used.

+ + formData + + integer + + + + + + + + + skeleton_ids + +

An optional list of skeleton IDs that should only be tested againt. If + used, the result will only contain skeletons of this set.

+ + formData + + string[] + + + + + + + + +
+ +
+ +
+
+ 200 OK + +
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+
+
Get a list of all skeletons that intersect with the passed in bounding
+

POST /{project_id}/skeletons/in-bounding-box

+ Tags: + skeletons +
+
+
+

Get a list of all skeletons that intersect with the passed in bounding + box. Optionally, only a subsed of passed in skeletons can be tested against.

+ +
+ + +
+ +

application/x-www-form-urlencoded +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ project_id + path + string + + + + +
+ limit +

Limit the number of returned nodes.

+
formData + integer + + + +
+ minx +

Minimum world space X coordinate

+
formData + float + + + + +
+ miny +

Minimum world space Y coordinate

+
formData + float + + + + +
+ minz +

Minimum world space Z coordinate

+
formData + float + + + + +
+ maxx +

Maximum world space X coordinate

+
formData + float + + + + +
+ maxy +

Maximum world space Y coordinate

+
formData + float + + + + +
+ maxz +

Maximum world space Z coordinate

+
formData + float + + + + +
+ min_nodes +

A minimum number of nodes per result skeleton

+
formData + float + + + +
+ min_cable +

A minimum number of cable length per result skeleton

+
formData + float + + + +
+ volume_id +

Alternative to manual bounding box definition. The bounding box of the + volume is used.

+
formData + integer + + + +
+ skeleton_ids +

An optional list of skeleton IDs that should only be tested againt. If + used, the result will only contain skeletons of this set.

+
formData + string[] + + + +
+
+ +
+ +
+
+ 201 Created + +
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
Return relationship between label IDs and skeleton IDs
+

POST /{project_id}/skeletons/node-labels

+ Tags: + skeletons +
+
+

Return relationship between label IDs and skeleton IDs

@@ -10159,9 +10785,9 @@

GET /{projec - project_id + skeleton_id -

Project of landmark

+

IDs of the skeleton to get the cable length for

path @@ -10175,9 +10801,9 @@

GET /{projec - skeleton_id + project_id -

IDs of the skeleton to get the cable length for

+

Project of landmark

path @@ -10270,7 +10896,7 @@

GET /{projec - project_id + skeleton_id path @@ -10285,7 +10911,7 @@

GET /{projec - skeleton_id + project_id path @@ -10472,7 +11098,7 @@

POST /{proje - project_id + skeleton_id path @@ -10487,7 +11113,7 @@

POST /{proje - skeleton_id + project_id path @@ -10589,7 +11215,7 @@

GET /{projec - project_id + skeleton_id path @@ -10604,7 +11230,7 @@

GET /{projec - skeleton_id + project_id path @@ -10686,7 +11312,7 @@

POST /{proje - project_id + skeleton_id path @@ -10701,7 +11327,7 @@

POST /{proje - skeleton_id + project_id path @@ -10794,7 +11420,7 @@

POST /{proje - project_id + skeleton_id path @@ -10809,7 +11435,7 @@

POST /{proje - skeleton_id + project_id path @@ -10894,7 +11520,7 @@

GET /{projec - project_id + skeleton_id path @@ -10909,7 +11535,7 @@

GET /{projec - skeleton_id + project_id path @@ -11473,12 +12099,18 @@

POST /{proje

Retrieve node information in a compact form. A list of elements of the - following form is returned: [ID, parent ID, x, y, z, confidence, user_id, - radius, skeleton_id, user_id].

+ following form is returned:

+

[ID, parent ID, x, y, z, confidence, radius, skeleton_id, edition_time, user_id]

+

The returned edition time is an epoch number.

- + +
+ +

application/x-www-form-urlencoded +

+
@@ -11495,8 +12127,9 @@

POST /{proje

- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
project_id path

Project to work in

+
formData string @@ -11506,6 +12139,68 @@

POST /{proje

+ treenode_ids +

A list of treeonde IDs to return information on

+
formData + string + + + +
+ label_ids +

A list of label IDs that must be linked to result treenodes. Alternative + to explicit treenode IDs and label names.

+
formData + string + + + +
+ label_names +

A list of label names that must be linked to result treenodes. + Alternative to explicit treenode IDs and label IDs

+
formData + string + + + +
+ skeleton_ids +

A list of skeleton IDs that result skeletons have to be part of.

+
formData + string + + + +
@@ -11545,8 +12240,9 @@

GET /{projec

Retrieve node information in a compact form. A list of the following form - is returned: [ID, parent ID, x, y, z, confidence, user_id, radius, - skeleton_id, user_id].

+ is returned:

+

[ID, parent ID, x, y, z, confidence, radius, skeleton_id, edition_time, user_id]

+

The returned edition time is an epoch number.

@@ -12102,7 +12798,7 @@

DELETE /{pro - suppressed_id + project_id path @@ -12117,7 +12813,7 @@

DELETE /{pro - project_id + suppressed_id path @@ -12743,14 +13439,14 @@

POST /{proje
-
Test if a point intersects with a given volume.
+
Test if a point intersects with the bounding box of a given volume.

GET /{project_id}/volumes/{volume_id}/intersect

Tags: volumes
-

Test if a point intersects with a given volume.

+

Test if a point intersects with the bounding box of a given volume.

diff --git a/sphinx-doc/source/conf.py b/sphinx-doc/source/conf.py index 7760eda614..4275d00fa4 100644 --- a/sphinx-doc/source/conf.py +++ b/sphinx-doc/source/conf.py @@ -56,9 +56,9 @@ # built documents. # # The short X.Y version. -version = '2018.04.15-dev' +version = '2018.07.19' # The full version, including alpha/beta/rc tags. -release = '2018.04.15-dev' +release = '2018.07.19' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None