Skip to content

2018.04.15

Compare
Choose a tag to compare
@tomka tomka released this 16 Apr 04:39
· 3679 commits to master since this release
2018.04.15
477b88f

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 use Shift + 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:

    1. Obtaining review info skeletons with /{project_id}/skeletons/review-status,
    2. API and connectivity information through /{project_id}/skeletons/connectivity,
    3. Listing skeletons with a minimum node count with /{project_ids}/skeletons/
    4. 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.