I couldn't see whether they have ruled out that ML is clustering based on the image noise and lighting.
I wouldn't be surprised if the same clustering is achieved after masking big/essential chunks of the fly from all the images (for training and testing sets). If indeed the 'imaging features' are the driving weights in clustering, that means the flies should be able to recognize that they are in a different room.
We transpile all C, C++, and Fortran code directly to Java-bytecode using our open source tool called gcc-bridge (https://github.com/bedatadriven/renjin/tree/master/tools/gcc...). This is included as part of Renjin, but you can use it independently as part of your project as well.
I wouldn't be surprised if the same clustering is achieved after masking big/essential chunks of the fly from all the images (for training and testing sets). If indeed the 'imaging features' are the driving weights in clustering, that means the flies should be able to recognize that they are in a different room.