home | news | snapshots | manual | how to | tutorials
TrakEM2
What is it?
TrakEM2 is an
ImageJ plugin for morphological data mining, three-dimensional modeling and image stitching, registration, editing and annotation.
Snapshots
Four movies:
See
a lot more snapshots and movies.
TrakEM2
video tutorials for users.
Latest news
Download latest
Fiji with TrakEM2 or go to menu "Help - Update Fiji".
Pull source code from the git repos.
Stay
up to date with Fiji.
TrakEM2
class diagram for programmers.
TrakEM2
video tutorials for users.
2009-12-14 - 0.7n released
- Simpler, more robust memory management system. Also enlarged minimally free memory requirements to 150 mb / CPU core.
- Replaced preloader threads: better, more granular and more parallel image loading.
- Added a TrakEM2 plugin system: see some docs here. Plugins will appear in the TrakEM2 menus and have hotkeys assigned to them.
- Added automatic enlarge-to-fit to all Display montage commands.
- Fixed error in autotracing of polylines: the Z was not correct.
- Small improvements to repainting machinery.
- Small fixes for contrast adjustment. More to come soon.
Thanks to Stephan Saalfeld for relentlessly reporting (and suffering) errors to the error tracker.
2009-12-04 - 0.7m released
- Added non-linear registration option to "Align layers". By Ignacio Arganda and Stephan Saalfeld. Uses bUnwarpJ in the background.
- Added image montaging using phase correlation (in addition to the existing feature-based registration), for selected images and for a range of layers. Works well when images are approximately layed down in a grid. Requested by Ignacio Arganda.
- Extended "Import sequence as grid" to take multiple sections, i.e. to split a list of image files into Z montages of X*Y images. Requested by Ignacio Arganda. Also improved image importing parallelism dramatically.
- Added Treeline, a new basic type to represent for example branched skeletons of neurons. Treeline can be re-rooted and split at any point via right-click menu on a point.
- Added Connector, a new basic type to represent one origin and multiple targets.
- Added look-ahead cache for faster browsing across layers. Preloads previous and next layers up to as many as specified in the project property "look ahead cache". Requested by Davi Bock.
- Added new contrast adjustment mode. Select multiple images, right-click and run "Adjust - Adjust min and max (selected images)". Changes the min and max dynamically for all images, and on pushing apply, regenerates mipmaps for all selected images.
- Reworked meaning of min and max in Patch XML. No longer using -1 as any kind of flag.
- Loader.getFlatImage uses a paint method that ensures there's always a proper image and not a tag indicating that the image is undergoing mipmap regeneration.
- Added "Align - Aling layers with manual landmarks" which replaces the old align mode. Now supports multi-layer alignment, not just 2 layers. Use right-click to access the apply/cancel menu. Works with the SELECT tool; the ALIGN tool has been removed.
- Added hotkeys to the Project Tree right-click menu entries.
- Added concept of reference layer to the "Align layers" dialog. Thanks to Parvez Ahammad for bringing the issue to my attention.
- Added static methods to create flat images of any desired by depth (8-bit, 16-bit, 32-bit, and RGB) to Patch class.
- Added ability to flood-fill an AreaList to the border of underlying images, if project property "flood fill to image edge" is true.
- Added new Tool tab to the Display, which facilitates the usage of the semiautomatic segmentation tools (PENCIL tool) for AreaList. Thanks to suggestions from Nitai Steinberg.
- Better and more consistent contrast enhacement, and better parallelization of its routines.
- Fixed potential fatal error on readinf a TrakEM2 XML file, which would result in the TemplateTree being empty or showing nodes for "ict_transform."
- Automatic contrast enhancement defaults to 0.4 % saturation like ImageJ does now by default.
- Fixed error in canvas repainting, in which images with composite modes other than default would not paint at odd magnifications. Thanks to Stephan Saalfeld.
- Fixed cache locking issues when releasing memory.
- Mouse over hidden images no longer tries to load the.
- Mouse over no longer reports pixel intensity for the PEN and PENCIL tools, to avoid loading images when just editing some data.
- Polyline now removes closest point with shift+control+click.
- Display3D behaves better: meshes are replaced when readded, and scheduled for addition when rendered by the thread pool.
- Jpeg I/O has been updated to use ImageIO, thanks to Mark Longair and Johannes Schindelin.
- Jpeg I/O now locks on each image file path to prevent potential loading of broken images, which forced their reload. Also avoids tagging some images as unregeneratable when it's not the case--there was a collision on the creation of the directories of mipmaps.
- Attempt to fix file path repair for Windows. Some may linger ... see bug #66. Help appreciated with testing.
- Added 'm' and "Measure" commands from ImageJ to measure selected objects.
- Added "Show current 2D position in 3D", which shows a magenta sphere in 3D where right-clicked.
- Fixed numerous reported bugs.
- Better stopping of tasks that use many threads.
- Minor fixes to AreaList and Patch.
- Improved image importing dramatically for "Import from text file".
- Numerous little fixes. See the whole log.
Thanks to Stephan Saalfeld, Ignacio Arganda, Mark Longair, Johannes Schindelin and German Koestinger for code, bug reports and testing.
Read
all news here.
Download and Install
Managed installation:
For a manual installation:
See the
TrakEM2 Installation How-To for all details and
required additional files.
What can you do with it?
- Semantic segmentation editor: order segmentations in tree hierarchies, whose template is exportable for reuse in other, comparable projects.
- Model, visualize and export 3D.
- Work from your laptop on your huge, remote image storage.
- Work with an endless number of images, limited only by the hard drive capacity. Dozens of formats supported thanks to ImageJ.
- Import stacks and even entire grids (montages) of images, automatically stitch them together and homogenize their histograms for best montaging quality.
- Add layers conveniently. Each layer has its own Z coordinate and thickness, and contains images, labels, profiles...
- Insert layer sets into layers: so your electron microscopy serial sections can live inside your optical microscopy sections.
- Run any ImageJ plugin on any image.
- Measure everything: areas, volumes, pixel intensities, etc. using both built-in data structures and segmentation types, and standard ImageJ ROIs. And with double dissectors!
- Visualize RGB color channels changing the opacity of each on the fly, non-destructively.
- Annotate images non-destructively with floating text labels, which you can rotate/scale on the fly and display in any color.
- Montage/register/stitch/blend images manually with transparencies, semiautomatically, or fully automatically within and across sections, with translation, rigid, similarity and affine models with automatically extracted SIFT features.
- Correct any lens distortion present in the images, like those generated in transmission electron microscopy.
- Add alpha masks to images using ROIs.
- Undo all steps.
And
much more...
How does it work?
TrakEM2 has been written in
Java as an
ImageJ plugin, and contains a virtualization engine for seamlessly working with arbitrarily large datasets, limited only by your file storage capacity.
Two independent modalities exist: either
XML-based projects, working directly with the file system, or
database-based projects, working on top of a local or remote
PostgreSQL database.
Authors
TrakEM2 is the design child of
Rodney Douglas and
Albert Cardona, with the help of the entire
Institute of Neuroinformatics,
University of Zurich /
ETH, and has been implemented by
Albert Cardona.
Stephan Saalfeld and
Stephan Preibisch, from
Pavel Tomančák's group, have written the libraries responsible for phase-correlation, cross-correlation, scale invariant feature transform, and associated utilities such as proper, gaussian-exact image resizing and automatically multithreaded processing routines that adapt to the machine's available cores.
Acknowledgements
TrakEM2 would not have been possible without the continuous help from
ImageJ's author, Wayne Rasband, and the economic support to Albert Cardona from both
Rodney Douglas at
INI and
Volker Hartenstein (NIH Grant NS054814) at the
University of California Los Angeles.
We are also particularly grateful to
German Koestinger for testing and extensive feedback,
David Lawrence for his assistance in PostgreSQL, and also to
Nuno da Costa,
Rita Bopp,
Lauriston Kellaway,
John Anderson,
Wayne Pereanu and
Davi Bock for their input.
3D visualization and mesh-making by marching cubes have been possible thanks to
Bene Schmid and Johannes Schindelin from Würzburg.
Image stitching has been made possible thanks to
Stephan Preibisch, and the web viewer thanks to
Stephan Saalfeld, both from
Pavel Tomančák's in the Max Plank Institute for Cell Biology and Genetics, Dresden.
Contact
Please forward any comments and suggestions to
acardona at ini phys ethz ch.