Skip to content

Releases: catmaid/CATMAID

2016.08.12

12 Aug 06:24
Compare
Choose a tag to compare

2016.08.12

Contributors: Andrew Champion, Tom Kazimiers

Notes

  • Release 2016.08.09 is deprecated. If you have it installed, please upgrade to this version, 2016.08.12.

Features and enhancements

Tracing overlay:

  • Node tags now respect visibility groups.

3D viewer:

  • Exporting an animation will now use the rotation axis selected in the regular widget controls.

Bug fixes

  • The browser link preview no longer obscures the status bar when hovering over the tracing layer.
  • Node tags are correctly hidden when holding Space.
  • Fixed an error that could sometimes happen on page load for anonymous users.
  • Missing documentation for curent volumes features added to website.

2016.08.09

09 Aug 05:34
Compare
Choose a tag to compare

2016.08.09

Contributors: Albert Cardona, Andrew Champion, Tom Kazimiers

Notes

  • A virtualenv upgrade is required.
  • PostgreSQL 9.5 and PostGIS 2.2 is now required. When updating, update PostGIS
    first and update all databases in which the PostGIS extension is installed by
    running "ALTER EXTENSION postgis UPDATE;". Then perform the Postgres update.

Features and enhancements

Tracing overlay:

  • Visibility groups can be defined that hide or show nodes in the overlay
    based upon filtering criteria such as neuron meta-annotations or node
    creator. Unlike the skeleton source based visibility, visibility groups can be
    toggled instantly with HOME (for group 1) or Shift + HOME (for group 2). For
    meta-annotation based visibility, this does not require using a search as a
    skeleton source, and the set of skeletons matched by the meta-annotations is
    transparently refreshed in the background. Another visibility group,
    "Always visible", establishes a set of filters for overriding hidden groups
    such that skeletons matched by these filters will always be shown.
  • The active node color for virtual nodes can now be configured to be different
    than for read nodes.
  • The active node color for suppressed virtual nodes can be configured to be
    different than for unsuppressed virtual nodes. Note this only takes effect
    if the "Respect suppressed virtual nodes during navigation" setting is
    enabled.

3D viewer:

  • Through the "List connectors" button on the Main tab, it is now possible to
    open a connector selection with all currently loaded connectors in it.
    Skeleton visibility and connector restrictions are respected.

Importer:

  • Projects and stacks available on remote servers can now be imported,
    optionally with API-key authentication on other CATMAID instances. The remote
    data source can of course be any URL in a JSON or YAML format understood by
    CATMAID. The import section in the CATMAID documentation holds more detail on
    this. For CATMAID, the new "projects/export" endpoint provides all required
    data that is visible to the requesting user.

Graph widget:

  • The new button "Open Connectivity Matrix" in the Export tab will open a new
    Connectivity Matrix widget for the current graph, including its groups.

Connectivity matrix:

  • It is now possible to manually change the order of multiple entries at once,
    which is useful to move sets of entries. The "Display" tab now has a "Manually
    edit order" option. If checked, number input boxes are shown next to each row
    and column head as well as a "Re-order" button in the top-left cell if the
    table. After the numbers are adjusted to the desired order, the "Re-order"
    button will apply the new ordering. Negative and decimal numbers can be used.
  • Connectivity matrices can now be exported as PDF. The "Export PDF" button on
    the "Main" tab will open a dialog explaining that this PDF export is made
    through having the browser print the table and how to enable colors. Pressing
    "Print" will show the browser's print dialog for only the table.

Settings widget:

  • Tracing overlay colors customized in the settings widget are now persistent.
  • Neuron name settings customized in the settings widget are now persistent.
  • The delimiter used to separate annotations in a neuron name can now be
    configured in the Annotations section of the Settings Widget.
  • It is now possible to configure the available page length options used by
    most tables from a central place. This is done through the "Table page length
    options" setting, which is available from the Settings widget. For widgets to
    be aware of page length setting changes, they have to be reloaded.

History tables:

  • Starting with this release, CATMAID will record every single change to its
    database tables in so called history tables. This makes it possible to
    reconstruct the actual history of data (e.g. neurons) and user contributions.
    Even data deleted in CATMAID can now be recovered without touching backups.
  • The log widget in the front-end provides a way to few the history: It has a
    new tab called "History", where each event that caused related database
    changes is listed.

Miscellaneous:

  • Alt + Y will always create a new selection table and add the active neuron
    to it. Also works with Shift.
  • Images on CATMAID's front-page are now loaded lazily, i.e. they are only
    requested and shown once they come into view. This improves performance
    significantly when displaying many sample images.
  • New filter "Label Color Map" will false-color stacks of label ID images.
  • The button "Add annotations to neurons" above annotation lists in the
    Neuron Navigator makes it possible to send currently selected
    annotations to other neurons. Those target neurons are selected by
    choosing a skeleton source in a dialog box, which is shown to the user
    once the button is pressed.

Bug fixes

  • Additive blending between layers now works also when filters are in use. This
    allows for proper in-browser composite generation.
  • Hidden nodes are no longer selected by G or Shift + Y.
  • All skeleton sources are now selectable when exporting NeuroML.
  • Fix "Reset to inherited default" and "Lock this setting" buttons in settings
    controls not being clickable.
  • All layouts of the color picker can be used again (i.e. resizing it).

API Changes

