Releases: catmaid/CATMAID
2016.08.12
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
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.
Thepre
andpost
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
:
Parameterskeleton_ids
now correctly parses with and without explicit
indices.POST /{project_id}/annotations/query
:
Parameterobject_ids
now correctly parses with and without explicit
indices.POST /{project_id}/annotations/query-targets
:
Parametertypes
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
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 useIMPORTER_DEFAULT_IMAGE_BASE
instead ofCATMAID_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
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
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:
-
Make sure you have CATMAID updated to the last release (2015.12.21),
including all database migrations and up-to-date Python packages. -
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
-
Remove the following variables from settings.py file (in
django/projects/mysite/
):TEMPLATE_DIRS
,TEMPLATE_DEBUG
-
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
-
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
-
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...
2015.12.21
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 ...
2015.11.16
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
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 functionCATMAID.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
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
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.