we (with @Christian_Tischer, @constantinpape, @Kimberly_Meechan, …) try to align rather big tiled serial section EM datasets. One specific example would be images generated in a serial block-face SEM with @btitze 's SBEMimage, but could also be from other instruments (FIB-SEM, serial TEM).
The data would be
n (up to 10,000) slices in
z with a specific thickness. Each slice is a regular grid mosaic composed of rectangular tiles (can be several hundreds). Each tile would be about 1k to 4k in size. There are empty tiles and tiles can exist independent of neighbors. Initial (physical stage coordinates) positional metadata for all tiles is available.
The core concept of the approach would be to specify necessary transformations for each tile based on its relations to neighboring tiles and then compute a globally optimal solution for all tiles and apply the resulting transformations. Eventually, you would merge some or all of the data together to have the data available as volume-based storage. (this could include partitioning of the resulting volumes and displaying the sub-volumes in positional relation)
We would love to get comments of some of the developers or experienced users of the following tools that we consider to implement an efficient pipeline.
Obviously, there is Render that is designed for massive EM data. However, since we get data from different microscopes in different formats and in much smaller quantities, we are a bit hesitant in setting up such a big and rather complicated infrastructure and creating compatible data.
we then consider TrakEM, that should essentially provide the same underlying stitching functionality. What we are not sure of: how it integrates with the BigDataViewer universe, which is a must. Plus, we would definitely aim for HPC-type parallelization and/or GPU utilization. Both seem not trivial using TrakEM. Please correct us if wrong!
BigStitcher: We could already visualize and stitch small example datasets with BigStitcher very nicely. Our questions would again be HPC-type parallelization and/or GPU utilization due to the size of the datasets. Also, we are not entirely sure if and how neighboring tiles in the
zaxis are considered (they don’t overlap!) for the stitching.
TeraStitcher/Parastitcher: this sounds appealing in terms of parallelization. Has anyone experience in its usage and support of the developers? (I could not find them here unfortunately). Again, we are not entirely sure if and how neighboring tiles in the
zaxis are considered (they don’t overlap!) for the stitching. Also it is not clear if single 2D tiles can be used as input data or if we need to assemble small volume chunks first.
ITKMontage: this looks like a promising generic package. Would it be capable of handling this type of data?
Any other suggestions are much appreciated as well!
Thanks for any feedback!