To do

From elastix
Jump to: navigation, search

Below you can find to-do list for elastix. If you find a bug, or have a feature request, you may add it here!

  • Use the following tags in the Description column: BUG/FEAT/DOC/STY = Bug / feature request / documentation / coding style.
  • Priority: a value in {1,2,3,4} ~ {high, medium, low, not going to do}.
  • Status: a value from 0-100%, where 100% means that the feature has been implemented and well documented.
  • MS = Marius Staring; SK = Stefan Klein


Item Description Priority Status Comment
todo0000 DOC: Create a powerpoint presentation with the elastix basics 3 0% SK: I have some material already
MS: me too
todo0001 DOC: Supply preset settings for several applications 3 100% See the parameter file database
todo0002 FEAT/DOC: How to do a proper initialisation? Especially for large offsets between scans. 1 50% See the manual for documentation. AutomaticTransformInitialization option was added. Some content-based method is lacking (for example, based on center of mass). MS: Center of gravity was added.
todo0003 DOC: On which platforms does elastix compile? 3 100% see the FAQ on the website. Also see the dashboard, those who are there are supported: link
todo0004 DOC: Keelin: I would like a really nice clear description of the precise steps involved in the registration procedure. (I know that depends a lot on what kind of registration you chose!). 3 100% See the manual. See the parameter file database.
todo0005 DOC: Keelin: I think it would be nice to organise this so that you can read a simple overview, but then click on links for progressively more detailed information about various steps. And within these more detailed pages there can again be further links for more detailed information. That way you cater for the very ill-informed user who needs a "back to basics" description, as well as the more advanced users, and it isn't necessary to read a really detailed description of everything if you only want a lot of detail about one particular part. 4 100% This is quite a lot of work. Let's first see if the manual answers most questions.
Not going to do. We have the manual, the wiki and the mailing list.
todo0006 DOC: The elastix website http://elastix.isi.uu.nl could be improved. Better linkage to places where one can find information. 1 50% We did already do this some time ago, but now new information has been added, so some more reorganization is needed.
todo0007 DOC: Write article about elastix 1 100% Published in IEEE TMI in January 2010 issue.
todo0008 DOC: Submit some parts of elastix to Insight Journal 1 30%

Combining Transforms
TransformToDeformationFieldSource
Image samplers
Advanced transforms that support spatial derivatives
Penalty terms
TransformTo(DeterminantOf)SpatialJacobianSource
rework of + new optimizers
Combine cost functions + registration framework
Reworked Mattes mutual information?
B-spline helper classes

