2017.07.28
2017.07.28
Contributors: Chris Barnes, Albert Cardona, Tom Kazimiers, Daniel Witvliet
Notes
-
Prepared statements can now also be used together with connection pooling.
-
A virtualenv update is required.
-
The following lines have to be removed from
settings.py
,import djcelery djcelery.setup_loader() INSTALLED_APPs += ("kombu.transport.django") BROKER_URL = 'django://'
-
Two new treenode and connector node providers have been added: postgis2dblurry
and postgis3dblurry. They works like the regular postgis2d and postgis3d node
providers except that they allow more false positives, because edges are only
tested for bounding box intersection with the query bounding box. Depending on
the dataset, this can help performance but might require a larger node limit.
Features and enhancements
Synapse Fractions:
-
New button "Append as group". Multiple neurons will be shown in a single column.
-
New UI functions to set the synapse confidence.
-
Default to Upstream (fractions for input neurons).
-
Shift-click to toggle selected state of partner neurons or groups, and then
push 'J' to create a new partner group. -
X axis labels can now be rotated, from the Options tab.
-
Node filters can now be applied to filter valid connector links.
3D Viewer:
-
New skeleton shading modes:
- "Axon and dendrite": like the coloring mode "Axon and dendrite", but using
shading like in the "Split at active node" mode. - "Single Strahler number": color branches of a specific Strahler number
in full color, and darken everything else. The Strahler number is specified
in the tab named "Shading parameters". - "Strahler threshold": color branches of a Strahler number equal or higher
than the number specifed in the Stahler number field ("Shading paramters"
tab) in full color, darken all others. When inverted, show in full color
branches with a Strahler number strictly lower than the specified one.
- "Axon and dendrite": like the coloring mode "Axon and dendrite", but using
-
The Z plane display now supports stack viewer layers. If multiple layers are
shown in a stack viewer, its Z plane will render all visible layers on top of
each other.
Review widget:
-
Large neurons are handled better, rendering tables with many segments is
now faster. -
The set of displayed columns can now be constrained with the help of the new
"Visible reviewers" setting in the widget. Available options are "All", "Team"
and "Self". -
A new option to automatically scroll the active segment into view has been
added ("Scroll to active segment"). With this enabled (default), when a node
of a segment of the reviewed skeleton is selected in the tracing layer, the
review widget will scroll the segment into view. -
State saving is now supported.
Node filters:
- A Strahler number filter has been added to only show nodes with a Strahler
value below/same as/above a user defined number.
Neuron Search:
-
It is now possible to use the "not" operator with neuron name and annotation
search criteria. -
Both neuron name and type columns can now be sorted.
-
Filters are now supported. Only neurons will be shown of which at least one
node is in the node filter result set.
Neuron History:
-
This new widget can be opened using Ctrl+Space together with the key
"neuron-history" or through a button in the Neuron Navigator. -
For all neurons added to this widget, time related information is presented.
Currently, the following is calculated: Tracing time, review time, cable
length before review, cable length after review, connectors before review and
connectors after review. -
The components that contribute to the tracing time can be adjusted with the
"Tracing time" drop down menu.
Reconstruction Sampler:
-
This new widget can be opened using Ctrl + Space and the keyword
"reconstruction-sampler". It allows to target reconstruction effort based on
the spatial sampling of a skeleton. This is mainly useful for large neurons
that can't be quickly traced to completion. The widget is organized as a
workflow that prevents skipping steps. -
To keep track of reconstruction progress, a so called sampler is created
for a skeleton of interest. This skeleton is typically the backbone of a
larger neuron. The sampler keeps track of some global properties for the
sampling. Once created, a sampler can be "opened" either by clicking "Open" or
by double clicking the respective table row. Also note that with a sampler
attached to a skeleton, the skeleton can not be deleted. If a skeleton should
be deleted, delete its samplers first. -
Once opened, a sampler allows creating so called sampler domains, which are
regions on the skeletons which should in principle be considered for sampling.
Topological and tag based definitions of sampler domains are possible. Created
samplers can be opened through a click on "Open" or a double click on the
table row. -
Once opened, sampler domains can be further divided in so called sampler
intervals. To do so the "Create intervals" buttons has to be pressed. These
have initially all the same length (defined in sampler) and no branches.
Intervals are meant to picked at random through the respective button. -
With an interval selected, the goal is now to reconstruct it to completion
with all branches and connectors. CATMAID will show a warning when moved out
of the interval. The workflow page will show both input and output connectors. -
As soon as the interval is reconstructed completely, a synapse can be picked
at random from which the next backbone can be reconstructed. Once the backbone
is found and reconstructed, the sampling can start over. Alternatively,
another interval in the original skeleton can be selected at random.
Miscellaneous:
-
Split/Merge dialog: the node count for both respectively remaining/new and
remaining/old are now on top of the annotation lists. -
The General Settings section of the Settings Widget now provides an option to
disable asking for confirmation when the active project is closed. -
Tile layers can now be configured to not automatically switch to the next
accessible mirror if the present one is inaccessible. This is useful for some
custom mirror use cases and can be set through the "Change mirror on
inaccessible data" checkbox in the layer settings. -
Empty neuron name pattern components are now by default trimmed automatically.
Empty components at the pattern endings won't leave any white space behind.
Empty components between other components are allowed one space maximum (if
there were spaces before). The difference is visible e.g. in the Graph Widget. -
URL-to-view links now allow selected connector nodes.
-
Adding a custom mirror will now by default disable automatic mirror switching
of the respective tile layer. Custom mirrors often come only with a subset of
the data, which currently triggers a mirror switch by default if some tile is
not accessible. -
The tracing layer is now faster with creating skeleton nodes, connectors and
partner nodes by avoiding unneeded node updates. -
Export widget: exporting neurons as NRRD files is now supported. The NAT R
package is used for this. Check documentation for setup. -
The tracing tool has now a button to refresh CATMAID's caches for neuron names
and annotations. This can be used to update neuron names with components that
were changed by other users. Additionally, such a cache update is performed
automatically once every hour. -
URLs to a particular view work now also with a location and a skeleton ID only
rather than requiring a node ID always. -
Using "Shift + x" and "Ctrl + x" will now activate a checkbox selection mode
and the cursor turns into a crosshair. In this mode one can draw a rectangle
everywhere on the screen and all checkboxes that are behind the rectangle will
be toggled using "Ctrl + x" (turned on if off and vise versa) or checked with
"Shift + x". Either releasing the drawing mouse click or a second "Shift + x"
or "Ctrl + x" will deactivate the tool again. -
All skeleton source widgets (typically those with a skeleton source drop-down
menu) now support copy and paste of skeleton models. Pressing "Alt + Ctrl + c"
in an active widget will copy its skeletons (along with colors) into a
clipboard. Pressing "Alt + Ctrl + v" in another widget will then paste those
models into the now active widget. -
When using the Z key to create new nodes, existing nodes are not as easily
selected from a distance anymore. Before, the radius around a click event was
too large and the closest node around the click was selected. Other nodes will
now only be selected if the mouse cursor is close to their circle graphic on
screen.
Bug fixes
-
Graph widget: re-layout works again.
-
The Docker image can be used again without requiring a manual restart of the
uWSGI server. -
Zooming in using the "=" key and using Shift + Z to join and create nodes both
work again. -
Links inside the simple Search Widget can be clicked again.
-
Back-end calls with large parameter lists can be used again (e.g. review
status in the Connectivity Widget). -
Highlighted tags in the Neuron Dendrogram widget are now correctly displayed
next to the nodes they belong to. Before, each tagged node had all selected
tags shown next to it, regardless of whether it would be tagged with them. -
3D viewer: the textured Z section rendering in the 3D Viewer now respects the
mirror setting from the tile layer. -
3D viewer: a memory leak in displaying Z sections with images has been fixed.
This allows long continued Z section browsing without crashing. -
3D viewer: the accurateness of object picking on neurons and location picking
on z panes has been improved. -
Cropping image data works again.
-
Setting a stack viewer offset won't cause an error anymore.
-
User interaction without a reachable server (e.g. due to a disconnected
network) doesn't lead to image and tracing data freezing anymore. -
Pressing key combinations before the tracing layer has loaded is now handled
more gracefully (no error dialog). -
3D viewer: the active node split shading can now handle changed virtual nodes
to which it is lacking information and won't raise an error. -
All newly opened widgets that support it, appear now in the "skeleton source"
drop-down menus of all other widgets from that moment on. This was a problem
mainly with Analyze Arbor, Measurements Table, Morphology Plot, Neuron
Dendrogrm and Treenode Table.
API Changes
Additions
None.
Modifications
-
POST /{project_id}/skeletons/import
:
The new 'name' parameter can be used to set the name of a new neuron. -
POST /{project_id}/annotations/query-target
:
A boolean 'name_not' parameter is now accepted to get results not matching the
name passed in with the regular 'name' parameter. Also, an integer list
parameter named 'not_annotated_with' is now supported. Like the
'annotated_with' list, it contains annotation IDs. Results will not have the
annotations passed in with thenot_annotated_with
list. -
GET /{project_id}/skeletons/{skeleton_id}/compact-detail
and
GET /{project_id}/skeletons/compact-detail
Accepts two new parameters: with_reviews and with_annotations. To also return
a list of reviews and a list of linked skeleton IDs respectively for each
returned skeleton. -
POST /{project_id}/volumes/{volume_id}/
Individual fields can now be updated selectively. Only fields that are passed
in as arguments will be updated. This allows for instance to only change the
name of a volume.
Deprecations
None.
Removals
None.