Skip to content

2017.10.02

Compare
Choose a tag to compare
@tomka tomka released this 03 Oct 03:39
· 4426 commits to master since this release

2017.10.02

Contributors: Chris Barnes, Dylan Simon, Albert Cardona, Andrew Champion, Tom Kazimiers

Notes

  • A virtualenv update is required.

  • This release adds optional statics summary tables, which can increase the
    performance of project/user statistics significantly, but statistics will also
    be correct without them. The additional table keeps aggregated information
    about various user actions. To initialize this table, the following
    manangement command has to be run after the migration:

    ./manage.py catmaid_populate_summary_tables

    To maintain good performance, this command has to be run regularly, e.g.
    through a cron job or Celery every night. Because summary updates are
    incremental by default, they don't take much time to update.

  • CATMAID's Docker images changed: The existing catmaid/catmaid image is now
    only a base image that is used for a simple standalone demo image, available
    as catmaid/catmaid-standalone. Additionally, the base image is used in a new
    docker-compose setup, which can be used if persistent data is required. The
    documentation has been updared with all the details.

  • The Docker default port is now 8000 for both regular setups and docker-compose
    setups.

  • The data view "legacy project list" has been renamed to "simple project list".
    It now supports separate project title and stack title filters, which can be
    preconfigured using the data view config options "projectFilterTerm" and
    "stackFilterTerm". For both simple terms and regular expressions can be used.
    The filter input boxes can optionally be hidden by setting the "filter" config
    property to false.

  • Running periodic tasks is now easier and a default setup for cleaning up
    cropping data at 23:30 and update tracing project statistics at 23:45 every
    night is now available. All it needs is to run a Celery worker and a Celery
    beat scheduler. The documentation has more details.

  • The cropping output file file name prefix and file extension can now be
    specified from settings.py. The defaults are:

    CROPPING_OUTPUT_FILE_EXTENSION = "tiff"
    CROPPING_OUTPUT_FILE_PREFIX = "crop_"

  • CATMAID can now make use of a ASGI server to utilize WebSocket connections.
    Such a server (e.g. Daphne) needs to handle URLs that start with /channels/.
    Currently only messages can be updated this way, which already removes many
    requests for setups with many users. This allows for instance an immediate
    feedback after a cropping a sub-stack finished without requiring the client to
    check for new messages every minute.

Features and enhancements

Project/user statistics:

  • The widget should now be much faster.

  • Import actions are not counted anymore by default. The "Include imports"
    checkbox can be used to change this.

  • State saving is now supported.

Neuron history:

  • Events by different users are now collected in separate bouts to attribute
    parallel user activity. To restore the previous behavior (users are ignored)
    the "Merge parallel events" checkbox can be checked.

  • State saving is now supported

  • Individual neurons can be removed with the help of an "X" icon in the firs
    column.

  • A "total time" column has been added, which aggregates time across all active
    bouts formed by both tracing and review events. Since events are binnned in
    bouts, the total time is not just the sum of both tracing time and review
    time.

Node filters:

  • A Reconstruction Sampler interval can now be used as a node filter. This
    allows e.g. reviewing only an interval or look only at the connectivity of
    the interval.

Graph Widget:

  • Edge labels can now take different forms and can be configured in the
    properties dialog. There are two new label options available: "Fractions of
    outbound connections" and "Fractions of inbound connections". Instead of an
    absolute number they display the relative fraction. This works for both
    regular connections and connections involving groups.

Reconstruction sampler:

  • Intervals for a particular interval length can now be previewed before
    creating a new sampler. To do so, use the "Preview intervals" button in the
    Sampler tab.

  • Interval reviews can now be initiated directly from the interval step table.
    It will open a new review widget with pre-set interval filter and added
    skeleton. The same is possible from the synapse workflow step using the
    "Review interval" button.

Layouts:

  • The Stack View section of the Settings Widget allows now the configuration of
    a list of default layouts that can be applied to newly opened stacks and stack
    groups. Layouts are useful for having a reasonable default configuration of a
    newly opened CATMAID workspace including stacks and stack groups.

  • Layouts mimic nested function calls and are constructed from v(a,b) and h(a,b)
    elements for vertical and horizontal splits, o(a) for optional windows, where
    a and b can each be other v() or h() nodes, one of [XY, XZ, ZY, F1, X3D] or any
    quoted widget handle (e.g. "neuron-search", see Ctrl + Space). At the moment,
    in o(a), "a" can't be XY, XZ or ZY. To reference the 3D Viewer use X3D.

  • By default only one layout is available: organize XY, XZ and ZY in four
    quadrants using one additional window (if non available the help page). This
    is its specification: h(v(XY, XZ), v(ZY, o(F1))). With h() and v(), horizontal
    and vertical splits are declared, respectively. With o(F1) a help window will
    be opened as fourth window if not already another window exists.

  • Useful for organizing orthogonal views in a custom way and to create default
    workspaces. For instance, to always open a Neuron Search widget right to the
    a single XY view stack, the layout can be used: h(XY, "neuron-search").

