public class CellVoyagerReader extends FormatReader
 This reader opens the dataset generated by the Yokagawa Cellvoyager automated
 microscope. The user should point the reader to the file named
 MeasurementResult.xml in the dataset folder.
 
The file format itself consists of several nested folder containing a lot of - sometimes redundant - information. This specific reader exploits the following files:
MeasurementResult.xml that contains high level information
 about image geometry, well (if any) organization, fields arrangement, etc..
 MeasurementResult.ome.xml is a malformed OME xml file that
 contains information on one of the numerous TIF files that compose the pixel
 data. It is used to easily extract common metadata.
 Image folder: They contain the
 pixel data itself. Each well (if any) can have several Areas (fields in the
 HCS vocable), in turn composed of several tiles that are to be stitched
 border to border, without the possibility of a more subtle stitching process.
 
 This reader version was derived from reverse-engineering data files generated
 on a system hosted by the imaging facility of the Institut Pasteur, Paris
 (Imagopole / PFID). It spits file versioned 1.0. The file format
 contains several obvious typos, notably in some XML tags, and as mentionned
 above, the ome.xml is malformed. It is likely that that
 subsequent versions of the CellVoyager format will fix these problems, alas
 incapacitating this reader. Should it happen, mail the author to help them
 update this reader.
| Modifier and Type | Class and Description | 
|---|---|
| private static class  | CellVoyagerReader.AreaInfo | 
| private static class  | CellVoyagerReader.ChannelInfo | 
| private static class  | CellVoyagerReader.FieldInfo | 
| private static class  | CellVoyagerReader.WellInfo | 
| Modifier and Type | Field and Description | 
|---|---|
| private java.util.List<CellVoyagerReader.ChannelInfo> | channelInfos | 
| private java.lang.String | imageFolder | 
| private java.lang.String | measurementResultFile | 
| private java.lang.String | omeMeasurementFile | 
| private static java.lang.String | SINGLE_TIFF_PATH_BUILDER | 
| private java.util.List<java.lang.Integer> | timePoints | 
| private java.util.List<CellVoyagerReader.WellInfo> | wells | 
core, coreIndex, datasetDescription, domains, fillColor, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSIONCOMPRESSION_SUFFIXES, currentId, format, LOGGER, metadataOptions, suffixesCAN_GROUP, CANNOT_GROUP, MUST_GROUP| Constructor and Description | 
|---|
| CellVoyagerReader() | 
| Modifier and Type | Method and Description | 
|---|---|
| int | fileGroupOption(java.lang.String id)Returns an indication of whether the files in a multi-file dataset can
 be handled individually. | 
| private static org.w3c.dom.Element | getChild(org.w3c.dom.Element parent,
        java.lang.String childName) | 
| private static org.w3c.dom.Element | getChild(org.w3c.dom.Element parent,
        java.lang.String[] path) | 
| private static java.util.List<org.w3c.dom.Element> | getChildren(org.w3c.dom.Element parent,
           java.lang.String name) | 
| private static java.lang.String | getChildText(org.w3c.dom.Element parent,
            java.lang.String childName) | 
| private static java.lang.String | getChildText(org.w3c.dom.Element parent,
            java.lang.String[] path) | 
| int | getRequiredDirectories(java.lang.String[] files)Returns the number of parent directories that are important when
 processing the given list of files. | 
| java.lang.String[] | getSeriesUsedFiles(boolean noPixels)Returns an array of filenames needed to open the current series. | 
| protected void | initFile(java.lang.String id)Initializes the given file (parsing header information, etc.). | 
| boolean | isSingleFile(java.lang.String id)Returns true if the named file is expected to be the only
 file in the dataset. | 
| boolean | isThisType(java.lang.String name,
          boolean open)Checks if a file matches the type of this format reader. | 
| byte[] | openBytes(int no,
         byte[] buf,
         int x,
         int y,
         int w,
         int h)Obtains a sub-image of the specified image plane
 into a pre-allocated byte array. | 
| private CellVoyagerReader.AreaInfo | readArea(org.w3c.dom.Element areaEl,
        int startingFieldIndex,
        double pixelWidth,
        double pixelHeight,
        int tileWidth,
        int tileHeight) | 