todo0009 DOC: Add doxygen documentation in the source code about the transform parameters. Currently not all of them are documented 1 100% Done.
todo0010 FEAT: Supply the desired B-spline grid spacing in mm 2 100% Use the FinalGridSpacingInPhysicalUnits or FinalGridSpacingInVoxels parameter.
todo0011 FEAT: Supply the desired B-spline multi-resolution grid as is done with the pyramids 2 100% Use the GridSpacingSchedule parameter.
todo0012 STY: Clean up ASGD code 2 40% SK: removed a lot of old experimental stuff and assume advanced transforms. Implemented sparse version of the ComputeJacobianTerms which is faster and more memory-friendly. Still need to put the estimation code in a separate class. MS: Yuchuan did a partial cleanup.
todo0013 FEAT: More error-checking on the parameters. For example the dimension of the fixed and moving images could be compared with the one given in the parameter file. 2 100%
todo0014 FEAT: Add support for entering floating point numbers without a dot (5 instead of 5.0) in the parameter file 1 100% MS: Has been tested and released in elastix 4.2.
todo0015 FEAT: Add a histogram estimation with outlier rejection to the mutual information metric: choose the bins from the 1% to the 99% percentile. 3 0%
todo0016 FEAT: Set default values for the parameters such that the registration works reasonably well in most cases 2 100% The AdaptiveStochasticGradientDescent optimizer works with default settings in most cases. For some other classes we also supplied default parameters (most metrics), and the default number of iterations is set to a reasonable value for most optimizers. We still need to do a thorough check of all parameters, to finish this task. Some parameter require methodological developments. elastix 4.3: The example parameter files were updated and uploaded to the parameter file database as "default0".
todo0017 FEAT: Make it easy to apply an inverse transformation if that exists 1 80% SK: Implemented a method to compute the inverse transformation and added documentation to the manual. I used it for several projects and it works well, but the whole process could be more user-friendly.
todo0018 FEAT: Set B-spline grid depending on bounding box of fixed mask 3 0%
todo0019 FEAT: Release memory of the pyramids at the end of the registration, but before starting resampling the moving image. This will reduce the maximum memory footprint of elastix 3 100% MS: we try to release memory for the masks and the fixed image, and also of the interpolator (for the B-spline interpolator a large image the size of the moving image in doubles is allocated). End of 2009 we fixed some bugs in elastix and the ITK related to this. Will appear in ITK 3.18.
todo0020 FEAT: Release memory of a pyramid level at the end of that level. 3 100% MS: implemented in elastix 4.0. At the start of the registration memory for all resolutions is allocated. After each resolution the memory of that resolution is freed, resulting in a gradual decrease of memory. This will therefore not enable more resolution levels.
todo0021 FEAT: Create a new pyramid and registration filter that blurs the images just before the start of a new resolution. This way we only need to keep the current blurred image in memory and not that of previous and subsequent resolution levels. Downside: it will be slower, since no use is made of recursive Gaussian filtering. Also, in case no blurring is performed, just pass the fixed and moving image pointers in the metric, so that no additional memory is needed. 3 80% MS: this is implemented in the GenericPyramid by Denis Shamonin. Requires some testing.
todo0022 BUG: The resolution timer is not correct for large time intervals 3 100% Fixed in version 4.4 by Steve M. Robbins.
todo0023 BUG: Spacing with the FullSearchOptimizer (also other bug with this class?) 4 100% MS: what kind of a bug, do you remember SK? SK: No. MS: Set priority to 4 (not going to do).
todo0024 DOC: Clarified which indices are meant in 9: indices of the fixed or indices of the moving image? The answer is: fixed. A useful feature would be to have the voxel indices of the moving image: implemented. For that feature of course it is necessary to supply a moving image to transformix, via the =-in= option. This has as a downside that the input image is also deformed which consumes time. Fix this. 2 100% In the manual it is documented.
todo0025 BUG: When WriteImageAfterEachResolution is true, the image gets resampled even when the exception regarding not enough overlap is thrown. 2 0%
todo0026 FEAT: Use one of the new morphology filters from review to erode the masks. elastix currently uses the BinaryErodeImageFilter, which can consume 20-30 seconds per resolution for larger masks. 2 100% MS: Done, we now use the parabolic erode filters from Richard Beare and Gaetan Lehmann.
todo0027 BUG: When using BSplineInterpolatorFloat, the AdvancedImageToImageMetric doesn't recognise the interpolator as being a BSplineInterpolator 2 100% SK: the bug is caused by the dynamic_cast which only tries for the double version. Fixed in elastix 4.3.
todo0028 FEAT: Convert all transforms to itkAdvancedTransforms 1 100% SK: implemented all, tested all for 2d and 3d, and using combination transform with TransformBendingEnergyPenaltyTerm. The advanced transform is now enforced.
todo0029 FEAT: Native support for MevisLab Dicom/Tiff image format 2 100% SK: Works if ITK is compiled with Rashindra's MevisImageIO stuff. Modification of the ITK tree is not necessary anymore; simply compile ITK with tif3.8.2 and gdcm 2.0.12, and set the ELASTIX_USE_MEVISDICOMTIFF cmake option when compiling elastix. On windows 64 I couldn't find a binary distribution of libtiff, but in ITKv4 a new version of libtiff and gdcm will be included, so then all will hopefully be solved.
todo0030 FEAT: Different nonrigid transformation models 1 100% SK: A thin-plate spline like transform has been implemented and documented.
todo0031 FEAT: Implement spatial derivatives for all transforms. 1 100% MS: done. Released since elastix 4.2. Found some bugs since. Completely done in elastix 4.3.
todo0032 FEAT: Add option for transformix to output the complete Jacobian matrix (instead of just the determinant of the Jacobian (request by Alexander Leemans, and others) 2 100% SK: implemented it. 'transformix -jacmat all' does the trick. It will be included in elastix 4.4. Need to update the manual still.
MS: Updated the manual
todo0033 FEAT: Support .vtk format to supply input points to transformix 1 100% SK: implemented, tested, documented.
todo0034 FEAT: Make it possible to include an external tree of elastix components 1 100% SK: Done. Added documentation to manual.
todo0035 FEAT: Reorganise svn tree, to make a public part and a private part. 1 100% SK. Done, with help of Coert Metz. Documentation has been added to manual how to access the subversion repository (Section 3.2.2).
todo0036 FEAT: Implement automatic packaging to simplify making a release 1 90% MS: Using CPack. Tested with success on win32, win64 ubuntu32, ubuntu64. Using some hacks though.
todo0037 FEAT: Include a quaternion transform (requested by Andriy Fedorov) 2 0%
todo0038 FEAT: Support reading and writing ITK transform factories (requested by Andriy Fedorov) 3 0%
todo0039 FEAT: Generate elxSupportedImageTypes with CMake, so that users can choose at generation time what image types to compile elastix for 2 100% MS: implemented.
todo0040 STY/BUG: Fix the ugly check for B-spline interpolators in AdvancedImageToImageMetric. The EvaluateDerivative method should probably be declared in a base class of the interpolators. 2 0%
todo0041 ENH: Replace the many initializers for each transform by just one class that works for all. Maybe using partial template specialization. Currently it's hard to maintain. 3 0%
todo0042 BUG: elastix crashes when the mask is smaller than fixed image 1 0%
todo0043 FEAT: The random sampler of the VarianceOverLastDimension metric is every iteration seeded with the clock time. It would be nice to make the seeding similar to the seeders of the random samplers, so that you can achieve equal results with one global seed. 3 0%
Personal tools