CATMAID extensions:

  • As well as supporting standalone 3rd party static files, CATMAID now supports
    fully-featured extensions, which can include database models, API endpoints,
    and tests as well as static files.

  • CATMAID extensions are Django apps which follow a particular layout, and can
    be installed with pip

  • The goal is for CATMAID extensions to be reusable and interoperable
    between versions and installations of CATMAID, reducing the need to fork it
    and keep the fork updated in parallel.

  • More details can be found in the docs.

3D viewer:

  • Volumes can now be filtered in the volume drop-down menu with the help of a
    built-in text box.

Miscellaneous:

  • The Open Widget dialog now displays a table that includes more information on
    widgets. Instead of the previously used auto-completion this table is now
    filtered.

  • If multiple tile layers are used, the stack viewer layer settings (blue white
    box in lower left corner) allow to set which stacks should be respected if
    broken sections are skipped. This can be done through the "Skip broken
    sections of stacks" drop-down menu. Whether layers added after the first layer
    should be respected by default when checking for broken sections can be set in
    the Settings Widget in the "Stack view" section.

  • The dialog to add a new annotation displays now the existing annotations as
    well.

  • Tabbed windows: changing window aliases are now reflected in tab headers.

  • The performance of node creation and deletion operations has been improved by
    preventing full node updates after these operations.

  • Widgets with state saving support now also support removing previously saved
    states through a button in the widget controls available through the window
    icon in the widget title bar.

  • The Selection Tool (the first icon in the top bar) has been removed, because
    it didn't provide any functionality. It is replaced by an icon to show the
    "Open Widget" dialog, which can otherwise be shown using Ctrl + Space.

  • When splitting a skeleton on a virtual node, the virtual node will now only be
    instantiated if the user presses OK in the dialog, canceling won't cause a
    change of the virtual node.

  • The default for hiding tile layers if the nearest section is broken (instead
    of showing the next available) can now be configured from the Settings Widget
    in its Stack View section.

  • plotly.js, a d3-based plotting library, is now available within CATMAID,
    making it much easier to generate common plots.

Bug fixes

  • Review widget: moving in reverse direction from a virtual node doesn't show
    error anymore.

  • Review widget: the Shift + Q key combination to select the next unreviewed
    node in downstream direction is respected again.

  • Review widget: Shift + W and Shift + Q work now correctly if the first
    unreviewed node is a virtual node.

  • Key combinations involving the Alt key were not respected on Mac OS. This is
    fixed now.

  • Reconstruction sampler: the list of connectors in the selected interval of the
    synapse workflow step is now complete when refreshed.

  • 3D viewer: the error shown when changing skeleton properties with an active
    connector restriction is fixed.

  • The neuron history widget now calculates both tracing time and review time
    correctly.

  • 'Peek skeleton' (P key) works again.

  • The Split Skeleton Dialog updates the embedded 3D view again after all
    skeletons are loaded.

  • Former partner nodes of deleted connector nodes can now be deleted without an
    additional tracing layer update.

  • The Skeleton Projection Layer can now use the skeleton source colors and other
    colors source again.

  • The simple front end data view's project filter works again

  • Skeleton source subscriptions: opting in and out of applying color changes in
    source skeletons to existing target skeletons works again.

  • Dragging nodes in stacks with smaller resolutions (larger nm/px) doesn't
    require large drag distances anymore, before the move is registered.

  • Node selection works now reliably with orthogonal views, including using the
    "G" key.

API Changes

Additions

  • GET /{project_id}/samplers/domains/intervals/{interval_id}/details:
    Get detailed information about a particular interval.

  • GET /{project_id}/neurons/:
    List all neurons in a project. Optionally, the parameters created_by,
    reviewed_by, from, to and nodecount_gt can be provided.

Modifications

  • POST /{project_id}/treenodes/{treenode_id}/info:
    This API endpoint is changed to only accept GET requests. Using POST will
    raise an error.

  • GET /{project_id}/stats/nodecount:
    The response format changed. Now a dictionary mapping user IDs to node counts
    is returned.

  • GET /{project_id}/stats/editor:
    The response format changed. Now a dictionary mapping user IDs to the number
    of edited nodes is returned.

  • GET /{project_id}/projects/export:
    Stacks include now also their translation and orientation relative to project
    space.

Deprecations

  • GET /{project_id}/annotationdiagram/nx_json:
    This API has a confusing name, because it uses 'annotation' differently than
    others. There are different APIs available to get skeleton IDs and treenode
    IDs.

Removals

None.