Class CellVoyagerReader
- All Implemented Interfaces:
Closeable,AutoCloseable,ICompressedTileReader,IFormatHandler,IFormatReader,IMetadataConfigurable,IPyramidHandler
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.xmlthat contains high level information about image geometry, well (if any) organization, fields arrangement, etc..MeasurementResult.ome.xmlis 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.- All the TIF files in the
Imagefolder: 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.
- Author:
- Jean-Yves Tinevez jeanyves.tinevez at gmail.com, Melissa Linkert
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classprivate static final classprivate static final classprivate static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List<CellVoyagerReader.ChannelInfo> private Stringprivate Stringprivate Stringprivate static final Stringprivate List<CellVoyagerReader.WellInfo> Fields inherited from class loci.formats.FormatReader
core, coreIndex, datasetDescription, domains, fillColor, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSIONFields inherited from class loci.formats.FormatHandler
COMPRESSION_SUFFIXES, currentId, format, LOGGER, metadataOptions, suffixesFields inherited from interface loci.formats.IFormatReader
CAN_GROUP, CANNOT_GROUP, MUST_GROUP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintReturns an indication of whether the files in a multi-file dataset can be handled individually.private static final Elementprivate static final ElementgetChildren(Element parent, String name) private static final StringgetChildText(Element parent, String childName) private static final StringgetChildText(Element parent, String[] path) intgetRequiredDirectories(String[] files) Returns the number of parent directories that are important when processing the given list of files.String[]getSeriesUsedFiles(boolean noPixels) Returns an array of filenames needed to open the current series.protected voidInitializes the given file (parsing header information, etc.).booleanisSingleFile(String id) Returns true if the named file is expected to be the only file in the dataset.booleanisThisType(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.AreaInforeadArea(Element areaEl, int startingFieldIndex, double pixelWidth, double pixelHeight, int tileWidth, int tileHeight) private CellVoyagerReader.ChannelInforeadChannel(Element channelEl) private CellVoyagerReader.FieldInfoprivate doublereadFrameInterval(Document document) private voidreadTimePoints(Document document) private CellVoyagerReader.WellInforeadWellInfo(Element wellEl, double pixelWidth, double pixelHeight, int tileWidth, int tileHeight) private int[]seriesToWellArea(int series) Returns the well index (in the fieldwells) and the area index (in the fieldCellVoyagerReader.WellInfo.areascorresponding to the specified series.Methods inherited from class loci.formats.FormatReader
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, updateMetadataListsMethods inherited from class loci.formats.FormatHandler
checkSuffix, checkSuffix, getFormat, getMetadataOptions, getNativeDataType, getSuffixes, getSupportedMetadataLevels, setMetadataOptionsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface loci.formats.ICompressedTileReader
getTileCodec, getTileCodecOptions, openCompressedBytes, openCompressedBytesMethods inherited from interface loci.formats.IFormatHandler
getFormat, getNativeDataType, getSuffixesMethods inherited from interface loci.formats.IMetadataConfigurable
getMetadataOptions, getSupportedMetadataLevels, setMetadataOptions
-
Field Details
-
SINGLE_TIFF_PATH_BUILDER
- See Also:
-
imageFolder
-
channelInfos
-
wells
-
timePoints
-
measurementResultFile
-
omeMeasurementFile
-
-
Constructor Details
-
CellVoyagerReader
public CellVoyagerReader()
-
-
Method Details
-
openBytes
public byte[] openBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, IOException Description copied from interface:IFormatReaderObtains a sub-image of the specified image plane into a pre-allocated byte array.- Specified by:
openBytesin interfaceIFormatReader- Specified by:
openBytesin classFormatReader- Parameters:
no- 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-image- Returns:
- the pre-allocated buffer
buffor convenience. - Throws:
FormatException- if there was a problem parsing the metadata of the file.IOException- if there was a problem reading the file.
-
fileGroupOption
Description copied from interface:IFormatReaderReturns an indication of whether the files in a multi-file dataset can be handled individually. This method is only useful for formats and datasets which contain multiple files.- Specified by:
fileGroupOptionin interfaceIFormatReader- Overrides:
fileGroupOptionin classFormatReader- Parameters:
id- a file in the multi-file dataset- Returns:
- an int indicating that we cannot, must, or might group the files.
A return value of
FormatTools.MUST_GROUPindicates that the files cannot be handled separately; the reader will always detect and read all files in the dataset.FormatTools.CAN_GROUPindicates that the files may be handled separately, but file grouping must then be disabled viaIFormatReader.setGroupFiles(boolean).FormatTools.CANNOT_GROUPindicates that the files must be handled separately; the reader will not attempt to read all files in the dataset (this is rare). - Throws:
FormatExceptionIOException- See Also:
-
getRequiredDirectories
Description copied from interface:IFormatReaderReturns the number of parent directories that are important when processing the given list of files. The number of directories is relative to the common parent. For example, given a list with these two files: /path/to/file/foo /path/to/file/that/is/related A return value of 0 indicates that "/path/to/file/" is irrelevant. A return value of 1 indicates that "/path/to/" is irrelevant. Return values less than 0 are invalid. All listed files are assumed to belong to datasets of the same format.- Specified by:
getRequiredDirectoriesin interfaceIFormatReader- Overrides:
getRequiredDirectoriesin classFormatReader- Throws:
FormatExceptionIOException
-
isSingleFile
Description copied from interface:IFormatReaderReturns true if the named file is expected to be the only file in the dataset. For single-file formats, always returns true.- Specified by:
isSingleFilein interfaceIFormatReader- Overrides:
isSingleFilein classFormatReader- Throws:
FormatExceptionIOException
-
isThisType
Description copied from class:FormatReaderChecks if a file matches the type of this format reader. Checks filename suffixes against those known for this format. If the suffix check is inconclusive and the open parameter is true, the file is opened and tested withFormatReader.isThisType(RandomAccessInputStream).- Specified by:
isThisTypein interfaceIFormatReader- Overrides:
isThisTypein classFormatReader- Parameters:
open- If true, and the file extension is insufficient to determine the file type, the (existing) file is opened for further analysis.
-
initFile
Description copied from class:FormatReaderInitializes the given file (parsing header information, etc.). Most subclasses should override this method to perform initialization operations such as parsing metadata.- Overrides:
initFilein classFormatReader- Throws:
FormatException- if a parsing error occurs processing the file.IOException- if an I/O error occurs processing the file
-
getSeriesUsedFiles
Description copied from interface:IFormatReaderReturns an array of filenames needed to open the current series. If the 'noPixels' flag is set, then only files that do not contain pixel data will be returned. The first element in the array is expected to be the path passed toIFormatHandler.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.- Specified by:
getSeriesUsedFilesin interfaceIFormatReader- Overrides:
getSeriesUsedFilesin classFormatReader
-
seriesToWellArea
private int[] seriesToWellArea(int series) Returns the well index (in the fieldwells) and the area index (in the fieldCellVoyagerReader.WellInfo.areascorresponding to the specified series.- Parameters:
series- the desired series.- Returns:
- the corresponding well index and area index, as a 2-element array
of
int[] { well, area }.
-
readInfo
- Throws:
FormatException
-
readChannel
-
readWellInfo
private CellVoyagerReader.WellInfo readWellInfo(Element wellEl, double pixelWidth, double pixelHeight, int tileWidth, int tileHeight) -
readArea
private CellVoyagerReader.AreaInfo readArea(Element areaEl, int startingFieldIndex, double pixelWidth, double pixelHeight, int tileWidth, int tileHeight) -
readField
-
readTimePoints
-
readFrameInterval
-
getChild
-
getChild
-
getChildren
-
getChildText
-
getChildText
-