<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body dir="auto">
Hi, did you try using the Autoloader of the MVR/BigStitcher (it’s basically the same now) for import? Activate the BigStitcher update site first to get the newest code. It should handle OME-TIff ... if not, send us a small example and we’ll fix it.<br>
<br>
Cheers,
<div>Stephan </div>
<div><br>
<div id="AppleMailSignature">Sent from my iPhone</div>
<div><br>
On Nov 7, 2017, at 16:17, Christoph Sommer <<a href="mailto:christoph.sommer@ist.ac.at">christoph.sommer@ist.ac.at</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>
<p>Dear HongKee,</p>
thank so much for your recommendation and code. When I understand correctly, it would require the deployment of this VirtualStack class to all ImageJ instances of potential users. I was hoping for a solution, which does not need adaptions of ImageJ.<br>
<br>
Alternatively, we could create a different output format in the acquisition (no multi-file OMETiff). I saw that there's already a "IndividualImagesHandler" or an HDF5 handler in "<a href="http://spim.io">spim.io</a>". Does someone have experience with alternative
 output formats?<br>
<br>
Cheers,<br>
Chris<br>
<br>
<br>
<blockquote type="cite" cite="mid:4E099AE3-253B-4B13-8C7F-995E35B5A6B1@mpi-cbg.de">
<div class="">We have also faced those problems because the default image opener is trying to get the metadata for every file.</div>
<div class="">I really recommend you to make own ImageStack class for reading the metadata just once for your whole series.</div>
<div class=""><br class="">
</div>
<div class="">We had to create our version of VirtualStack class based on <a href="https://imagej.nih.gov/ij/plugins/virtual-opener.html" class="" moz-do-not-send="true">
https://imagej.nih.gov/ij/plugins/virtual-opener.html</a> to avoid redundant metadata reading. The below code is not a perfect version, please, use it as a reference.</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">Hopefully, it will help you.</div>
<div class=""><br class="">
</div>
<div class="">Cheers,</div>
<div class="">HongKee</div>
</div>
<div class=""><br class="">
</div>
<div class="">———————————————————</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">import ij.ImageStack;</div>
<div class="">import ij.process.ByteProcessor;</div>
<div class="">import ij.process.ImageProcessor;</div>
<div class="">import loci.formats.FormatException;</div>
<div class="">import loci.formats.ImageReader;</div>
<div class="">import loci.plugins.util.ImageProcessorReader;</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">import loci.common.services.DependencyException;</div>
<div class="">import loci.common.services.ServiceException;</div>
<div class="">import loci.common.services.ServiceFactory;</div>
<div class="">import loci.formats.FormatException;</div>
<div class="">import loci.formats.ImageReader;</div>
<div class="">import loci.formats.meta.IMetadata;</div>
<div class="">import loci.formats.services.OMEXMLService;</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">public class MyImageStack extends ImageStack</div>
<div class="">{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>private int bitDepth;</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>private int width, height;</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>ImageProcessorReader imageProcessorReader;</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>private int zSize = 1, tSize = 1, cSize = 1;</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>private int cEffectiveSize = 1;</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>public void addSlice( String path )</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>if(path != null)</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>if(width == 0)</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>// create format reader</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>ImageReader reader = getImageReader( path );</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>// output dimensional information</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>int sizeX = reader.getSizeX();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>this.width = sizeX;</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>int sizeY = reader.getSizeY();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>this.height = sizeY;</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>// System.out.println("Effective C" + reader.getEffectiveSizeC());</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>setcEffectiveSize( reader.getEffectiveSizeC() );</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>int sizeC = reader.getSizeC();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>int sizeZ = reader.getSizeZ();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>int sizeT = reader.getSizeT();</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>// System.out.println( "C=" + sizeC + " Z=" + sizeZ + " T=" + sizeT );</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>setcSize( sizeC );</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>setzSize( sizeZ );</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>settSize( sizeT );</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>this.bitDepth = reader.getBitsPerPixel();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>this.imageProcessorReader = new ImageProcessorReader( reader );</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>public ImageProcessor getProcessor(int n) </div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>// properly implement to get ImageProcessor based on n</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>public static ImageReader getImageReader( String path )</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>ImageReader reader = null;</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>try</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>ServiceFactory factory = new ServiceFactory();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>OMEXMLService service = factory.getInstance(OMEXMLService.class);</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>IMetadata meta = service.createOMEXMLMetadata();</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>// create format reader</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>reader = new ImageReader();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>reader.setMetadataStore(meta);</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>// initialize file</div>
<div class="">//<span class="Apple-tab-span" style="white-space:pre"> </span>System.out.println(path);</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>reader.setId( path );</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>catch ( DependencyException e )</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>e.printStackTrace();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>catch ( ServiceException e )</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>e.printStackTrace();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>catch ( IOException e )</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>e.printStackTrace();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>catch ( FormatException e )</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>{</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>e.printStackTrace();</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>return reader;</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div class="">}</div>
</div>
<div class=""><br class="">
</div>
<div class="">———————————————</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Nov 6, 2017, at 10:43 AM, Christoph Sommer <<a href="mailto:christoph.sommer@ist.ac.at" class="" moz-do-not-send="true">christoph.sommer@ist.ac.at</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Dear OpenSpim folks,<br class="">
<br class="">
thanks for creating such a great resource!<br class="">
<br class="">
We are currently using an OpenSpim setup and the created output is a multi-file ome-tiff. For many applications (e.g. the MVR from Stephan Preibisch et al.) we need to convert the ome-tiff to normal tiff.<br class="">
<br class="">
Unfortunately, for long time-lapse the conversion takes forever, since for each conversion step all meta-data is parsed from each single time point. My script uses the Bioformats ImporterOptions class, but I can't see how I can bypass the meta-data parsing.
 I also tried the 'bvconvert' command line script but also got issues there. Also reading from Python (e.g. with the module 'tifffile' only return always the first angle image-stack...)<br class="">
<br class="">
Would you have any idea?<br class="">
<br class="">
Cheers,<br class="">
<br class="">
Chris<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
OpenSPIM mailing list<br class="">
<a href="mailto:OpenSPIM@openspim.org" class="" moz-do-not-send="true">OpenSPIM@openspim.org</a><br class="">
<a class="moz-txt-link-freetext" href="http://openspim.org/mailman/listinfo/openspim">http://openspim.org/mailman/listinfo/openspim</a><br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
<div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal;
            orphans: auto; text-align: start; text-indent: 0px;
            text-transform: none; white-space: normal; widows: auto;
            word-spacing: 0px; -webkit-text-stroke-width: 0px;
            word-wrap: break-word; -webkit-nbsp-mode: space;
            -webkit-line-break: after-white-space;" class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal;
              orphans: auto; text-align: start; text-indent: 0px;
              text-transform: none; white-space: normal; widows: auto;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              word-wrap: break-word; -webkit-nbsp-mode: space;
              -webkit-line-break: after-white-space;" class="">
<br class="">
--<br class="">
HongKee Moon<br class="">
Scientific Software Engineer<br class="">
Scientific Computing Facility<br class="">
<br class="">
Max Planck Institute of Molecular Cell Biology and Genetics<br class="">
Pfotenhauerstr. 108<br class="">
01307 Dresden<br class="">
Germany<br class="">
<br class="">
fon: +49 351 210 1923<br class="">
fax: +49 351 210 1907<br class="">
<a href="http://www.mpi-cbg.de" class="" moz-do-not-send="true">www.mpi-cbg.de</a></div>
</div>
</div>
<br class="">
</div>
</blockquote>
<br>
</div>
</blockquote>
<blockquote type="cite">
<div><span>_______________________________________________</span><br>
<span>OpenSPIM mailing list</span><br>
<span><a href="mailto:OpenSPIM@openspim.org">OpenSPIM@openspim.org</a></span><br>
<span><a href="http://openspim.org/mailman/listinfo/openspim">http://openspim.org/mailman/listinfo/openspim</a></span><br>
</div>
</blockquote>
</div>
</body>
</html>