2018.07.19
2018.07.19
Contributors: Albert Cardona, Andrew Champion, Pat Gunn, Tom Kazimiers, Will Patton, Eric Trautman
Notes
-
Both the standalone Docker image and the Docker-compose setup can now be updated after a Postgres version change. This makes it possible again to use CATMAID versions after 2018.02.16 with Docker. The documentation has more information.
-
This is the last CATMAID version with support for Python 2.7. Starting from next version, only Python 3 will be supported.
Features and enhancements
Volume widget:
-
Add a "List connectors" link to each volume, to show all connectors in a volume bounding box.
-
The new "Min skeleton nodes" and "Min skeleton length" options allow to further constrain volume based skeleton selections ("List skeletons").
-
The Connector List widget that is shown when clicking on "List connectors", now supports connector filtering. The volume of the link's row is now automatically set as filter in the new Connector List widget. This means connector links in this table are now shown only if they intersect exactly with the volume (and not only with the bounding box like before).
-
State saving is now supported.
3D Viewer:
-
The line width of skeletons can be adjusted again on platforms other than Linux. This Requires "Volumetric lines" in the "View settings" tab to be enabled (it is by default). Unchecking this option brings back the previous line rendering behavior.
-
The new "Focus skeleton" button in the "View" tab will look at the active skeleton's center of mass from the current camea location.
-
Volumes can now be smoothed by subdivision. The volume option panel available from the View Settings tab now contains a "Subdivide" checkbox.
-
A volume's bounding box can now be displayed using the "BB" checkbox that is available for visible volumes in the volume option panel.
-
New coloring option: X/Y/Z rainbow lookup table coloring for active stack dimensions.
-
The active node respects now a node radius by default and is scaled to 1.5x its size. This behavior can be disabled using the "Radius adaptive active node" checkbox in the "View settings" tab.
-
Catalog export: use global neuron name for sorting and display by default.
-
Catalog export: support for multiple neurons per panel has been added (separate from pinned neurons). The export dialog contains now a "Skeletons per panel" input field. Essentially, the displayed skeletons can bow be iterated in batches.
-
Catalog export: individual skeleton panels can now also be exported as PNG instead of SVG, which reduces the file size, export time, parsing time. Plus it allows for an exact copy of what is shown in the 3D Viewer.
-
Catalog export: in orthographic mode it is now possible to export a scale bar on either none, the first or all exported panels.
-
If the estimated size of the tiles to load for a Z plane exceeds 100 MB, users are asked for confirmation.
Connectivity matrix:
-
Connector node filters can now be applied using the funnel icon in the widget title bar.
-
The new "Groups" tab allows to group rows, columns or both by their displayed name.
-
State saving is now supported.
Reconstruction sampler:
-
Different leaf handling strategies are now available to be selected for a sampler. The behavior so far (and current default) is to just ignore leaf segments that are shorter than the interval length minus the error margin. Alternatively, it is now possible to merge the leaf segment into the last interval, to create new shorter intervals for the leaf segments or, combining both, it is possible to try to merge it into the last interval and if that's not possible (e.g. on a small twig with no previous interval on the same segment), then create a new short interval. This option is available in the Sampler tab.
-
Both the domain table and the interval table now show the cable length of each domain and interval in nanometers, respectively. Additionally, the interval tab also show the aggregated cable length of all completed intervals.
Tracing layer:
-
The new option "Update tracing data while panning" allows to configure weather the tracing data on the layer will be updated when the view is panned around.
-
A set of new options allows now to configure a "tracing window", which will restrict tracing data loading by allowing it only in view centered rectangle. Width and height can be configured independently. This is useful for remote review and tracing.
-
A new option to show only the N largest skeletons in a field of view is now available for the layer settings (and the API).
Miscellaneous:
-
The behavior of the Ctrl modifier on section navigation with
,
and.
can now be inverted using the "Animate section change by default" option in the Settings Widget. -
Connectivity widget: annotations can now be used for additional filtering per partner table.
-
Split/merge dialog: the node count of the individual parts is now shown when hovering over their cable length information.
-
Review widget: the user who created the last node of each segment is now displayed in the review table. This allows to focus review on segments not created by oneself.
-
A skeleton cable length limit can be set so that a warning is displayed if a change to the skeleton morphology results in a cable length larger than the limit. This is available in the Warnings section of the Settings Widget.
-
Node filters: if a neuron name is provided for a rule, the rule is now valid for all neurons with neuron names that include the provided name and not only exact matches.
-
Neuron name display: neighboring duplicate name components are now removed by the default. This setting can be adjusted from the Annotation sections in the Settings Widget.
-
Boolean parameters for API endpoints are no case-insensitive, allowing the use of regular boolean values in requests from Python.
-
CLI exporter: the new
--excluded-annotation
parameter can be used to exclude neurons from the export based on annotations. -
CLI exporter: placeholder nodes are now exported as completely new skeletons that are not linked to their original skeleton, unless it is part of the set of exported skeletons or the
--original-placeholder-context
flag is provided.
Bug fixes
-
Measurements table: column headers in CSV export are now quoted.
-
Export management command: the default output filename can be used again.
-
Export management command: class instances and links of skeletons and neuronsa are now exported alongside treenodes.
-
Neuron name service: missing naming components don't lead to removal of all whitespace between neighbors anymore.
-
Initial skeleton coloring of merge dialog when merging from smaller into larger skeletons is fixed.
-
3D viewer: refreshing the active skeleton does not refresh all skeletons anymore.
-
3D viewer: connector restrictions like "show only shared connectors" now respect the pre/post visibility toggles in the Selection Table.
-
3D viewer: the initial text scaling for label text is now correctly set again.
-
Reconstruction sampler: during interval creation preview, only intervals from the currently active domain are now shown.
-
Graph Widget: when subscribed to other widgets, their skeletons are not removed anymore from the Graph Widget when the other widget is closed.
-
Neuron Search: annotation data range can be used again.
-
The Strahler number computation no correctly increases the Strahler number when two more children have the local maximum number rather than requiring all children to share the same number.
-
Radius editing: using undo (Ctrl + Z) after editing the radius of a node works message.
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.