Elastix Wrapper Build Fails

Hi everyone,
I am trying to build the Elastix Wrapper released by Christian Tischer on my computer under Intellij Idea.
So far these are the steps I have followed:

  • I downloaded the source from GitHub - embl-cba/elastixWrapper
  • Installed IntelliJ Idea and started a project in the source folder
  • IintelliJ had issues with resolving all the dependencies, it could not find imagej-utils-5.1 and after some googling it became apparent that there is no 5.1 version on Tags · tischi/imagej-utils · GitHub but 5.10 is available so I edited elastixWrapper.iml to point towards that version

orderEntry type=“library” name=“Maven: de.embl.cba:imagej-utils:0.5.10” level=“project” /> <

  • With all dependencies resolved, the build now fails with the following error:

C:\Users\Aldebaran\Desktop\elastixWrapper-master\src\test\java\command\RunBigWarpAffineToTransformixFileCommand.java:3:43
java: cannot find symbol
symbol: class BigWarpAffineToTransformixFileCommand
location: package de.embl.cba.elastixwrapper.commands

Any help would be really welcome, as you may have guessed, I don’t have development experience but I would like to use Elastix with a multiple resolution pyramid, the setting is already exposed in the code (but not in the UI) so it should be relatively straightforward to change it. If I can get the project to build first. :slightly_smiling_face:

Thank you.

2 Likes

pinging @Christian_Tischer who’s the best source of help, but I’ll try to have a look at this later

1 Like

I will have a look at what may be happening…

OK, that’s a quite old pom.xml, still using a scijava parent pom which is not up to date. I will try to update it.

I updated the github; please pull again, it should build now!

I would like to use Elastix with a multiple resolution pyramid

I am supporting this already I think. In the UI you can have semicolon separated lists of downsampling factor, for example:

@Parameter( label = "Gaussian smoothing sigma [voxels]" )
public String gaussianSmoothingSigmas = "10,10,10";

This accepts also: “10,10,10;5,5,5;2,2,2” as an input and like this will create a resolution pyramid.

parameters.add("(NumberOfResolutions " + settings.downSamplingFactors.split(";").length + ")");
parameters.add("(ImagePyramidSchedule " + settings.downSamplingFactors.replace(";"," ").replace(","," ")+")");
2 Likes

I can confirm that the project builds without problems now, it took me a bit to report back because I was getting separate .class files rather than a single .jar but I just needed to build the artifact in IntelliJ to get that.

At this stage I can go ahead and try to expose more Elastix settings to the GUI (and hopefully the scripting commands).

Thank you for the fix!

1 Like

Great! Please feel free to stage a pull request if you think that’s of general use and should be included in the Fiji update site.

cc @Kimberly_Meechan who is also working on this repository.

That would be my first pull ever! :grinning: Let’s see where this goes, I’m interested in making very small change for now.
As an example I want to see what happens by specifying a small SampleRegionSize (e.g. 50,50,50) while using a relatively high number of samples. So far i had the best results by increasing the samples by a lot (50000-100000), but the computation gets really slow and it may be that I would need more to properly register my data using full blocks.

2 Likes

Hi @DS4242 - just to let you know, I just merged a large pull request to this repository which restructured a lot of the code (see https://github.com/embl-cba/elastixWrapper/pull/10). So if you’ve already started working on it, it’d be worth pulling the most recent version. Happy to help if stuff has moved around that you need to find again!

1 Like

Hi Kimberly, thanks for the heads up! I did not have time to touch the code since I’m working on an abstract deadline. Without your post, the changes to the repository would have gone totally unnoticed. :smile:

1 Like