Molecular Dynamics GEL File Format and Private Tags
The Molecular Dynamics GEL file format is just TIFF, extended with a few private tags.
The private tags are:
- MD FileTag
- MD ScalePixel
- MD ColorTable
- MD LabName
- MD SampleInfo
- MD PrepDate
- MD PrepTime
- MD FileUnits
There are a number of quirks that require special attention.
- The file extension is 'GEL', not 'TIF' or 'TIFF'
- We've found that, at least some of the time, the first IFD contains a regular 8 or 16 bit grayscale image. This IFD does not contain the private tags as you would expect. Instead, the next IFD, where you would expect image data for a second page, contains these private tags and only these private tags.
The image data, as encoded in the first IFD, has PhotometricInterpretation MinIsWhite. Yet, if the MD FileTag tag has value 2 (Square root data format), it is not regular grayscale. In that case it is instead a scaled square
root of grayscale. The data should be decoded like this:
grayscale_value = Square(stored_value)*scale
...where 'scale' is to be retrieved from the MD ScalePixel tag.
If the MD FileTag has value 128 (Linear data format), then only the scaling part needs to be applied.
Please don't use the GEL file format as a good example for a TIFF application of your own, as it breaks two or three vital rules of TIFF.
- All data related to a single same page should be stored in a single IFD and possibly in child IFDs thereof. This is what makes TIFF multi-page, and enables TIFF editors to concatenate TIFF files, and delete pages by unlinking them, without the need to be aware of and scan for all specific tags and GEL-like applications that confuse the scheme.
- All IFDs in the main chain should be regular image IFDs. Only child IFDs are allowed to contain no image.
- The data should be such that mainstream readers that can access the image data, should be allowed to simply ignore any unknown private tags. This means that private tags are not allowed to change the 'simple representation' of the data. In this case, it means the MD FileTag and MD ScalePixel tags are not allowed to modify the meaning of the PhotometricInterpretation tag. So, instead, a private Photometric code should have been allocated with Adobe to mean this type of scaled square root image data, allowing the mainstream readers that are unaware of the scheme to at least detect that they cannot decode this data and meaningfully represent it. Alternatively, if meaningful interchange with mainstream readers is considered important, the file format should have included a main IFD with simple 8bit grayscale data, perhaps downsampled, and a child IFD with the proprietary Photometric code and the full scaled square root data, so as to enable storage of all specialized data at the same time.