From 3145a99ac1e550085fa1ede5fc706c59ec555ff3 Mon Sep 17 00:00:00 2001 From: Christian Tischer Date: Tue, 18 Jun 2024 10:35:48 +0200 Subject: [PATCH] #1137, add examined paths to HCS error message --- pom.xml | 2 +- .../command/open/OpenHCSDatasetCommand.java | 7 +-- .../java/org/embl/mobie/lib/hcs/Plate.java | 9 +++- src/test/java/debug/DebugIssue1044.java | 47 ---------------- src/test/java/debug/DebugIssue1056.java | 43 --------------- src/test/java/debug/DebugIssue1066.java | 53 ------------------- .../OpenOMEZarrHCSWithLabelsFromS3.java | 4 +- src/test/java/develop/hcs/HCSInCarta.java | 5 +- src/test/java/issues/Issue1066.java | 4 +- .../OpenOMEZarrHCSDatasetCommandTest.java | 4 +- .../java/projects/OpenLocalThomasMolDev.java | 3 +- .../OpenAnavoHCSData.java | 4 +- .../OpenAnavoHCSDataWithVoxelDimensions.java | 2 +- 13 files changed, 32 insertions(+), 155 deletions(-) delete mode 100644 src/test/java/debug/DebugIssue1044.java delete mode 100644 src/test/java/debug/DebugIssue1056.java delete mode 100644 src/test/java/debug/DebugIssue1066.java diff --git a/pom.xml b/pom.xml index 0d19f228..9decce59 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.embl.mobie mobie-viewer-fiji - 5.0.6-SNAPSHOT + 5.0.6 diff --git a/src/main/java/org/embl/mobie/command/open/OpenHCSDatasetCommand.java b/src/main/java/org/embl/mobie/command/open/OpenHCSDatasetCommand.java index 133bbb43..057ca17f 100644 --- a/src/main/java/org/embl/mobie/command/open/OpenHCSDatasetCommand.java +++ b/src/main/java/org/embl/mobie/command/open/OpenHCSDatasetCommand.java @@ -33,6 +33,7 @@ import org.embl.mobie.MoBIESettings; import org.embl.mobie.command.CommandConstants; import org.embl.mobie.io.util.IOHelper; +import org.embl.mobie.lib.MoBIEHelper; import org.embl.mobie.lib.hcs.OMEXMLParser; import org.scijava.command.Command; import org.scijava.plugin.Parameter; @@ -50,8 +51,8 @@ public class OpenHCSDatasetCommand implements Command { static { net.imagej.patcher.LegacyInjector.preinit(); } - @Parameter ( label = "HCS Plate Directory" ) // , style = "directory" - public String hcsDirectory; // changed to String, because otherwise S3 addresses do not work + @Parameter ( label = "HCS Plate Directory", style = "directory") + public File hcsDirectory; @Parameter ( label = "Relative Well Margin" ) public double wellMargin = 0.1; @@ -84,7 +85,7 @@ public void run() try { - new MoBIE( hcsDirectory, new MoBIESettings(), wellMargin, siteMargin, voxelDimensions ); + new MoBIE( MoBIEHelper.toURI( hcsDirectory ), new MoBIESettings(), wellMargin, siteMargin, voxelDimensions ); } catch ( IOException e ) { diff --git a/src/main/java/org/embl/mobie/lib/hcs/Plate.java b/src/main/java/org/embl/mobie/lib/hcs/Plate.java index 25773c88..d9db995e 100644 --- a/src/main/java/org/embl/mobie/lib/hcs/Plate.java +++ b/src/main/java/org/embl/mobie/lib/hcs/Plate.java @@ -38,6 +38,7 @@ import mpicbg.spim.data.sequence.FinalVoxelDimensions; import mpicbg.spim.data.sequence.VoxelDimensions; import net.imglib2.RandomAccessibleInterval; +import net.thisptr.jackson.jq.internal.misc.Strings; import org.embl.mobie.io.ImageDataFormat; import org.embl.mobie.io.ImageDataOpener; import org.embl.mobie.io.imagedata.ImageData; @@ -403,7 +404,13 @@ private HCSPattern determineHCSPattern( String hcsDirectory, List< String > path } } - throw new RuntimeException( "Could not determine HCSPattern for " + hcsDirectory ); + ArrayList< String > messages = new ArrayList<>(); + messages.add( "Could not determine HCSPattern for " + hcsDirectory ); + messages.add( "Examined paths:" ); + messages.addAll( paths ); + String join = Strings.join( "\n", messages ); + + throw new RuntimeException( join ); } public Set< Channel > getChannels() diff --git a/src/test/java/debug/DebugIssue1044.java b/src/test/java/debug/DebugIssue1044.java deleted file mode 100644 index b5d60190..00000000 --- a/src/test/java/debug/DebugIssue1044.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * #%L - * Fiji viewer for MoBIE projects - * %% - * Copyright (C) 2018 - 2024 EMBL - * %% - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * #L% - */ -package debug; - -import net.imagej.ImageJ; -import org.embl.mobie.MoBIE; -import org.embl.mobie.MoBIESettings; - -import java.io.IOException; - -public class DebugIssue1044 -{ - public static void main( String[] args ) throws IOException - { - final ImageJ imageJ = new ImageJ(); - imageJ.ui().showUI(); - - new MoBIE("/Users/tischer/Downloads/minimal-mobie/minimal-mobie-project", MoBIESettings.settings().view( "segmentations" ) );// .getViewManager().show( "cell-segmentation" ); - - } -} diff --git a/src/test/java/debug/DebugIssue1056.java b/src/test/java/debug/DebugIssue1056.java deleted file mode 100644 index c417d68a..00000000 --- a/src/test/java/debug/DebugIssue1056.java +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * #%L - * Fiji viewer for MoBIE projects - * %% - * Copyright (C) 2018 - 2024 EMBL - * %% - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * #L% - */ -package debug; - -import net.imagej.ImageJ; -import org.embl.mobie.command.open.OpenHCSDatasetCommand; - -public class DebugIssue1056 -{ - public static void main( String[] args ) - { - new ImageJ().ui().showUI(); - final OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); - command.hcsDirectory = "/Users/tischer/Downloads/TBO-Test31-01-2024-10x-TL-DAPI_Plate_260/TimePoint_1"; - command.run(); - } -} diff --git a/src/test/java/debug/DebugIssue1066.java b/src/test/java/debug/DebugIssue1066.java deleted file mode 100644 index 8e3ea8e2..00000000 --- a/src/test/java/debug/DebugIssue1066.java +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * #%L - * Fiji viewer for MoBIE projects - * %% - * Copyright (C) 2018 - 2024 EMBL - * %% - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * #L% - */ -package debug; - -import net.imagej.ImageJ; -import org.embl.mobie.MoBIE; -import org.embl.mobie.MoBIESettings; -import org.embl.mobie.command.open.OpenHCSDatasetCommand; - -import java.io.IOException; - -public class DebugIssue1066 -{ - public static void main( String[] args ) throws IOException - { - final ImageJ imageJ = new ImageJ(); - imageJ.ui().showUI(); - - OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); - //command.hcsDirectory = "/Users/tischer/Downloads/20200812-CardiomyocyteDifferentiation14-Cycle1_mip.zarr"; - - // https://forum.image.sc/t/ome-zarr-hcs-with-labels-on-s3/97327/3 - command.hcsDirectory = "https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0001A/2551.zarr"; - - command.run(); - } -} diff --git a/src/test/java/develop/OpenOMEZarrHCSWithLabelsFromS3.java b/src/test/java/develop/OpenOMEZarrHCSWithLabelsFromS3.java index fd62220f..27dbf3df 100644 --- a/src/test/java/develop/OpenOMEZarrHCSWithLabelsFromS3.java +++ b/src/test/java/develop/OpenOMEZarrHCSWithLabelsFromS3.java @@ -31,6 +31,8 @@ import net.imagej.ImageJ; import org.embl.mobie.command.open.OpenHCSDatasetCommand; +import java.io.File; + public class OpenOMEZarrHCSWithLabelsFromS3 { public static void main( String[] args ) @@ -40,7 +42,7 @@ public static void main( String[] args ) OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); // Does this really have labels? - command.hcsDirectory = "https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0001A/2551.zarr"; + command.hcsDirectory = new File("https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0001A/2551.zarr"); command.run(); } } diff --git a/src/test/java/develop/hcs/HCSInCarta.java b/src/test/java/develop/hcs/HCSInCarta.java index c4289624..49d3a5ab 100644 --- a/src/test/java/develop/hcs/HCSInCarta.java +++ b/src/test/java/develop/hcs/HCSInCarta.java @@ -31,6 +31,8 @@ import net.imagej.ImageJ; import org.embl.mobie.command.open.OpenHCSDatasetCommand; +import java.io.File; + public class HCSInCarta { public static void main( String[] args ) @@ -39,7 +41,8 @@ public static void main( String[] args ) imageJ.ui().showUI(); OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); - command.hcsDirectory = "/Users/tischer/Downloads/timepoint0"; + command.hcsDirectory = new File( "/Users/tischer/Downloads/timepoint0" ); + //command.hcsDirectory = new File( "/Users/tischer/Downloads/demo_data/Sample_005/Sample_005_images_20240202_1659_30/00000000" ); command.run(); } } diff --git a/src/test/java/issues/Issue1066.java b/src/test/java/issues/Issue1066.java index 6c3cfe3a..f2ce4f59 100644 --- a/src/test/java/issues/Issue1066.java +++ b/src/test/java/issues/Issue1066.java @@ -3,6 +3,8 @@ import net.imagej.ImageJ; import org.embl.mobie.command.open.OpenHCSDatasetCommand; +import java.io.File; + public class Issue1066 { public static void main( String[] args ) @@ -17,7 +19,7 @@ public static void main( String[] args ) // Open local HCS Plate // - does not open the labels...why? - command.hcsDirectory = "/Users/tischer/Downloads/20200812-CardiomyocyteDifferentiation14-Cycle1_mip.zarr"; + command.hcsDirectory = new File( "/Users/tischer/Downloads/20200812-CardiomyocyteDifferentiation14-Cycle1_mip.zarr" ); command.run(); } } diff --git a/src/test/java/org/embl/mobie/command/open/OpenOMEZarrHCSDatasetCommandTest.java b/src/test/java/org/embl/mobie/command/open/OpenOMEZarrHCSDatasetCommandTest.java index 6eeba4ed..86285315 100644 --- a/src/test/java/org/embl/mobie/command/open/OpenOMEZarrHCSDatasetCommandTest.java +++ b/src/test/java/org/embl/mobie/command/open/OpenOMEZarrHCSDatasetCommandTest.java @@ -3,6 +3,8 @@ import net.imagej.ImageJ; import org.junit.jupiter.api.Test; +import java.io.File; + class OpenOMEZarrHCSDatasetCommandTest { static { net.imagej.patcher.LegacyInjector.preinit(); } @@ -13,7 +15,7 @@ public void test( ) new ImageJ().ui().showUI(); // initialise SciJava Services final OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); - command.hcsDirectory = "src/test/resources/single-plane-hcs.zarr"; + command.hcsDirectory = new File( "src/test/resources/single-plane-hcs.zarr" ); command.run(); // TODO: add a test assertion for ensuring the the number of channels is correct. diff --git a/src/test/java/projects/OpenLocalThomasMolDev.java b/src/test/java/projects/OpenLocalThomasMolDev.java index 75c09184..e45a3cf0 100644 --- a/src/test/java/projects/OpenLocalThomasMolDev.java +++ b/src/test/java/projects/OpenLocalThomasMolDev.java @@ -33,6 +33,7 @@ import org.embl.mobie.MoBIESettings; import org.embl.mobie.command.open.OpenHCSDatasetCommand; +import java.io.File; import java.io.IOException; public class OpenLocalThomasMolDev @@ -43,7 +44,7 @@ public static void main( String[] args ) imageJ.ui().showUI(); OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); - command.hcsDirectory = "/Users/tischer/Downloads/TBO-Test31-01-2024-10x-TL-DAPI_Plate_260/TimePoint_1"; + command.hcsDirectory = new File( "/Users/tischer/Downloads/TBO-Test31-01-2024-10x-TL-DAPI_Plate_260/TimePoint_1" ); command.run(); } } diff --git a/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSData.java b/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSData.java index 18084de4..8ec6ca3d 100644 --- a/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSData.java +++ b/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSData.java @@ -31,13 +31,15 @@ import net.imagej.ImageJ; import org.embl.mobie.command.open.OpenHCSDatasetCommand; +import java.io.File; + public class OpenAnavoHCSData { public static void main( String[] args ) { new ImageJ().ui().showUI(); final OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); - command.hcsDirectory = "/Users/tischer/Desktop/moritz/U2OS_subset"; + command.hcsDirectory = new File( "/Users/tischer/Desktop/moritz/U2OS_subset" ); //command.hcsDirectory = "/Users/tischer/Desktop/moritz/CQ1_testfiles"; command.run(); } diff --git a/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSDataWithVoxelDimensions.java b/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSDataWithVoxelDimensions.java index f942bfd8..a7253496 100644 --- a/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSDataWithVoxelDimensions.java +++ b/src/test/java/projects/colony_detection_anavo/OpenAnavoHCSDataWithVoxelDimensions.java @@ -39,7 +39,7 @@ public static void main( String[] args ) { new ImageJ().ui().showUI(); final OpenHCSDatasetCommand command = new OpenHCSDatasetCommand(); - command.hcsDirectory = "/Users/tischer/Desktop/moritz/U2OS_subset"; + command.hcsDirectory = new File( "/Users/tischer/Desktop/moritz/U2OS_subset" ); command.voxelDimensionFetching = OpenHCSDatasetCommand.VoxelDimensionFetching.FromOMEXML; command.omeXML = new File("/Users/tischer/Desktop/moritz/MeasurementResult.ome.xml"); command.run();