Giter VIP home page Giter VIP logo

snt's Introduction

Maintenance Maintenance

This repository has been archived. It hosts the code for the now deprecated Simple Neurite Tracer plugin for the Fiji distribution of ImageJ. Its development has migrated to morphonets/SNT where the program has been re-written, modernized, and extended to become a complete neuroanatomy toolbox for the ImageJ ecosystem.

For issues and pull requests please use morphonets/SNT.

snt's People

Contributors

ctrueden avatar dscho avatar fethallah avatar hinerm avatar iarganda avatar imagejan avatar mhl avatar tferr avatar tinevez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

snt's Issues

Release workflow?

@ctrueden, I was trying to release a new version (as I've done in the past: 1) commit directly to master the version in the pom 2) uploading the jar and 3) increment the version back to SNAPSHOT in pom.

I just did 1) with 2fca2f4 but the build failed. It seems that things changed since I last did this. I also noticed that the github releases page seems to be automatically populated (before I was creating releases there by hand).. What is the new procedure?

Manually placed points should be automatically refined

From @mhl:

At the moment the points you manually specify are considered fixed, so won't be adjusted by the "Fit Volume" option, for example. This is a limitation that I intend to fix, but it needs a bit of careful work. There are two plans I have for this:

  • Allow manual adjustment of where the points are at any stage
  • Allowing the fitting to adjust the manually placed points as well as the intermediate points

In the mean time, my suggestion would be to select the intermediate points in a zoomed-in view, using the three-pane view to find the midline of the neuron. There's a short tutorial here explaining what I mean:

http://fiji.sc/Simple_Neurite_Tracer:_Accurate_point_placement

Migrated-From: http://fiji.sc/bugzilla/show_bug.cgi?id=222

Scijava port: ImageJ2 migration

This is to log the ImageJ2 migration efforts. The work is starting on my scijava branch.

