Open tischi opened 5 years ago
These versions do not have a version number. But we could keep a list here. Could you please post here the version numbers of the ../jars/fiji-plugins-morphometry-*.jar
that you were previously using?
Corresponds to jars starting from version number fiji-plugin-morphometry-0.4.16.jar
Versions previous to 0.5.5
These versions do not have a version number. But we could keep a list here. Could you please post here the version numbers of the
../jars/fiji-plugins-morphometry-*.jar
that you were previously using?
@tischi Currently using: fiji-plugin-morphometry-0.4.15.jar
Are results from fiji-plugin-morphometry-0.4.15.jar already in the graphs (Zwischenergebnisse.pdf) that Nils was posting? If so, how is it called there?
Are results from fiji-plugin-morphometry-0.4.15.jar already in the graphs (Zwischenergebnisse.pdf) that Nils was posting? If so, how is it called there?
yes, for Spindle Width fiji-plugin-morphometry-0.4.15.jar is called "new plugin" in the graphs for Spindle Length, DNA longest axis there were no differences between between 0.4.15 and the previous version.
A little feedback from the analysis of a dataset with rather suboptimal input images:
For reasons, the DNA signal in this dataset was mostly really weak and I anticipated some problems because of that.
The current version (0.5.5) and the version before performed differently:
Plugin Version Pre-0.5.5: total n = 826 n correct (as judged by pole placement) = 139 n incorrect = 606 n "not processed" (java.lang.IndexOutOfBoundsException or java.lang.NullPointerException) = 81
Plugin Version 0.5.5: total n = 826 n correct (as judged by pole placement) = 360 n incorrect = 276 n "not processed" (java.lang.IndexOutOfBoundsException or java.lang.NullPointerException) = 190
Here are some example files: Throws exception only in new version https://www.dropbox.com/s/thy8mtfkix5vuqn/Throws_Exception_Version_055_only.tif?dl=0
Throws exception in both versions https://www.dropbox.com/s/x7omhzw7dwgl3uw/Throws_Exception_Version_pre055_and_055.tif?dl=0
Output images from each version of the same input image https://www.dropbox.com/s/bql0pymjgtlbsg4/Version_pre055-out.tif?dl=0 https://www.dropbox.com/s/02si1lqj9jsca9s/Version_055-out.tif?dl=0 (input image https://www.dropbox.com/s/98dkn8lx926ewik/HighZoom--W0000--P0001-T0030.tif?dl=0)
(In the 0.5.5 output, the channel containing the tubulin mask doesn't seem to be aligned with the other channels?)
Please let me know if you'd be interested in seeing other examples from this set or the full exception messages!?
Thanks!
The dynamic range is really super low:
I could try to make it work, but, as an alternative: Would it be an option if the plugin would throw some meaningful error there? What would you think?
...another challenge here is that the coverslip seems to be relatively bright in the DNA channel Do you know why that is? Do you maybe have a reflection there?
same issue with the other image: very low dynamic range in DNA and, I think, a reflection signal from the coverslip (which microscope was that?):
Yes, I think having an error message would be totally fine - I wouldn't want to use these images for quantification anyways because of the low signal-to-noise, so I don't think the plugin needs to be able to cope with these.
Good that you pointed out the reflection issue. I thought we solved it but it seems to appear again when the dynamic range is so low. This is all data from the LSM800.
ok! makes sense. I will implement a proper error message for such cases.
What shall we do in terms of output? Should it simply produce no output files?
Maybe have the measurements.txt file but with "NaN" for every column? Then we can easily check for these cases in the concatenated table...
...except the PathInputImage, that's really useful of course.
That makes sense! In addition, there could be a column in the table, called "Comments", and maybe there could be some text, such as "Too low dynamic range in DNA". And in images, where everything went fine we say: "No comment". What do you think?
Sounds good!
Corresponds to jars starting from version number fiji-plugin-morphometry-0.4.18.jar
@TobiasKletter @n-dempe Could you please test it? (Update Fiji to get it)
Corresponds to jars starting from version number fiji-plugin-morphometry-0.4.19.jar
@TobiasKletter @n-dempe Could you please test it? (Update Fiji to get it)
Just to clarify :
If 0.4.19.jar. is version 0.5.7 then 0.4.15.jar is which version?
@n-dempe I think 0.4.15.jar should correspond to version 0.5.4
@tischi https://www.dropbox.com/sh/wmltcno4312rd69/AACJfsQiwnj9VE4ZL5cRwCiga?dl=0&lst= The two last ones in this folder are throwing exceptions and we can't figure out why... Signal-to-noise in DNA channel should be fine, no? Or are the bright non-mitotic DNA signals disrupting something?
Corresponds to jars starting from version number fiji-plugin-morphometry-0.5.0.jar
@tischi
Hi! Since the latest update, I can no longer use the batch processing function, and the following message pops up: Same happened on a different computer after updating. Re-installing Fiji didn't help so I figured it's on the plugin end?
I tried this with other Commands and it seems to me not specific to our Spindle Morphometry.
Sadly no reply yet on image.sc ... For the time being, I tried to call it within an Imagej macro. Would that work, in theory? My code did not (it opens the GUI and wants me to click "ok"), but I might be just missing something:
parent_Dir = "/Path/To/Parent/Directory/";
in_Dir = parent_Dir + "InputFolder/";
out_Dir = parent_Dir + "OutputFolder/";
Voxel_size = 0.25;
Dynamic_range = 7;
DNA_Channel = 2;
Spindle_Channel = 1;
Intermediate_Results = false;
fileList = getFileList(in_Dir);
setBatchMode(true);
for (i = 0; i < fileList.length; i++)
{
fileName = in_Dir + fileList[i];
print("Processing: " + fileName);
import_Args = "Input Image File=" + fileName + "Input Image Files Parent Directory=" + parent_Dir + "Output Directory=" + out_Dir + "Voxel Size for Analysis=" + Voxel_size + "Minimum dynamic range [segmentation threshold gray value]=" + Dynamic_range + "DNA Channel [one-based index]=" + DNA_Channel + "Spindle Channel [one-based index]=" + Spindle_Channel + "Show Intermediate Results=" + Intermediate_Results;
run("Spindle Morphometry", import_Args);
}
setBatchMode(false);
print("Finished analysis.")
Also, it appears that there is some hick-up anyways. When executing the plugin (in non-batch mode...), it throws the following error:
## Spindle Morphometry Measurement
Processing file HighZoom--W0000--P0001-T0002.tif
Create isotropic images...
DNA initial threshold: 49.0
Remove small regions...
Determining DNA axes...
[ERROR] Module threw error
java.lang.NoClassDefFoundError: mcib3d/image3d/ImageInt
at de.embl.cba.morphometry.spindle.SpindleMorphometry.determineDnaAxes(SpindleMorphometry.java:755)
at de.embl.cba.morphometry.spindle.SpindleMorphometry.measure(SpindleMorphometry.java:134)
at de.embl.cba.morphometry.spindle.SpindleMorphometry.run(SpindleMorphometry.java:102)
at de.embl.cba.morphometry.commands.SpindleMorphometryCommand.processFile(SpindleMorphometryCommand.java:120)
at de.embl.cba.morphometry.commands.SpindleMorphometryCommand.run(SpindleMorphometryCommand.java:77)
at org.scijava.command.CommandModule.run(CommandModule.java:199)
at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:228)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: mcib3d.image3d.ImageInt
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 14 more
java.lang.NoClassDefFoundError: mcib3d/image3d/ImageInt
you need to also install the update site: 3D Image Suite
Aaah, I wasn't aware! Thanks, works perfectly now.
Hi @tischi since the last update, we get the following error:
(Fiji Is Just) ImageJ 2.0.0-rc-69/1.52p; Java 1.8.0_202 [64-bit]; Mac OS X 10.14.5; 201MB of 4670MB (4%)
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:309)
at net.imagej.legacy.DefaultLegacyHooks.interceptRunPlugIn(DefaultLegacyHooks.java:163)
at ij.IJ.runPlugIn(IJ.java)
at ij.Executer.runCommand(Executer.java:137)
at ij.Executer.run(Executer.java:66)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:305)
... 5 more
Caused by: java.lang.NullPointerException
at de.embl.cba.morphometry.commands.SpindleMorphometryCommand.processFile(SpindleMorphometryCommand.java:159)
at de.embl.cba.morphometry.commands.SpindleMorphometryCommand.run(SpindleMorphometryCommand.java:94)
at org.scijava.command.CommandModule.run(CommandModule.java:199)
at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:228)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
... 1 more
Any idea?
I do not have an immediate idea. Are there outputs in the IJ log Window?
I found the error. I introduced an error on purpose just to stop the code while trying to develop an improved method to find the cell center in images with more than one cell. I fixed it and uploaded to Fiji.
Works again, thanks!
@TobiasKletter
There is a new version!
Spindle_CoV
to Spindle_Tubulin_CoV
Spindle_Tubulin_Sum
Spindle_Intensity_Threshold
final ArrayList< Double > intensitiesWithMask =
getValuesWithinMaskAsList( intensities, mask );
final double mean = Utils.mean( intensitiesWithMask );
final double sdev = Utils.sdev( intensitiesWithMask, mean );
double cov = sdev / ( mean - meanOffset );
with meanOffset
here being the Spindle_Intensity_Threshold
.
Jars with a version number >= 0.5.3
@TobiasKletter
Could you please:
You should see at the very bottom of the plugins menu:
Works nicely 👍 I will try to quality control how the new DNA segmentation and the spindle angles perform! Anything else I should test?
Just test everything and make issues, but now here: https://github.com/tischi/spindle3d/issues I will be on holidays for 3 weeks from Monday on. Tomorrow I could still do some fixes.
Hi All,
Since the version number of
../jars/fiji-plugins-morphometry-*.jar
might also change because of reasons that are not related to the spindle morphometry measurement plugin, I decided to put a version number into the plugin itself (lower right corner):