| private CellVoyagerReader.ChannelInfo | readChannel(org.w3c.dom.Element channelEl) | 
| private CellVoyagerReader.FieldInfo | readField(org.w3c.dom.Element fieldEl) | 
| private double | readFrameInterval(org.w3c.dom.Document document) | 
| private void | readInfo(org.w3c.dom.Document msDocument,
        org.w3c.dom.Document omeDocument) | 
| private java.util.List<java.lang.Integer> | readTimePoints(org.w3c.dom.Document document) | 
| private CellVoyagerReader.WellInfo | readWellInfo(org.w3c.dom.Element wellEl,
            double pixelWidth,
            double pixelHeight,
            int tileWidth,
            int tileHeight) | 
| private int[] | seriesToWellArea(int series)Returns the well index (in the field  wells) and the area index
 (in the fieldCellVoyagerReader.WellInfo.areascorresponding to the specified
 series. | 
addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMetaList, addMeta, addMetaList, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMetaList, close, close, coreIndexToSeries, flattenHashtables, get16BitLookupTable, get8BitLookupTable, getAcquisitionMode, getAdvancedSeriesUsedFiles, getAdvancedUsedFiles, getArcType, getAvailableOptions, getBinning, getBitsPerPixel, getCompression, getContrastMethod, getCoreIndex, getCoreMetadataList, getCorrection, getCurrentCore, getCurrentFile, getDatasetStructureDescription, getDetectorType, getDimensionOrder, getDimensionOrder, getDomains, getEffectiveSizeC, getExperimentType, getFilamentType, getFillColor, getFillRule, getFilterType, getFontFamily, getFontStyle, getGlobalMeta, getGlobalMetadata, getIlluminationType, getImageCount, getImmersion, getIndex, getIndex, getLaserMedium, getLaserType, getMarker, getMedium, getMetadataStore, getMetadataStoreRoot, getMetadataValue, getMicrobeamManipulationType, getMicroscopeType, getModuloC, getModuloT, getModuloZ, getNamingConvention, getOptimalTileHeight, getOptimalTileWidth, getPixelType, getPixelType, getPossibleDomains, getPulse, getResolution, getResolutionCount, getRGBChannelCount, getRotationTransform, getSeries, getSeriesCount, getSeriesMeta, getSeriesMetadata, getSeriesMetadataValue, getSeriesUsedFiles, getSizeC, getSizeT, getSizeX, getSizeY, getSizeZ, getThumbSizeX, getThumbSizeY, getTileColumns, getTileRows, getUnderlyingReaders, getUsedFiles, getUsedFiles, getZCTCoords, getZCTModuloCoords, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, isThisType, isThisType, isThisType, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, openThumbBytes, readPlane, readPlane, readPlane, reopenFile, seriesToCoreIndex, setCoreIndex, setFillColor, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, setResolution, setSeries, updateMetadataListscheckSuffix, checkSuffix, getFormat, getMetadataOptions, getNativeDataType, getSuffixes, getSupportedMetadataLevels, setMetadataOptionsclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetFormat, getNativeDataType, getSuffixesgetMetadataOptions, getSupportedMetadataLevels, setMetadataOptionsgetTileCodec, getTileCodecOptions, openCompressedBytes, openCompressedBytesprivate static final java.lang.String SINGLE_TIFF_PATH_BUILDER
private java.lang.String imageFolder
private java.util.List<CellVoyagerReader.ChannelInfo> channelInfos
private java.util.List<CellVoyagerReader.WellInfo> wells
private java.util.List<java.lang.Integer> timePoints
private java.lang.String measurementResultFile
private java.lang.String omeMeasurementFile
public byte[] openBytes(int no,
                        byte[] buf,
                        int x,
                        int y,
                        int w,
                        int h)
                 throws FormatException,
                        java.io.IOException
IFormatReaderopenBytes in interface IFormatReaderopenBytes in class FormatReaderno - the plane index within the current series.buf - a pre-allocated buffer.x - X coordinate of the upper-left corner of the sub-imagey - Y coordinate of the upper-left corner of the sub-imagew - width of the sub-imageh - height of the sub-imagebuf for convenience.FormatException - if there was a problem parsing the metadata of the
   file.java.io.IOException - if there was a problem reading the file.public int fileGroupOption(java.lang.String id)
                    throws FormatException,
                           java.io.IOException
IFormatReaderfileGroupOption in interface IFormatReaderfileGroupOption in class FormatReaderid - a file in the multi-file datasetFormatTools.MUST_GROUP indicates that the
    files cannot be handled separately; the reader will always detect and
    read all files in the dataset.  FormatTools.CAN_GROUP indicates
    that the files may be handled separately, but file grouping must then
    be disabled via IFormatReader.setGroupFiles(boolean).
    FormatTools.CANNOT_GROUP indicates that the files must be handled
    separately; the reader will not attempt to read all files in the dataset
    (this is rare).FormatExceptionjava.io.IOExceptionFormatTools.MUST_GROUP, 
FormatTools.CAN_GROUP, 
FormatTools.CANNOT_GROUPpublic int getRequiredDirectories(java.lang.String[] files)
                           throws FormatException,
                                  java.io.IOException
IFormatReadergetRequiredDirectories in interface IFormatReadergetRequiredDirectories in class FormatReaderFormatExceptionjava.io.IOExceptionpublic boolean isSingleFile(java.lang.String id)
                     throws FormatException,
                            java.io.IOException
IFormatReaderisSingleFile in interface IFormatReaderisSingleFile in class FormatReaderFormatExceptionjava.io.IOExceptionpublic boolean isThisType(java.lang.String name,
                          boolean open)
FormatReaderFormatReader.isThisType(RandomAccessInputStream).isThisType in interface IFormatReaderisThisType in class FormatReaderopen - If true, and the file extension is insufficient to determine
   the file type, the (existing) file is opened for further analysis.protected void initFile(java.lang.String id)
                 throws FormatException,
                        java.io.IOException
FormatReaderinitFile in class FormatReaderFormatException - if a parsing error occurs processing the file.java.io.IOException - if an I/O error occurs processing the filepublic java.lang.String[] getSeriesUsedFiles(boolean noPixels)
IFormatReaderIFormatHandler.setId(String), if appropriate based upon 'noPixels'.
 The remaining elements are expected to be in a consistent order;
 if a directory listing is necessary to build the list then it should
 be sorted first.getSeriesUsedFiles in interface IFormatReadergetSeriesUsedFiles in class FormatReaderprivate int[] seriesToWellArea(int series)
wells) and the area index
 (in the field CellVoyagerReader.WellInfo.areas corresponding to the specified
 series.series - the desired series.int[] { well, area }.private void readInfo(org.w3c.dom.Document msDocument,
                      org.w3c.dom.Document omeDocument)
               throws FormatException
FormatExceptionprivate CellVoyagerReader.ChannelInfo readChannel(org.w3c.dom.Element channelEl)
private CellVoyagerReader.WellInfo readWellInfo(org.w3c.dom.Element wellEl, double pixelWidth, double pixelHeight, int tileWidth, int tileHeight)
private CellVoyagerReader.AreaInfo readArea(org.w3c.dom.Element areaEl, int startingFieldIndex, double pixelWidth, double pixelHeight, int tileWidth, int tileHeight)
private CellVoyagerReader.FieldInfo readField(org.w3c.dom.Element fieldEl)
private java.util.List<java.lang.Integer> readTimePoints(org.w3c.dom.Document document)
private double readFrameInterval(org.w3c.dom.Document document)
private static final org.w3c.dom.Element getChild(org.w3c.dom.Element parent,
                                                  java.lang.String childName)
private static final org.w3c.dom.Element getChild(org.w3c.dom.Element parent,
                                                  java.lang.String[] path)
private static final java.util.List<org.w3c.dom.Element> getChildren(org.w3c.dom.Element parent,
                                                                     java.lang.String name)
private static final java.lang.String getChildText(org.w3c.dom.Element parent,
                                                   java.lang.String[] path)
private static final java.lang.String getChildText(org.w3c.dom.Element parent,
                                                   java.lang.String childName)
Copyright © 2023 Open Microscopy Environment