Additions

  • GET projects/export:
    Provides all available information on the structure and properties
    of projects and stacks. Supports application/json and application/yaml
    content types. A return YAML document matches the format supported by
    the importer.
  • POST /{project_id}/connector/info:
    This endpoint replaces the /{project_id}/connector/pre-post-infos endpoint.
    The pre and post parameters are now optional.
  • POST /{project_id}/neurons/from-models:
    Get the IDs of all neurons modeled by a list of entities, e.g. skelton IDs.
  • POST /{project_id}/skeletons/import:
    Import a neuron modeled by a skeleton from an uploaded file. Currently only
    SWC representation is supported.
  • GET /{project_id}}/transactions/
    Get a list of transaction objects, ordered by time (latest first). A sub-range
    can be specified optionally.
  • GET /{project_id}}/transactions/location
    Get a location representing the change in a given transaction. Returns error
    if no location was found.

Modifications

  • GET /projects/:
    Does not include the catalogueable property of projects anymore. Use
    ontology queries to filter by the "driver_line" class for the same
    semantics.
  • POST /{project_id}/annotations/forskeletons:
    Parameter skeleton_ids now correctly parses with and without explicit
    indices.
  • POST /{project_id}/annotations/query:
    Parameter object_ids now correctly parses with and without explicit
    indices.
  • POST /{project_id}/annotations/query-targets:
    Parameter types now correctly parses with and without explicit indices.

Deprecations

None.

Removals

  • POST /{project_id}/connector/pre-post-info:
    This endpoint was renamed to /{project_id}/connector/info endpoint.

2016.05.26

26 May 20:44
Compare
Choose a tag to compare

2016.05.26

Contributors:: Albert Cardona, Andrew Champion, Tom Kazimiers

Notes

  • The default image base setting for the importer has changed. If you use the importer along with this setting, please update your settings.py file to now use IMPORTER_DEFAULT_IMAGE_BASE instead of CATMAID_IMPORT_URL. The semantics stay the same.

Features and enhancements

Graph widget:

  • If a skeleton is appended that already exists in a group, the group's color and label now doesn't change anymore. Instead a info message is shown.
  • Selected edges can now be removed with the help of the "Remove" button in the "Selection" tab. Also, a help text icon has been added to the title bar. The widget help window currently only contains information on how edges/links between nodes can be hidden.

Volume widget:

  • Preview for alpha shapes is now disabled by default due to its potential re-computation cost.
  • Convex hull and alpha shape meshes are now only automatically re-generated on property changes if preview is enabled.
  • Saving a new volume makes sure the volume's mesh is up-to-date and will re-generate it if needed. Re-generations will now also show an info dialog. If no mesh could be generated, saving is not allowed and the edit form will stay open.
  • Two new filters for convex hulls and alpha shapes are now available: "only end nodes" (optionally including the root) and "only branch nodes". These will restrict the base point set for volume generation.
  • Alpha shapes now use the inverse of the alpha value used so far. This makes it easier to use since it translates directly into nanometers.
  • If a synaptic connection filter is used with Alpha shapes and convex hulls, it is now possible to select all synaptic nodes, regardless of the partner skeleton (select "None" as partner neurons), and to select both pre- and post-synaptic nodes at the same time.
  • Alpha shapes now use a different implementation which takes a little bit more time to compute, but doesn't require re-computation if different alpha values are used. This makes finding a good alpha value much quicker. The input field for the alpha value to use is now also a numeric field in which arrow keys and mouse wheel can be used to change the value. A second numeric input allows to change the step size of alpha value changes.
  • For preview, volumes now use the color and opacity defined in the 3D viewer.

Tile layer:

  • An efficient browsing mode is now available that will not load tiles at the periphery of the stack viewer. This is useful to reduce data use and browsing latency on bandwidth-limited connections. To use this mode, increase the "Tile area efficiency threshold" in the tile layer controls.

3D viewer:

  • Meshes and volumes can now optionally be displayed with visible faces instead of wireframe only.
  • Volume list is now updated when new volumes are added, re-opening the widget is not required anymore.
  • Transparent volumes are now displayed correctly.

Miscellaneous:

  • If a client tries to perform an operation without having the most recent data available and the performed action is canceled, a more helpful dialog is now shown. It explains the situation and offers to refresh the client view (currently only nodes in the tracing layer are refreshed).

Administration:

  • The image data importer available from CATMAID's admin interface supports now the specification of stack groups. It can also apply custom translations when mapping imported stacks to imported projects.

Bug fixes

  • Creating nodes using the Z key without other nodes in close proximity works again.
  • Zoom level slider initialized correctly for stacks with eight zoom levels.
  • Showing connector info for edge in Graph widget (Alt+Click) now works also if the source is a single neuron and the target a group or split node.
  • Activate target node of a joined-in skeleton again.

API changes

Additions

None.

Modifications

None.

Deprecations

None.

Removals

None.

2016.04.18

18 Apr 04:15
2016.04.18
Compare
Choose a tag to compare

2016.04.18

Contributors: Albert Cardona, Andrew Champion, Tom Kazimiers

Features and enhancements

