2018.04.15
2018.04.15
Contributors: Albert Cardona, Andrew Champion, Chris Barnes, Rob Court, Tom Kazimiers
A recording of a presentation discussing the changes in this release can be found here.
Notes
-
Requires a virtualenv update.
-
A new management command "catmaid_find_node_provider_config" is available,
which can be used to compare different node providers on existing data, which
is useful to configure the NODE_PROVIDERS setting. -
The Docker images now support the options CM_HOST and CM_PORT to configure
where uwsgi is listening. -
When using the Javascript console, node positions returned from tracing
overlays are now in project space coordinates (physical nm), not stack space
voxel coordinates. Transformation to project space is no longer necessary. -
Postgres 10+ is now required.
Features and enhancements
Layouts:
-
A new "Layouts" menu is shown in the top bar when a project is opened. It
allows to save the current window layout under a name, it provides an option
to close all widgets and will show all available layouts as menu entries. -
Layouts store window arrangement, window sizes, tabs and subscriptions.
-
Saved layouts can also be manually configured from the "Custom layouts"
setting in the Settings Widget. -
Tabbed windows are now supported in layout specs by using "t([a, b, c])" where
a, b, c or any other number of elements can be children of the tabbed window.
Landmarks:
-
Support transformation of nodes that cross space between landmark groups and
even reach into target groups. This allows to e.g. transform skeletons that
cross the midline. Doing this is enabled by default, but can be disabled
through the "Interpolate between groups" option. -
Virtual transformed skeletons are now also shown on a separate layer in all
open Stack Viewers. Nodes of those skeletons can currently not selected. To
disable the Landmark Layer, uncheck the "Show landmark layers" checkbox in the
Display tab's button panel. -
The new "Edit landmark" tab provides a simpler interface to add new landmark
locations to landmark groups. If the option "Update existing landmark
locations" is selected, new landmark locations will replace existing ones
shared between the provided landmark and the selected group. The lower
section of this tab allows to edit links between landmark groups, which can
be used for rule based display transformations. -
As an alternative to selecting a target landmark group explicitly to create a
display transformation, it is now possible to instead select a target relation
in the Display tab. Doing so will automatically create all display
transformations from the source group to all landmark groups transitively
linked to the source group using the selected relation. The reciprocity of
relations is respected. -
The new "Create groups" tab provides an option to create landmark groups along
with required landmarks from the bounding boxes of two volumes. This allow to
quickly create simple landmark group mappings. -
The color and extra scaling for nodes on Landmark Layers can be adjusted from
the widget. -
All 3D Viewers are now enabled by default as transformation display target.
-
State saving is now supported.
3D Viewer:
-
A scale bar can now be displayed when in orthographic mode. The scale bar
can disabled via a checkbox in the View Settings tab. -
PNG and SVG exports offer now a filename input field.
-
Loaded volumes are now stored along with their styling in the widget state.
-
Landmark groups are now show with landmark name labels. This can be disabled
from the landmark menu. -
Text scaling can be adjusted from the View tab.
-
The width and height of animation exports are now restricted to even numbers.
This is required by the H264 codec we refer to in our documentation.
Graph widget:
-
The old "Graph" tab was split into two: "Nodes" and "Edges", each with the
corresponding functionality. -
New feature: color edges with the same color as the source node, the target
node, or the general color specified in the "Properties" menu (from the "Main"
tab). See the "Edges" tab. -
New feature: change the arrow shape to a circle, diamond, tee, etc. The new
"Set" button in the "Edges" tab applies the change to selected nodes. -
New feature: the new "Selections" tab can record sets of nodes, stored as a
named selection. Then these can be selected or deselected. The "Select all"
button selects all nodes from all created selections. -
Basic state saving is now supported.
Reconstruction Sampler:
- Intervals are now displayed with only two colors by default, it makes
distinguishing many intervals easier. The previous multi-color mode can be
reactivated from the preview window.
Tracing general:
-
The settings widget allows now to configure a "fast split mode" and a "fast
merge mode" to allow particular groups of skeletons to be split and merged
without confirmation. Similarly to Visibility Groups, these Fast Split/Merge
Groups can be defined in terms of a universal match (all skeletons), a
required meta-annotation or a creator ID. In fast split mode, all annotations
from the split skeletons are copied over to the split off part. In fast merge
mode, all annotations are taken over from a skeleton merged in without
confirmation. -
The
P
shortcut (peek) will now show the closest skeleton to the cursor in
all open 3D Viewers. To show the active skeleton useShift + P
. -
A move/navigation mode can now be used using the new (third) button in the
tracing tool bar. If enabled, no mouse based node actions will be performed
anymore. Left mouse button clicks/movements are handled like right mouse
button clicks/movements. -
The Split Neuron Dialog has now "select all" checkboxes for annotations.
Statistics widget:
-
Statistics widget: The new option "All" in the time unit selection control
allow to aggregate user data for the whole time range. -
The number of newly created treenodes is now displayed alongside the cable
length in the contribution table. -
Each user can now be included in an aggregate statistics row at the end of the
table by checking the checkbox in front of the username. -
Add extra Refresh button to top bar.
Volume widget:
-
The new link "List skeletons" in each volume table row allows to open a new
Selection Table containing all skeletons the bounding box of the respective
volume intersects. Due to large numbers of skeletons in bigger volumes, this
is currently mainly useful for smaller volumes. -
When creating box volumes, the new button "Define cube at
current location" allows to conveniently create a cube with a configurable
edge length at the current location.
Miscellaneous:
-
Basic Search: allow search for treenode IDs and connector IDs.
-
Project administration: selected projects can now be exported as JSON or YAML
file using the respective action from the drop-down menu. -
In addition to the '/apis' endpoint, the API documentation is now also
available as part of the general documentation. -
Connectivity Widget: partner header indexes can now optionally be replaced
with the neuron name and rotated by 90 degrees. -
The Keyboard/Mouse Help Widget has now a text filter, which allows to show
only items containing a particular text. -
The Tracing Overlay has a new setting "Allow lazy node updates", available in
the Settings Widget. If enabled (default), stack viewers can skip node updates
if a change didn't occur in the Viewer's field of view. This is useful when
e.g. the Connector Viewer is open while tracing, because not all viewers get
update due to the addition of a node. -
Selection Table: Skeletons can now be imported from CSV files.
-
The status bar shows now both stack space and project space coordinates of the
mouse cursor. -
The skeleton projection layer works now with orthogonal views.
-
Detailed review colors are now enabled by default. To get the old behavior
back, adjust your settings (admins can do this for the whole project or
server). -
Stacks can now be created whose planar axes have anisotropic resolution.
The stack viewer will display these stacks correctly by scaling tiles
separately along each axis. The tracing overlay is also compatible with these
stacks in all orthoviews. -
Added H2N5 tile source type.
-
Due to the new skeleton summary tables, some APIs are much faster now:
- Obtaining review info skeletons with /{project_id}/skeletons/review-status,
- API and connectivity information through /{project_id}/skeletons/connectivity,
- Listing skeletons with a minimum node count with /{project_ids}/skeletons/
- Getting skeleton node count with /{project_id}/skeleton/{skeleton_id}/node_count.
In consequence the following widgets became faster too: Connectivity Widget,
Selecting skeleton counts in the Statistics Widget, Review count based
coloring (e.g. in Graph Widget). Opening the Merge Dialog is also faster due
to this change.
Bug fixes
-
Reconstruction Sampler: 3D visualizations for interval preview and color mode
were sometimes wrong and showed additional intervals. This is fixed now.
Actual interval boundaries were not affected and are correct. -
Reconstruction Sampler: Individual intervals are not silently deleted anymore
if referenced start or end node is deleted. As consequence interval start and
end nodes can't be deleted anymore. -
Measurement table: no error is shown anymore after merging two listed
skeletons. -
Radio button drop-downs and checkbox drop-downs now hide on a mouse click
outside of the control. -
Review: fix node selection error appearing during review of some virtual
nodes. -
Tracing layer: when trying to create a second presynaptic node to a connector,
a warning is now shown instead of a full error dialog. Also the previously
created target treenode isn't created anymore in this case. -
Tracing layer: prevent browser context menu on tracing overlay right click.
API Changes
Additions
-
POST /{project_id}/treenodes/compact-detail
:
Retrieve treenode information for multiple nodes in the format of regular node
queries, accepts a parameter "treenode_ids". -
GET /{project_id}/treenodes/{treenode_id}/compact-detail
:
Retrieve treenode information for a single node. -
DELETE /{project_id}/landmarks/{landmark_id}/groups/{group_id}/
:
Delete landmark location links to the same locations from a landmark and
group. -
PUT /{project_id}/landmarks/groups/links/
:
Add new links between groups, e.g. "adjacent_to". -
DELETE /{project_id}/landmarks/groups/links/{link_id}/
:
Delete a single landmark group link. -
GET /{project_id}/landmarks/groups/{landmarkgroup_id}/transitively-linked
:
Get a list of landmark groups that are linked to the referenced group using a
passed in relation, respects reciprocal relations. -
POST /{project_id}/landmarks/groups/materialize
:
Create pairs of landmark groups along with their landmarks based on a simple
description. -
GET /{project_id}/skeletons/cable-length
:
Get the cable length for multiple skeletons using the skeleton_ids parameter. -
GET /{project_id}/skeletons/{skeleton_id}/cable-length
:
Get the cable length for a single skeleton. -
GET /{project_id}/skeletons/in-bounding-box
:
Get IDs of all skeltons that intersect with the passed in bounding box.
Modifications
-
POST /{project_id}/annotations/query-targets
:
Accepts now a "annotation_reference" parameter which can either be 'id'
(default) or 'name'. If it is set to 'name', all annotation references in
annotated_with, not_annotated_with and sub_annotated_with are interpreted as
annotation names instead of IDs. -
POST /{project_id}/skeleton/split
:
Returns now also the split location as fields x, y and z. -
POST|GET /{project_id}/node/list
offers a new optional parameter
"with_relation_map", which controls which relation map information is
returned. Can be 'none', 'used' and all with 'used' being the default. -
GET /{project_id}/landmarks/groups/
:
Accepts the new optional parameter "with_links", "with_names" and
"with_relations", to include links between landmark groups along with a list
of linked landmark names and a map of used relations -
GET /{project_id}/landmarks/groups/{group_id}/
:
Accepts the new optional parameter "with_names" to include landmark names
along with linked landmark locations. -
GET /{project_id}/stats/user-history
:
Returns actual node count in "new_treenodes" field, cable length is returned
in "new_cable_length" field (previously new_treenodes).
Deprecations
None.
Removals
None.