<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Dear Stephan and OpenSpim users,</p>
    <p>thanks for pointing me to the autoloader. I tested it on our data
      and technically it works! It seems tiles and angles are still
      mistaken, but this seems to be a problem of the wrong meta data...
      I now work on automating the MVR process for our setup.<br>
    </p>
    <p>Also, we found a way to truncate the containing ome-xml data, to
      make each output files 'stand-alone' for specific cases. Yet, the
      autoloader is my preferred solution.</p>
    <p>Thanks to all for your help!</p>
    <p>Cheers,</p>
    <p>Chris<br>
    </p>
    <br>
    <div class="moz-cite-prefix">Am 11/7/2017 um 8:17 PM schrieb
      <a class="moz-txt-link-abbreviated" href="mailto:Stephan.Preibisch@mdc-berlin.de">Stephan.Preibisch@mdc-berlin.de</a>:<br>
    </div>
    <blockquote type="cite"
      cite="mid:60858A62-F207-4ED3-8837-DA7A9774127C@mdc-berlin.de">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      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"
            moz-do-not-send="true">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" moz-do-not-send="true">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"
                          moz-do-not-send="true">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"
                moz-do-not-send="true">OpenSPIM@openspim.org</a></span><br>
            <span><a
                href="http://openspim.org/mailman/listinfo/openspim"
                moz-do-not-send="true">http://openspim.org/mailman/listinfo/openspim</a></span><br>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>