Braking changes:

  • Applet support will be dropped (Is anyone using it?)
  • IJ1 macro support will be dropped. Was flimsily and not that useful
  • All classes no longer in use from the virtual fly brain project will be deprecated
  • Support for old 3D viewer will be dropped in favor of SciView (see #22, scenerygraphics/sciview#42)

Other changes:

  • Reduce IJ1 dependencies (see also #29)
  • Reduce VIB-lib dependencies (no longer maintained?)
  • Allow ops filtering (Tubeness and Frangi ops are about to be released, see imagej/imagej-ops#490)
  • Allow tracing on any pre-filtered image
  • Multichannel support (see #13)
  • Proper scripting support
  • API documentation (currently there is zero javadoc documentation)

Improve SciView integration

This is just a loose list of things that could be improved:

  • All commands that offer the option to open Rec. Viewer (e.g., Path Manager's Analyze>Color Coding...) should also ask for to open SciView. Actually, we could just remove that option, as it does not seem to provide much
  • One would have to extend whatever we decide above into all the other commands that have that option
  • Pressing "Open SciView" should also sync Path Manager changes
  • Adding the sync call to SNT#updateAllViewers() would cover 90% of an user's sync needs

@kephale, I will try to look into ssome of these late next week.

SciView: NoSuchMethodError

@kephale, Subscribers to the NeuroAnatomy & SciView update sites get this:

Exception in thread "Thread-12" java.lang.NoSuchMethodError: sc.iview.SciView.addWindowListener(Ljava/awt/event/WindowListener;)V
	at sc.fiji.snt.SciViewSNT.setSciView(SciViewSNT.java:135)
	at sc.fiji.snt.SciViewSNT.initSciView(SciViewSNT.java:110)
	at sc.fiji.snt.SciViewSNT.<init>(SciViewSNT.java:103)
	at sc.fiji.snt.SNTUI.lambda$32(SNTUI.java:1598)
	at java.lang.Thread.run(Thread.java:748)

This is because the SciView version shipped is older than SciView 7b5befb. Shall SciView be updated on its updateSite, or shall I start uploading the updated jar to NeuroAnatomy?

Make Tubular Geodesics plugins available through the Updater

Tubular Geodesics (TG) is an incredible extension and the best thing that happened to SNT since its inception. Installation of TG is the single most thing users can do to really improve tracing quality. It seems critical to distribute Tubular Geodesics through an update site, either through the base Java 8 update site, or through the Neuroanatomy update site.

The former is much more demanding since we'll have to abide by the Fiji's contribution Requirements. The latter is much more flexible as there are no really no requirements - just ensuring that we will not break the user installation - as described in Distribution guidelines.

@fethallah, what do you think? Would that be OK for you?

My take would be to use to use the Neuroanatomy site to distribute the binaries and update the TG tutorial accordingly. I am guessing that the instructions on the Tubularity repository are awfully outdated and this will require a lot of legwork. I'm also guessing we'll have to set up a Jenkins job for this, as e.g., I do not have immediate access to a Windows machine.

Importing neuronstudio SWC files

From a message to the ImageJ mailing list:

Currently in our department we are trying to find a standardized method of tracing neurons received from stacks. We generate the stacks and any substacks within Fiji and once we have a target neuron we import the stacks into Neuronstudio to trace it, as Neuronstudio can automatically trace. After saving these traces in an swc file we try to reload it into Fiji Simple Neurite tracer, however we always encounter an issue with scaling. We always have the correct offset coordinates at hand, previously saved from the original stacks in Fiji, but the offset scaling is always off, sometimes really off. The tracings always appear smaller than the original. With trial and error we can come as close as possible to the correct scaling but this is rather time consuming and the endgoal is to fully automate the whole process via standard procedures for a protocol, that will be used in the lab. Would anybody know if what the precise error is or how to work around it?

Conver SWC to skeletonized volume

Hi, thanks for the great software. I would like to generate a "rasterized" version of a neuronal trace, which is currently in SWC format. It seems that previously this functionality existed in SNT, as described in the Methods section of this paper. However, the procedure described here no longer seems to exist in the SNT plugin menus.

Is there a way to convert from SWC file to a 3D output, where each voxel in the output is zero if it is not an "active" voxel in the network described by the SWC, and 1 otherwise?

I have also posted this question here if it is easier to answer there!

Scijava port: Path management improvements

This is to log the recent improvements in path management. The user interface chosen for such tasks is the "All Paths" frame. The work is occurring on my scijava branch.

Already implemented features (partially tested):

  • Searchable list of paths
  • Tag paths with customizable colors
  • Custom SWC-type colors
  • Export of selected paths as ROIs
  • Hierarchy edits through drag and drop dropped

Features needing fixes:

  • Number of search hits in search bar is not accurate caused by reliance on outdated jide-oss
  • Auto-expand of selected nodes not working?
  • SWC-type colors are not applied once they have been customized

The new UI does not rely on IJ1, relying mainly on org.scijava.ui.swing. Currently it looks like this:

newallpaths

Any feedback more than welcome!

Provide statistical output

Right now the ability to summarize reconstructions statistically is rather poor and limited to the the Export as csv command or the Analyze Skeleton output that runs on digitized paths. There is really no straight forward way to obtain at a glance things such as N. of branch points, Total length, etc... Otherwise, we should at least point users to web-tools such as L-measure or Remod or nat

Update documentation and resources

This relates to #46. While we prepare SNT's release we will have to update the existing documentation and screencasts that are awfully outdated.

The simplest would be to mirror existing wiki pages to a new name e.g., Duplicate the contents of https://imagej.net/Simple_Neurite_Tracer:_Key_Shortcuts to https://imagej.net/SNT:_Key_Shortcuts, then once the release is out, simply redirect the former to the latter. This away no pages get broken in the process. A non-exaustive list of things to be done is:

Screencasts:

  • Introduction to tracing in SNT
  • Introduction to tracing on filtered images
  • Advanced operations: Forking, editing nodes, etc
  • Analysis (Sholl, Strahler, measurements, etc.)
  • Scripting

Wiki:

Plugin:

  • Update Help> Menu to reflect new changes
  • Add descriptive tooltips to GUI elements whener relevant (for offline documentation)
    Pinging @carshadi, @tferr

Neurite Tracer Algorithm for F-actin Skeleton Mask

Hello Everyone,

I'm new here so let me introduce myself first.
My name is Jesse and I'm a research technician at UMC Utrecht in the Netherlands.
My goal is to learn some basic coding (Python and ImageJ macro) in relation to automated image analyses; I'm very new at this.
My current challenge is an automated object/cell count on this image (and many more).
Image1.

First I want to create a clean F-actin skeleton and use it for counting objects. I was experimenting with gaussian blur, tubeness and thresholding etc. with some quite good results. I discovered the simple neurite tracer and I'm convinced this will give me the best F-actin skeleton if I'm able to create a mask and have to click once... So this is my question: Is it possible for me to write a macro where it traces all F-actin lines and creates a mask without clicking? I know this is not neurite related but this will help me a lot with my macro. It would be much appreciated if someone can help me with this or point me in the right direction!

Thanks and best regards,

Jesse

Soma missing when creating a Tree from filename

I'm trying to create a Tree from AA0792.swc, but the soma gets relabeled as an axon after loading.
:root #object[sc.fiji.snt.util.PointInImage 0x21440e36 ( 6169.424625, 1550.220808, 4726.28674 ) [onPath Path 0 [axon]]]

Release SNT

๐ŸŽ‰ !!SNT is finally ready to be released!! ๐ŸŽ‰
Because the program changed significantly, we would rename it to SNT. The change may sound silly but it highlights the effort that was put into backward compatibility and makes the point that the program is no longer that Simple ๐Ÿ˜‰

Also, I see a couple of issues that we should look into before the release:

  • Dependencies: json does not follow SemVer
  • Dependencies: jzy3d-api required by us is a SNAPSHOT version
  • Impact on other projects: Last time I checked, TrakEM2 was using SNT, so we'll have to make sure things still work there. I will be looking into it, but Pinging @axtimwalde for now, for a heads-up. This is addressed with trakem2/TrakEM2#25

@ctrueden, how can we achieve this and release SNT v0.0.1? (or is it v.0.9.0-SNAPHOT?). I'm assuming it is just not enough to rename the project. Can you help us assemble a todo list fo this?

Does SNT have inbuilt motion correction?

Dataset consists of multichannel multiframe tiff files.There are n tiff stacks. Each stack has Nimgs where each img is from a depth along the axial plane of the brain, n is the number of channels. Once motion corrected, we are looking to trace the dendrites belonging to a stack in 3d.
Does SNT have any inbuilt motion correction within images and between images in a stack?

split (or measure) path between branching points and between branching and termini

Dear SNT developers,
I posted this question on the forum.image.sc but I didn't receive any answer yet, I'm thus posting it here, I hope it can be the right place. I'm still not sure how and where to posts questions about imageJ plugins and I apologize if this is not the place for my kind of question.

I am importing in SNT v3.1.101 some Swc files that were traced in Neutube to perform some measurements.
Yet Iโ€™ve two problems,

  1. Minor issue: We tagged processes with different type determinants but this information is apparently lost in SNT (both in path manager and exported CSV file).

  2. Major issue: Our cells have a number of small lateral processes (here a simple example with only two of them) that stem from a primary dendrites and we would like measure their numbers, lenght etc. We would also like to measure the inter-process distance.
    Yet impored swc are subdivided into paths that always continue past the branch point along one bifurcation, without caring about post-branch path lenght ( I guess they simply follow the order of nodes in the swc file). Rather we would like to split each path between branching points to divide them in segments (branch to branch and branch to termini),

A manual method would be useful (I could not yet figure it out!)
However, as we have many cells and many processes a hint on how to do that programmatically would be much appreciated!
If SNT is not the right software to perform such analyses, can anywone suggest and alternative?

Thank you very much

Federico

NPE from MouseLightLoader

from code:

...
            SWCPoint soma = (SWCPoint) loader.getNodes("soma").toArray()[0];
            AllenCompartment thisSomaCompartment = (AllenCompartment) soma.getAnnotation();

            if (thisSomaCompartment.contains(somaCompartment)) {
...

I'm getting (after a bunch are successfully downloaded):

...
Parsing AA0952...
Exception in thread "main" java.lang.NullPointerException
	at sc.iview.neurongrammars.FetchNeurons.main(FetchNeurons.java:77)

SciView TODO

Improve interoperability with other programs

We should do much more to support interoperability with other ImageJ plugins and other programs outside ImageJ. E.g.:

  • Support Vaa3D's ESWC
  • Provide a straightforward converter for the .traces format (implemented through the Neuroanatomy update site)
  • Allow paths to be exported to the ROI Manager or the image overlay [Implemented in v3.06]

Useful features but dropped requests:

  • Start reading comments in SWC headers. Without true standardization among SWC exporting programs, we'll never be able to extract valid metadata from such headers. Unfortunately, this has to be dropped
  • Allow import of ndf files. Better would be to make NeuronJ aware of SWC (see NeuronJ#1)

GUI: Tracing improvements

Inconsistencies/Improvements in the UI, as reported by @carshadi:

  • Could be useful if the just finished path becomes the selected one e1ad0c3
  • A way to re-initialize a "finished" path for additional A* tracing would be helpful 091c566
  • There should be a way to select the children a selected path 5a841e5
  • "Activate canvas on mouse hover" should be active by default
  • In order to make a fork point, you need to hold down ctrl+shift and then move the cursor slightly before "Fork Point" appears b91cecb 49c3fb1
  • Deleting a path from the path manager, while still in edit path mode, the delete does not occur until switching back to tracing mode (it occurs in the path manager but the canvas does not update until switching) ead9dc7

Exagerated dimensions of display canvas

When importing a SWC file without an image SNT uses an empty placeholder image. With certain files the dimensions are completely off which makes it fairly easy to run out of memory even with small files. E.g., as in the following example provided by @kephale
Display Canvas-10

Paths tagged as "soma" should be ignored from Sholl analysis

As is, the "include all paths" option in the Sholl Analysis dialog assumes that the soma has been traced as a single point (zero-length path). This is rather restrictive and not recommended. It would be desirable to allow users to filter out somas defined by multiple paths. While at it, we could allow Sholl to be performed on specified paths filtered through SWC types ("soma", "dendrite", "axon", "end point", etc.), which would allow streamlined profiles from specific compartments.

The issue is discussed in this forum thread.

Add support for multi-channel images

Restricting tracing to single channel images is problematic: there are several scenarios in which it is important to trace paths in one channel while accessing a counter-staining in another, e.g., a lesion site, other cells (as in brainbow-like imagery), tissue landmarks, etc..

This may be quite involved and may require a major rewrite of InteractiveTracerCanvas and BatchOpener.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.