Neuromantic V1.7.5 is available

As promised, here is a download link for the newest version of
Neuromantic (V1.7.5) produced for DIADEM. It's a bit.ly shortened
link that lets me keep track of the number of downloads and vaguely
where they're coming from, but it points directly to my DropBox


The contents of the zip should work in a self-contained fashion, and
should not require any files from any previous downloads.

Now, I'm pretty sure that I've included all the dependent DLLs in the
zip file, but I don't have a clean platform to test on so I can't be
sure. Let me know if it fails on start-up and I'll host the missing
files asap.

The main changes to the application are:
* Dynamic memory management. You should hopefully not get annoying
access violations when you load in a stack that's too big, as
Neuromantic will automatically load/unload images dynamically to keep
the memory footprint acceptable. There will probably still be memory
issues if you attempt to visualise large stacks in 3D, though, which
is something I may address in future now that I have a working build.
* Multi-stack GUI - this lets you use large-tiled projects and show/
hide different tiles as tiled, as well as manually entering offsets.
The "Load/Save Tiled Project" menu options will save all the stack
positional data to an .nproj file (the reconstruction itself will
still need to be save separately to SWC). If you lose the multi-stack
GUI, open it again through Window->Show Multistack GUI
* Custom labelling schemes - you can now change the colours associated
with each segment type, so no more endless yellow after segment type
6. See also Load/Save labelling scheme on the main menu.
* A few 3D GUI fixes - the aspect ratio now remains correct when
resizing the window, which had been bugging me for ages, and the lines
are properly anti-aliased.

For other minor changes see the _README.txt file.

Feel free to pass on the download link to anyone who might be
interested (once you're sure it's not missing any files!).

In general, I shall be posting links to new version on the NeuromanticUsersGroup, so please join that if you're interested.

Labels: , , ,


Neuromantic V1.6.2 now available!

OK, I have uploaded Neuromantic V1.6.2 to the site - I've made sure the ZIP file works this time, also ;)

V1.6.2 mainly adds some bug fixes and minor features over V1.6.1, and I'm quietly confident that I've finally squashed the horribly annoying byzantine error that I've been trying to track down for several releases.

I've altered the selectable bounding boxes on compartments so that they're now the entire width of the compartment, rather than always 10 pixels either side. Lone nodes (with parent nor child) also display their radius now in the form of a circle around the midpoint, and it should be easier to select/drag around the root soma point of a tree that's surrounded by child compartments.

Another handy addition is the ability to press Ctrl+W and cycle through all the currently selected segments. This could be useful when correcting trifurcations or similar.

In terms of semi-automatic reconstruction, a median radius filter operation has been added that helps compensate for radius estimation errors. The radius of each compartment is simply calculated as the median of the estimated radii of a 3 compartment neighbourhood along the neurite.

It's also now possible to Autoselect overlapping points i.e. points that have exactly the same coordinates as another point in the tree. It was primarily added for Duncan Donohue, who's currently administrating the NeuroMorpho archive, and shouldn't be needed in the standard course of a reconstruction. In the case of overlapping identical subtrees, it will currently just select one of the subtrees arbitrarily (depending on ordering in the list). I believe that it should select entire overlapping subtrees due to the way the tree sorting algorithms work, but it's conceivable that in some circumstances it will select some from both - let me know if this happens.

Labels: , , ,


Composite stack support

Neuromantic V1.6.0 will be released tomorrow - the main update here will be the support of composite stacks made of multiple image stacks. These composite stacks may be saved and loaded via project files (*.nproj).

For the first release, there will be several limitations:

* All stacks will be loaded at once and remain so, so no memory saving is made. This constraint will be quickly relaxed in future releases so that you can free/reload stacks as desired.