Miscellaneous:

  • The skeleton projection layer can now draw the colors used from the selected
    source. This is now the default and can be changed in the settings widget with
    the help of the "Use source colors" checkbox.
  • Unavailable images on CATMAID's front pages are now displayed as a gray
    placeholder box, instead of the broken image icon of the browser.
  • A new volume type was added: alpha shapes can now be created in practically the
    same way as convex hull volumes are created. Alpha shapes have one additional
    parameter: alpha. It is used to filter edges for result mesh and has to be
    fairly low with our spatial dimensions. Values around 0.00001 seemed to work
    well in some cases. The preview of alpha shapes is disabled by default, because
    they can take much longer to compute.
  • Materialized virtual nodes have now the correct edition time set, which make
    operations like adding a child to a virtual node work again (state checks
    prevent this with wrong edition time).
  • The neuron search will now show a warning and cancel a search if a query
    annotation doesn't exist and the query term doesn't start with a forward
    slash (used for regular expressions).

Bug fixes

  • Creating synaptic connections from connector nodes across sections works
    again.
  • Inserting a node along an edge will now render correctly right after using
    ctrl+alt+click.
  • Merging two skeletons while the losing skeleton was loaded into another widget
    (e.g. Selection Table) doesn't trigger an error anymore.
  • Undoing confidence changes works again.

2016.04.15

15 Apr 14:56
Compare
Choose a tag to compare

2016.04.15

Contributors: Albert Cardona, Andrew Champion, Daniel Witvliet, Stephan Gerhard, Tom Kazimiers

Notes

Starting with this release CATMAID uses a new database migration system. To
update an existing CATMAID instance safely, please follow these steps:

  1. Make sure you have CATMAID updated to the last release (2015.12.21),
    including all database migrations and up-to-date Python packages.

  2. Upgrade to this version (or a newer one) and update pip and all Python
    packages (in within your virtualenv), South can be removed afterwards:

    pip install -U pip
    pip install -r requirements.txt
    pip uninstall south
    
  3. Remove the following variables from settings.py file (in
    django/projects/mysite/): TEMPLATE_DIRS, TEMPLATE_DEBUG

  4. Fake initial migrations (and only the initial migration!) of the
    contenttypes app and apply its other migrations:

    python manage.py migrate contenttypes 0001_initial --fake
    python manage.py migrate contenttypes
    
  5. Fake initial migrations (and only the initial migrations!) of all used
    Django applications to register current database state:

    python manage.py migrate admin 0001_initial --fake
    python manage.py migrate auth 0001_initial --fake
    python manage.py migrate authtoken 0001_initial --fake
    python manage.py migrate catmaid 0001_initial --fake
    python manage.py migrate djcelery 0001_initial --fake
    python manage.py migrate guardian 0001_initial --fake
    python manage.py migrate kombu_transport_django 0001_initial --fake
    python manage.py migrate performancetests 0001_initial --fake
    python manage.py migrate sessions 0001_initial --fake
    python manage.py migrate sites 0001_initial --fake
    python manage.py migrate taggit 0001_initial --fake
    
  6. In the future no syncdb step is required anymore. Continue with the rest of
    the regular update procedure:

    python manage.py migrate
    python manage.py collectstatic [-l]
    

This procedure will only be required for upgrading an existing instance to a
release newer than 2015.12.21. It won't be needed to migrate from newer
releases.

Also note that if you are running an Apache/mod_wsgi setup (or referencing
django.wsgi), you have to re-generate your configuration with:

   ./django/create_configuration

Additionally, PostgreSQL is now required to be of version 9.4.

Features and enhancements

Tracing overlay:

  • Colors of skeleton nodes and edges in the tracing overlay can now be
    configured to follow colors from selection tables. To configure which
    skeleton sources to use to select colors, click the skeleton source control
    icon (the gear) in the title bar of the stack viewer.
  • Visibility of skeletons in the tracing overlay can also be controlled by
    skeleton source subscriptions. To enable this, check "Hide skeletons not
    in the skeleton source subscriptions" in the Settings widget under Tracing
    Overlay > Skeleton colors. Note that it the tracing overlay may not update
    the visibility of some skeletons until a navigation action is performed.

Gap junctions:

  • A new non-directional connector type for gap junctions can now be created
    when tracing by Alt + clicking in the tracing overlay. Edges for gap
    junctions are displayed in purple.
  • Gap junction partners can optionally be displayed in a separate table in the
    Connectivity Widget by checking "Show gap junctions". This table has its
    own selections for confidence and count thresholds.

Volumes:

  • The volume widget can create a new volume type: convex hulls. These can be
    created around a set of nodes from any skeleton source. Different filters can
    be combined: filters to allow only nodes that have a certain tag, a sub-arbor
    relative to such nodes (optionally occurring a definable number of times), a
    region between two tags tag or nodes that are synaptic to skeletons of another
    skeleton source. Node radii can optionally be ignored, but they are respected
    by default. A preview of the current filter set can be displayed in the first
    available 3D viewer.

D Viewer:

  • Gap junctions are displayed like synapse edges in purple.
  • Stack related settings (bounding box, missing sections and z planes) are now
    moved to a tab called "Stacks".
  • Stack bounding boxes and missing sections now update when stack viewer focus
    changes.
  • A new sphere shading allows for a better depth perception.
  • Volumes (created in the Volume Widget) can be displayed. A new selection
    control in the "View settings" tab allows to select individual volumes. They
    are colored the same way as they regular mesh. Currently, the color isn't
    updated on purpose to allow the easy creation of differently colored volumes.
  • When the current Z plane is displayed, it will now have the section's images
    data mapped to it. The used zoom level (resolution) and the opacity can be
    adjusted and orthogonal stacks are supported, too.
  • When restricting connectors to those shared by groups, you can now choose
    to include only those linking pre->post between the two groups in a specific
    direction.

