New CATMAID release: 2018.07.19

Skip to first unread message

Tom Kazimiers

Jul 21, 2018, 11:13:27 AM7/21/18
Hi all,

We released a new CATMAID version two days ago, 2018.07.19:

You will find a list of changes as we well as some update notes at the
end of this email and on the website linked above. As always, please let
us know if you run into any problems, both as administrator and user.

If you update a CATMAID instance, please use the most recent commit of
the master branch in our GitHub repository, which includes all recent
bug fixes for this release:



Contributors: Albert Cardona, Andrew Champion, Pat Gunn, Tom Kazimiers,
Will Patton, Eric Trautman


- 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

- 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"

- 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

- 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

- 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).


- 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

- Export management command: class instances and links of skeletons and
neurons 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

- 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 now without an error message.

API changes


- `POST /{project_ids}/connectors/links`:
Accepts the same parameters as the GET variant, but allows for larger
skeleton_ids list.

- `POST /{project_ids}/skeletons/in-bounding-box`:
Accepts the same parameters as the GET variant, but allows for larger
skeleton_ids list.


- `GET /{project_id}/skeletons/in-bounding-box`:
The `min_nodes` and `min_cable` parameters can be used to further
filter the result. The `src` parameter can be 'postgis2d' and
'postgis3d', with the former being the default spatial query type. The
`volume_id` parameter can optionally be used to return the skeletons
in the bounding box of a specific volume, alternative to explicit
bounding box. Optionally, the `skeleton_ids` parameter can provide a
list of skeletons to test for intersections. Without it, all skeletons
in the project are considered.

- `GET /{project_id}/skeletons/{skeleton_id}/review`:
The user ID of each node is now returned as well.

- `POST|GET /{project_id}/node/list`:
Offers a new optional parameter "n_largest_skeletons_limit", which can
be used to constrain the returned neurons to only those of the N
largest skeletons in the result set.

- `POST /{project_id}/skeleton/connectivity_matrix`:
The new parameter 'with_locations' includes more data in the result
set. Each connector and its contributions to the link count is
returned as well.

- `GET|POST /{project_id}/skeletons/compact-detail`:
The new parameter 'format' can now be used to returned the skeleton
data in different formats. Supported are 'msgpack' and 'json'.

- `GET /{project_id}/skeletons/{skeleton_id}/compact-detail`:
The new parameter 'format' can now be used to returned the skeleton
data in different formats. Supported are 'msgpack' and 'json'.

- `POST /{project_id}/treenodes/compact-detail`:
The `treenode_ids` parameter is now optional and two new parameters
can be used instead: `label_ids` and `label_names`. They can be used
to constrain the result set by their labels. This effectively allows
querying treenodes and skeletons based on linked labels.

- `GET /{project_id/samplers/{sampler_id}/domains/`:
Returns now also end nodes for each domain.





Tom Kazimiers

Jul 21, 2018, 2:33:23 PM7/21/18
On Sat, Jul 21, 2018 at 11:13:11AM -0400, Tom Kazimiers wrote:
>We released a new CATMAID version two days ago, 2018.07.19:

I forgot to add: this is the last CATMAID release that will support
Python 2.7. The next release will only support Python 3 and recommend
Python 3.6 for now. All of our production setups run it already for a
while without problems. The development branch will make this change
probably soon. This means if you are still using Python 2, now is a good
time to create a new Python 3 based virtualenv for CATMAID. This can be
done e.g. like that:

cd <CATMAID-path>
virtualenv --no-site-packages -p /usr/bin/python3 django/env

And to activate it:

source django/env/bin/actiave

All dependencies have to be installed again in the new virtualenv.

pip install -U pip
pip install -r django/requirements.txt

Reply all
Reply to author
0 new messages