* Rotated composite stacks (if you've rotated in X/Y or Z) cannot be saved with a project file. This can be circumvented initially by saving the composite stack prior to rotation, and making sure that the stacks are rotated back to the original position before saving the reconstruction. This constraint will also be relaxed in future, although it will take longer as it relies on me finishing the improved stack viewing algorithms.

Labels: , , , , , ,


Neuromantic V1.5.5 now released (and general update)

The new release is a little later than I originally intended (as always), but V1.5.5
fixes quite a few bugs and implements quite a bit more functionality.

* Fixed minor bugs associated with statistics calculations from tree -
the area and volume calculations were badly rounded due to storage as
an integer rather than a float (bad Nathan!)
* Implemented statistical testing properly - in V1.5.4 this didn't
really work at all. I blame the testing department. Wait a minute, I don't have one.
* Speeded up stack rotation and other bitmap operations significantly
through avoiding use of standard Windows TBitmaps.
* Fixed bug associated with stack rotation on certain sized stacks
* 3D stack visualisation now supports standard colourisations such as
JET and HSV, and has generally still been jazzed up. I still need to
cause the stack to be subsampled when it's too large, though, as this
can still bring the applications to its knees, so be careful.
* Implemented ability to drag multiple selected segments in both 2D
and 3D windows, as requested originally by Duncan and more recently by
Kerry. I'll try and implement similar functionality for radius
editing soon.

On a similar note, I'll try and make time to create some video tutorials with CamStudio, which is a very handy utility that allows you to make videos of your desktop and record audio over it. In this way it should be ten times easier to demonstrate the usage of Neuromantic than attempt to describe its use in the manual.

If you find any bugs, please report them to the Neuromantic User Group (which is linked to in the application from the About menu) and I shall attempt to squash them for the next release.

Labels: , , , ,



OK, I've found a fatal bug in Neuromantic - these don't come up very often, and it's only been in existence for the last couple of releases.

When working with a reconstruction that is planar (i.e. all segments have the same Z coordinate), changing the mode to "Colour By Depth" will, up to V1.5.3 (since whenever I added it, which is only V1.5.1 or later), cause a div by zero error in the 2D rendering algorithms and completely crash out the application. Yes, I hang my head in shame for not forseeing a potential div by zero error - you'll find me in the naughty corner.

I shall be posting a newer release that fixes this tomorrow, as I really can't allow such bugs in the program. As well as this important bugfix, it will also have significantly improved sectioning of volumetric data.

I've also been further working towards supporting multiple stacks simultaneously, and have now gotten the semi-auto tracing functioning with this. Therefore, in future releases (not until after Christmas, though) you'll be able to load and register multiple image stacks, then semi-automatically trace a branch between the stacks due to the cunning hierarchical patchwork strategy.

Labels: , ,


Neuromantic V1.5.3 and beyond

OK, in the new release, Neuromantic V1.5.3, you can now drag the compartments around in the 3D view in the plane parallel to the current camera angle. This will help correct gross Z errors which are a little more fiddly to do in the 2D view, as well as allow increased accuracy when using the 3D overlay visualisation.

In terms of general updates, I've been doing a little more work on the ability to load in and work with multiple stacks - it's getting very close to being complete now, as I've just got the automatic routing to work (a few bugs yet), meaning that you'll be able to semi-automatically trace across multiple stacks in one go. Debugging that is about the last thing I need to do before I add in the GUI functionality that actually lets you load in/register stacks and reconstruct from multiple stacks.

At the moment, each stack will have a gross X/Y/Z offset, and each individual image can also have a smaller X/Y offset to help align the stack more effectively.

I'll also need to sort out some sort of project file, such that you it will store the offset of each stack/image, meaning that you can just open that and it will load everything in at the right position with your current reconstruction. Furthermore, I'll need to sort out some proper memory management, so that not all stack images are preloaded (as they currently are). The stack classes have already been updated to allow particular slices to be unloaded and then reloaded when accessed, but some higher level control of this will be necessary.


Information on the next update

Right, I've now successfully implemented the ability to drag segments around in the 3D view - this should come in very handy for correcting Z errors and editing segment positions based on overlaid image data.

The other main thing I've been doing is trying to get 3D textures to work in OpenGL and find out whether they'd be a better choice for the rendering. So far, I'm really not too impressed - it just doesn't look as good as the normal textured version, and there's also much stricter limits on size (max side of 512 pixels, rather than 4096 for normal textures). Also, OpenGL demands only power of 2 sizes in both X,Y and Z for the 3D texture, leading to yet more memory wastage.

I'm still working on it, though, but at the moment I'm thinking of staying with the current set up (albeit with a bit of neatening up and added cunningness)

Labels: , , ,