Skeleton Projection layer:

  • Instead of supporting only the display of the active skeleton, the projection
    layer can now subscribe to other skeleton sources and display multiple
    skeleton projections at the same time. The used source can be selected in the
    Settings Widget. This way, for instance, a Selection Table could provide input
    to the projection layer and effectively control which skeletons will be
    projected. And Through its own subscriptions, the Selection Table could even
    provide a dynamic list that includes the active node.

Neuron Search:

  • A search result can now be exported as CSV. Only selected rows are exported.
    The resulting CSV will contain neuron IDs and neuron names. If annotations are
    displayed, a third column includes annotations.

Undo:

  • Some actions are now stored as so called commands in a history, which can be
    displayed in a dialog by pressing the F9 key. Commands in this history can are
    reversible. They can be undone either through the history dialog or by pressing
    Ctrl+Z.
  • Through the history dialog, undone commands can also be redone. Of course,
    once one diverges from the list of previously undone commands by executing a
    completely new command (e.g. creating a node), redo is not possible anymore.
  • The following actions are recorded into history: tag add/remove/edit,
    annotation add/remove/edit, node radius edit, neuron rename, confidence
    change, connector link/unlink and node add/insert/move/remove/.

Ontologies, classification and clustering:

  • Ontology tool widgets don't reset each other anymore if they are loaded.
  • The Classification Editor and Ontology Editor open sub-trees now quicker.
  • Clustering ontology based classifications is much faster and works for
    multi-level ontologies on thousands of classification graphs.

Administration and Performance:

  • The return type of many performance-critical queries, like querying nodes
    for the tracing overlay, is now correctly specified as 'application/json'
    rather than 'text/html'. Make sure your nginx has gzip enabled for the
    'application/json' type in its 'gzip_types' setting so that these responses
    are compressed.

Miscellaneous:

  • Dragging a window into the center of another window now creates a tabbed
    window where both windows share the same area of the screen and can be
    switched between using tabs at the top of the window. Additional tabs
    can be added by dragging more windows into the center of the tabbed window.
    The active tab can be removed from the tabbed window by dragging it to
    another location in the window layout.
  • Dragging a window onto the top, left, bottom, or right edge of an already
    tabbed window while holding SHIFT will add it to that location inside the
    tab.
  • There is now a setting to invert the behavior of CTRL when navigating
    parent/child topology, i.e., when enabled [ and ] will navigate to the
    next real node by default, while holding CTRL will go to virtual nodes.
  • Which layers are hidden when Space is held is now configurable by checkboxes
    in the Stack Viewer's layer controls.
  • Scroll bar positions in widgets are now maintained when they change their
    size.
  • Non-superusers can now see user analytics and proficiency reports for
    projects for which they are administrators.
  • WebGL layers are now compatible with DVID stacks.
  • Tile layers now have an option in the layer controls to hide the tile layer
    if the nearest section is marked as broken, rather than the default behavior
    of displaying the nearest non-broken section.
  • Clustering over large sets of ontology based classification is now much faster.

Bug fixes

  • The skeleton projection layer can be used again and now renders lines with the
    same width as the tracing layer. This width can be configured in the settings
    widget.
  • Color pickers will now update the color of color picker enabled DOM elements
    again.
  • Fixed hiding edges with less than 2 synapses in the Graph Widget resulting
    in no edges.
  • Fixed an issue where cloning the Graph Widget cloned into the wrong widget.
  • Fixed an issue preventing removing split neurons from the Graph Widget.
  • Fixed an intermittent exception when renaming neurons.
  • Fixed a second Neuron Search widget not working properly.
  • Adding a neuron to a Selection Table now re-runs the sorting scheme.
  • Fixed Connectivity Matrix cloning.

API changes

Additions

  • GET /{project_id}/labels/[treenode|connector]/{label_id}/:
    Returns a list of labels for a node.
  • GET /{project_id}/connectors/{connector_id}/:
    Returns information on a connector and its partners.
  • POST /{project_id}/skeletons/within-spatial-distance:
    Find skeletons within a given L-infinity distance of a treenode.

Modifications

POST /{project_id}/skeletons/connectivity:

  • Response object now includes gapjunctions and `g...
Read more

2015.12.21

21 Dec 19:03
2015.12.21
Compare
Choose a tag to compare

2015.12.21

Contributors: Albert Cardona, Andrew Champion, Eric Trautman, Tom Kazimiers

Features and enhancements

Selection table:

  • A new option ("Append with batch color") allows to override the color and
    opacity of appended skeletons with the current batch color and batch opacity.
    It is deselected by default.
  • Clearing the table doesn't ask for confirmation anymore. This has been removed
    for consistency with other widgets and because of the now available option to
    save/open skeleton lists.

New widget "Synapse Distribution Plot":

  • For one or more neurons, plot distances of postsynaptic sites relative
    to an axon initial segment, represented by a skeleton node that is either
    computed or given via text tags.
    Each row represents the inputs contributed by a presynaptic arbor.
    Presynaptic arbors (rows) are sorted from more to less synapses.
    Presynaptic arbors can be filtered (i.e. hidden away) by a threshold
    on the number of inputs each provides, or by being listed in another
    widget that has selected skeletons.
    Individual synapses take by default the color of the postsynaptic arbor
    (that is, the arbors added via "Append"), but can be colored as well
    according to neuron colors in another widget.
    Click on an individual postsynaptic site to go to the corresponding
    skeleton node.
    Click on the legend to jump to the skeleton node representing the
    axon initial segment, relative to which all distance measurements
    where made. All presynaptic neurons are available in a separate
    skeleton source for each widget to pull neurons from.

New widget "Synapse Fraction":

  • For one or more neurons, render a normalized stacked bar chart with
    the number of synapses for/from each partner skeletons (directly either
    upstream or downstream). Can group partner skeletons: add groups by
    selecting a skeleton source (another widget listing skeletons).
    Click on the legend to edit (title, color) the group, or remove it.
    Click on the legend to go to the nearest node in the partner skeleton.
    To open this new widget, open a connectivity widget and push the
    button named "Open partner chart".

Settings widget:

  • Persistent settings are now scoped, so that default settings may be
    configured for an entire CATMAID instance ("global"), for each project
    ("project"), for each user ("user"), and for each user for each project
    ("session"). Only administrators have access to change project settings,
    and only superusers have access to change global settings. This allows,
    for example, administrators to set up recommended defaults for projects so
    that users only need to adjust their settings where their preferences differ
    from the project defaults. A selection box for which scope to adjust is
    at the top of the settings widget. Persistent settings will display
    information about scopes and defaults when hovering over them with the cursor.
  • Administrators may also lock persistent settings so that global or project
    defaults can not be changed by users.

Graph widget:

  • In the main tab, a new remove button removes skeletons in the selected
    skeleton source from the graph.

3D Viewer:

  • Added new buttons under the "Export" tab to export connectors and synapses
    as CSV. And Skeletons are now exported to CSV with a new column, the radius
    at each skeleton node, and another new column for the neuron name as
    rendered by the NeuronNameService (controlled by the Settings).
    The connectors CSV contains, for each row, the connector ID, the treenode ID,
    the skeleton ID and the relation ID, mimicking the treenode_connector table.
    The synapses CSV exports two files:
    1. The skeleton ID vs the neuron name
    2. The list of synaptic relations of any arbor visible in the 3D Viewer,
    with columns for the presynaptic skeleton ID, its treenode ID emitting
    the synapse, the postsynaptic skeleton ID, and its treenode ID that
    receives the synapse.

Review system:

  • Creation, deletion, and edition of synapses and relations now causes related
    nodes to become unreviewed. Changes to presynaptic relations or the connector
    itself cause all related treenodes to become unreviewed, while changes to
    postsynaptic relations affect only that specific related treenode. Changes
    to other connection relations (abutment, etc.) behave like presynaptic
    relations, propagating to all related treenodes.

Skeleton source subscriptions:

  • So far some widgets allowed to synchronize their skeleton list along with
    individual property changes. This was done through a "Sync to" selection which
    pushed this information to other widgets. This has now been replaced with a
    subscription option. Many widgets allow now to react to changes in skeleton
    lists in other widgets. Widgets supporting this got a new small chain icon in
    their title bar with which a subscription management user interface can be
    shown and hidden. Widgets that contain multiple sources, like the connectivity
    matrix, have one icon per source. A hover title will show which one to use for
    each source.
  • The UI allows to add subscriptions to multiple sources which can then be
    combined through set operations. Currently sources are combined in a strict
    left-associative fashion from top to bottom of the list. When "Override
    existing" is checked, widget local skeletons are not used when subscriptions
    are refreshed and will subsequently be removed. Otherwise, the local set is
    united with the first subscription before all other subscription sources are
    applied.
  • The scope of individual subscriptions can be adjusted: By default each
    subscription reacts to skeletons added, removed and updated in a source. The
    "Filter" selection allows to listen to only one of these events. For instance,
    subscribing to the active skeleton with the "Only additions" filter, allows to
    collect skeletons selected active skeletons without removing them again from
    a widget.
  • By default, only selected skeletons are subscribed to. This means if a
    skeleton becomes unselected in a source it is removed from the target widget.
    If the "Only selected" checkbox is unchecked, also unselected skeletons are
    added to a target widget. They are removed when skeletons are removed from the
    source and their selection state is synced.
  • All widget still feature the "From [Source] Append/Clear/Refresh" work-flow.
    The subscription UI's "Pull" button does the same as the regular "Append"
    button: a one-time sync from a source.

Miscellaneous:

  • Many tracing widgets now allow a user to hide their controls. A little gear
    icon in their title bar toggles their visibility.

  • Rather than only specifying annotations that are used as successive
    fallbacks for labeling neurons, neuron labels can now be specified as
    arbitrary combinations of annotation-based components using a format string.
    This is still configured in the annotations section of the settings widget.

  • Volumes can now be edited when clicked on in the volume widget. This will also
    display the edited volume as layer in the active stack viewer.

  • Moving a node in the tracing overlay now updates its position in the database
    as soon as the mouse is released, rather than waiting until the section
    changes.

  • Changes to the CATMAID API are now documented in API_CHANGELOG.md.

  • A docker image of a running CATMAID instance is now available for
    evaluating or developing CATMAID without needing to perform a complete
    install. The latest release is available via the "stable" tag, and the
    current development version is available via the "latest" tag. To try it:

    docker run -p 8080:80 aschampion/catmaid
    

    Then point your browser to http://localhost:8080. The default superuser has
    username "admin" and password "admin".

Bug fixes

  • API testing URL generated by Swagger (used for the API documentation at /apis)
    now respect a sub-directory that CATMAID might run from.
  • Fixed near active node shading in the 3D viewer.
  • Pre- and post-synaptic edges in the tracing overlay now update when dragging
    a related treenode.

API changes

The CATMAID API now authorizes requests using an API token tied to your
account instead of your username and password. To obtain this token,
open the CATMAID client in your browser, hover your cursor over your name
(next to the "Logout" link), and click "Get API token". As a security measure,
you will be prompted to re-enter your password, then shown your token string.

To use the API token, set the HTTP X-Authorization header on all of your
API requests to be 'Token', a space, and the token string, e.g.:

X-Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

Additions

  • GET /projects/:
    List projects visible to the requesting user.
  • GET /client/datastores/:
    List key-value store datastores used by the client.
  • POST /client/datastores/:
    Create a key-value store datastore for the client.
  • DELETE /client/datastores/{name}:
    Delete a key-value store datastore for the client.
  • GET /client/datastores/{name}/:
    List key-value data in a datastore for the client.
  • PUT /client/datastores/{name}/:
    Create or replace a key-value data entry for the client.
  • POST /{project_id}/volumes/{volume_id}/:
    Get detailed information on a spatial volume or set its properties.

Modifications

GET /{project_id}/annotations/:

  • Params are now correctly documented as form rather than query params.

POST /{project_id}/annotations/:

  • Params are now correctly documented as form rather than query params.

POST /{project_id}/annotations/forskeletons:

  • Params are now correctly documented as form rather than query params.

POST /{project_id}/skeletons/connectivity:

  • boolean_op form param now expects string "AND" or "OR" rather than
    "logic-AND" or "logic-OR".

POST /{project_id}/volumes/add:

  • Params are now correctly documented ...
Read more

2015.11.16

16 Nov 20:32
Compare
Choose a tag to compare

2015.11.16

Contributors: Albert Cardona, Andrew Champion, Tom Kazimiers

Features and enhancements

Key shortcuts / mouse operations:

  • Pressing \ now brings up a dialog to go to the nearest node with a label
    matching a query regex. If a node is active, this search is limited to the
    active skeleton. Shift + \ cycles through matching nodes in ascending
    distance order. Ctrl + \ repeats the last search regex without prompting.
  • Deleting a virtual node with DELETE or Ctrl+Shift+click instead suppresses
    the virtual node. Suppressed virtual nodes are skipped during review. A
    setting is available to also skip suppressed virtual nodes during normal
    navigation with [ and ].

Selection table:

  • Batch coloring is now much quicker.
  • If the batch color button is pressed a second time the color picker will not
    only close but also will the batch coloring be re-applied. This won't happen
    if the color picker is closed by clicking somewhere else.
  • The status text line at the bottom of the table includes now the number of
    selected neurons. This is helpful when a filter is active and more neurons are
    selected than visible.
  • Sorting for visibility columns has been removed.
  • Neurons part of a Selection Table can now also be filtered based on
    annotations. This can be done with the help of the input field next to the
    name filter. Like with the name filter input, pressing the Enter key will
    activate both filters and starting with a slash character ("/") will make the
    input be treated as a regular expression (to e.g. only show neurons that are
    annotated with a1 and b2, use "/a1|b2"). For now no meta-annotations are taken
    into account.
  • With the help of the new "Open" and "Close" buttons, skeleton lists can be
    stored into JSON files as well as loaded from them. Along with each skeleton
    ID, the current color and opacity is stored.

Skeleton projection layer

  • With the new "Skeleton color gradient" coloring mode, the skeleton's tracing
    color (currently only yellow fo the active skeleton) is used for coloring. It
    fades into downstream and upstream colors, respectively (which are black and
    white by default).
  • Nodes can be selected by placing the mouse close to them (regardless if
    displayed or not) and pressing 'g'. If no node is found in close proximity
    (<50px screen space), the tracing layer's node selection is used.

Graph widget:

  • Synapses can be filtered from edges based on their confidence. The confidence
    threshold is applied to the minimum of the pre- and post-synaptic relation
    confidences. Confidence filtering is applied prior to synapse count filtering.
  • Synapse count coloring on edges can now be configured independently from edge
    colors.

Volumes:

  • A new widget, the Volume Manager, allows to create and list volumetric
    geometries. These geometries are not yet displayable and for now only
    box volumes can be created. The widget is available through a new 3D box
    icon, last in the list of tracing tool widgets.
  • New nodes can now be tested for intersection with a certain volume. The
    Tracing section of the settings widget allows to choose a volume
    against which new nodes will be tested. If they are outside of it, a
    warning will be shown.

Neuron Search:

  • Partial annotations as well as regular expressions are now supported for
    searching. If the text entered in an 'annotated' search field matches a single
    existing annotation (i.e. one that would also show up in the auto-completion),
    it is used as search constraint, just like before. However, if no matching
    annotation was found, the input text is treated as a regular expression on
    annotation names if it starts with a slash character ('/'), otherwise it is
    treated as a regular search pattern over all annotations. For instance,
    finding all things that are are annotated by either A1 or B2 would look
    like '/A1|B2' or requiring annotations that end on 'xyz' could be searched for
    by '/xyz$'. This also works with sub-annotation queries.

3D viewer:

  • Different neuron visibility modes are now available for animations. A
    drop down list replaces the check-box and an option dialog is shown if
    a particular animation mode requires user input. Besides the 'show one neuron
    per rotation' mode, there is now also the 'Show n neurons per rotation' mode
    and a mode which uses a pattern to explicitly define the visibility of
    particular neurons after a particular rotation. The animation export now uses
    the visibility mode selected in the 3D viewer.

Administration:

  • CATMAID has been able to use DVID as a project/stack back-end and as a
    image source for quite a wile now. To make the latter option easier to setup,
    a new admin tool is available to create CATMAID stacks based on a DVID server.
    It can be found in the "Custom views" section of CATMAID's admin interface,
    labeled as "DVID stack importer". With the help of this tool on can inspect
    all available repositories and data instances on a DVID server and create a
    stack based on one data instance. CATMAID will make sure that all
    pre-conditions are met by a stack created this way.

Miscellaneous:

  • By default new widgets will now select the last widget created as skeleton
    source. If wanted, this can be adjusted to the previous behavior (always
    select 'Active skeleton') through the 'Auto-select widget created last as
    source for new widgets' option in the settings widget.
  • Multiple stacks opened through a URL can now optionally be opened in the same
    stack viewer window by adding "&composite=1" to the URL.
  • If an already reviewed node is moved it will now become unreviewed again.
  • Links clicked in the message menu will now open in a new page.

Bug fixes

  • The skeleton projection layer will now update automatically on skeleton
    changes like new or removed nodes as well as splits and merges. It will also
    not complain anymore if a connector was selected.
  • Text rendered in the 3D viewer is now upright again (instead of upside-down).

2015.10.19

19 Oct 23:43
2015.10.19
Compare
Choose a tag to compare

2015.10.19

Contributors: Albert Cardona, Andrew Champion, Tom Kazimiers

Features and enhancements

Scripting:

  • The widget instance associated with the focused window can be retrieved with
    the convenience function CATMAID.front().

Orthogonal views and multi-channel data:

  • Stack groups can be used to relate different stacks to each other within one
    project, e.g. to make clear that some stacks are different orthogonal views or
    different channels of the same dataset. If there are stack groups defined in a
    project, they are for now available through the "Projects" menu, which
    provides sub-menus for stacks and stack groups for each project. When opened,
    the stacks of a channel based stack groups are added as layers to the first
    stack. Ortho-view stacks are all opened in a separate stack viewer.
  • If a stack group consists of the three different orthogonal views for a
    dataset, the window layout is adapted automatically as soon as the stack group
    is opened. The layout will be a four-pane layout in which the left half of the
    screen is the XY view on top of the XZ view and the right half of the screen
    is the ZY view on top of a selection table.
  • Since stack group are instances of the 'stackgroup' class, they can be
    referenced from within ontologies. All projects now have a 'stackgroup' class
    and the relations 'has_view' and 'has_channel' created by default. They are
    also created for projects that don't have them, yet.
  • Stack groups can be created and managed from with the admin interface through
    either the new Stack group page or while editing/creating a stack.

3D viewer:

  • Skeletons can be shaded by distance from a plane through the active node. The
    plane can either be a Z-plane in project space or a plane normal to the ray
    from the camera to the active node.

Tile layer:

  • WebGL rendering is now compatible with orthogonal views.
  • Tiles can now be rendered either with linear pixel interpolation (previous
    default behavior) or nearest neighbor interpolation. This is controlled by
    the "Image tile interpolation" setting.

Graph widget:

  • When growing by circles, the set of neurons added can be filtered to include
    only those with annotations matching a regex.

Miscellaneous:

  • A new color picker replaces the color wheel. The new control hovers over other
    elements so it can be moved, has color memory slots, defaults to a smaller
    size and can be resized to show input elements for different color spaces. To
    save a color in a memory slot, click on the rectangle containing the small
    circle next to the memory slots.
  • Documentation for some HTTP API endpoints is now available from your CATMAID
    server at the /apis/ URL.

Bug fixes

Tile layer:

  • Fixed a major WebGL tile layer GPU memory leak.

3D viewer:

  • In orthographic mode, the correct depth ordering is now used again.

Selection table:

  • Color sorting works again.

Miscellaneous:

  • An error no longer appears when selecting an un-annotated skeleton while
    neuron labels are configured to use a meta-annotation.

2015.9.11

11 Sep 17:53
Compare
Choose a tag to compare

2015.9.11

Contributors: Albert Cardona, Andrew Champion, Tom Kazimiers

Features and enhancements

Neuron Navigator:

  • It is now possible to remove multiple annotations at once from a neuron. A new
    column is added to annotation tables, each annotation row has now a checkbox
    in its first column. A click on the de-annotate link in this column's header
    or footer will remove all selected annotations from the current neuron.

Tracing:

  • If a single-node skeleton is merged into another skeleton, no merge dialog is
    now shown by default. All annotations of this single-node skeleton are merged
    into the target skeleton without asking. This behavior can be changed to again
    show a merge UI if the single-node skeleton has annotations (behavior so far)
    through a new entry in the Tracing section of the settings widget.

Graph widget:

  • New layout modes "dagre", "cola", "spread" and "springy". The first is based
    on DAGs (directed acyclic graphs) and the last three are force-directed. To
    note that "spread" will evenly layout neurons in trying to occupy as much
    space as possible, and also leads to symmetric-looking graphs when rendering
    multiple disconnected graphs of e.g. left and right homologous neurons. Try
    it.

Connectivity matrix:

  • Descending and ascending sorting is now available for all sorting modes.
  • The new 'order of other' sorting mode will try to follow the column order for
    rows and vice versa. If skeletons are not found in the reference dimension,
    they are pushed to the end.

Selection table:

  • When changing the color of a neuron, all other selected neurons can be colored
    at the same time, when the new 'all selected' checkbox (right above the color
    wheel) is checked.

Neuron search:

  • The "select all" checkbox now does what it says and selects all neurons in the
    results set.
  • Pagination now works like in other widgets and the number of elements per page
    can be adjusted.
  • Annotations are not loaded by default anymore, but can be shown with the help
    of the new "Show annotations" checkbox.

Miscellaneous:

  • When a connector is selected, basic information about it is displayed at the
    top of the window (where otherwise the neuron name is displayed).
  • A neuron search result's annotation list is now kept in sync with the rest of
    the widgets. If annotations change on a listed neuron or annotation, the
    search query is re-done.
  • If only transparency is changed in the batch color picker of the Selection
    Table, the transparency alone (and not the color) of the target skeletons will
    be updated. To also update the skeleton color, the color has to be changed in
    the color picker, too.

Administration:

  • Adding custom code to CATMAID's front end is now easier: Add file names to the
    STATIC_EXTENSION_FILES array variable and have your web-server point the URL
    defined in STATIC_EXTENSION_URL (defaults to /staticext/) to the folder were
    those files live. CATMAID will then load those files after its own files.

Bug fixes

  • Nodes are now correctly scaled in skeleton projection layers.
  • Neuron navigator now updates if a skeleton is changed (e.g. due to a merge).
  • 'Sync to' selections to push changes from one widget to another (e.g. 3D
    viewer controlled by selection table) are now updated correctly, if a selected
    target is closed.
  • Changing the order of rows and columns of the connectivity matrix manually
    does now work like expected.
  • From within the neuron search removed annotations will now disappear again
    from the search widget after they are unlinked.
  • Using the CATMAID coloring scheme in the Selection Table is not random
    anymore.
  • CSV files exported from the Connectivity Widget now respect the table ordering
    and include the target neuron names.
  • Spheres that intersect in the 3D viewer (e.g. somas) don't appear broken up
    anymore.
  • The 3D viewer's SVG export will now correctly calculate the size of exported
    spheres (e.g. soma tags).

2015.7.31

31 Jul 19:23
2015.7.31
Compare
Choose a tag to compare

2015.7.31

Contributors: Albert Cardona, Andrew Champion, Tom Kazimiers

Features and enhancements

Key shortcuts / mouse operations:

  • Ctrl + [ or ] now navigates to the next real (non-virtual) parent or child of
    the active node, respectively.

Connectivity widget:

  • Upstream and downstream partners can now be filtered by synaptic confidence
    in addition to synaptic count. Synaptic confidence filtering is applied before
    count filtering. Confidence is taken to be the minimum of the presynaptic
    and postsynaptic connector confidence.

3D Viewer:

  • Tags matching a custom regex can be shown as handle spheres in addition to
    tags containing "uncertain" or "end". Note that after entering the regex in
    the "View Settings" tab the viewer must be refreshed from the "Main" tab
    before tag spheres are updated.
  • The active node marker now resizes based on the radius of the active node.
  • The active node marker can now optionally always be drawn on top of other
    objects, even if it is occluded.

Miscellaneous:

  • A default neuron name can now be specified in the settings widget. Similar
    to annotations, the pattern "{nX}" can be used to add an automatically
    incrementing number to each new neuron created, starting at X. Omitting X
    will be interpreted to start from 1. This default name does not persist
    between sessions.
  • Neuron navigator: neuron name and annotation search are now case-insensitive.
  • The client now checks every 15 minutes whether it is the same version as the
    server. If not, an error dialog is shown prompting the user to refresh their
    browser.
  • It is now possible to show a projection of the active skeleton in the tracing
    overlay. All nodes will be displayed in the current slice, but no interaction
    is allowed with them. This feature can be useful to get more context on the
    current location in the active skeleton. This mode can be toggled with F10 or
    through a new entry in the settings (Tracing Overlay > Active skeleton
    projection), where different parameters can be adjusted. The color for the
    upstream and downstream part can be independently changed and various shading
    modes can be selected (plain color, Z distance transparency, Strahler based
    transparency or cut off).

Bug fixes

  • 3D viewer: the correct synapse colors are now used when connectors are
    restricted.
  • If annotations are added or removed, annotation search widgets are updated
    correctly. You can now search for newly created annotations without having to
    open a new search widget.
  • The order of the selection table is now remembered before it is refreshed.
  • Connectivity widget: common partners filtering now correctly enforces that
    partners are partnered with all target neurons, not just any two.
  • Review widget: the skipped node warning will now only show up when in fact
    more nodes have been skipped than allowed.
  • Fixed a vulnerability that allowed any user with "browse" access permissions
    to any project to execute arbitrary SQL statements on the CATMAID database.