Bio-Formats does not set LUTs according to channels in *.nd image file

Hi @OMETeam,

A user of our facility has recorded a time-laps sequence in *.nd format (download, 10GB) and reported that when opened with Bio-Formats or imported in OMERO, the channel LUTs are all gray or red/green. The file is in the MetaMorph Stack STK file format.

It is not a major issue of course, but BF already has correctly found the channel names as

  • Channel ID=“Channel:0:0” Name=“BrightfieldNoShift” SamplesPerPixel=“1”
  • Channel ID=“Channel:0:1” Name=“GFP” SamplesPerPixel=“1”

so I thought this information could be used to set the default LUTs as well.

Thanks for your support and looking forward to the community meeting,
Kai

For ND2 files specifically Bio-Formats tries to parse the following 2 tags, ChannelColor and DyeName from the ND2 metadata in order to set the LUTs. Though as suggested using the channel names may also be also be a way of applying more sensible default values when the metadata is not found.

Hi @dgault,
thanks for your reply!
I edited my above post to correct a mistake:
the file format is actually MetaMorph Stack (STK), not Nikon NIS-Elements ND2.
Sorry for the confusion and thanks for your help!

The .stk files are usually just a part of the dataset (unless you acquired a single-channel, single-timepoint stack). You should open the .nd file instead, as each dataset (in Metamorph 1.0 format) consists of one .nd file and many .stk files (one per channel, per time point, and per position).

Do you see the same issue when opening the .nd file?

Hi Jan,

thanks as well for your reply :slight_smile:
Yes this is indeed what I did, i.e. I opened the .nd file with Bio-Formats.
The Channel IDs posted above are taken from the ome-xml associated to .nd file as well.

For MetaMorph files, if you Show Info is there any metadata with tags for COLOR_MAP or StandardLUT?

I just checked for the file in the first post and indeed found in Image > Show Info:

  • StandardLUT = monochrome

I did not find any mentioning of Color map.
Please find the entire output of Show Info below:

 BitsPerPixel = 16
 DimensionOrder = XYCZT
 IsInterleaved = false
 IsRGB = false
 LittleEndian = true
 PixelType = uint16
 Series 0 Name = BrightfieldNoShift/GFP
 SizeC = 2
 SizeT = 1
 SizeX = 2048
 SizeY = 2048
 SizeZ = 25
Binning = 1
BitsPerSample = 16
CalibrationUnits = um
CameraBin = 1x1
Channel #0 _IllumSetting_ = BrightfieldNoShift
Channel #0 _MagSetting_ = 100x sCMOS
Channel #1 _IllumSetting_ = BrightfieldNoShift
Channel #1 _MagSetting_ = 100x sCMOS
Channel #10 _IllumSetting_ = BrightfieldNoShift
Channel #10 _MagSetting_ = 100x sCMOS
Channel #11 _IllumSetting_ = BrightfieldNoShift
Channel #11 _MagSetting_ = 100x sCMOS
Channel #12 _IllumSetting_ = BrightfieldNoShift
Channel #12 _MagSetting_ = 100x sCMOS
Channel #13 _IllumSetting_ = BrightfieldNoShift
Channel #13 _MagSetting_ = 100x sCMOS
Channel #14 _IllumSetting_ = BrightfieldNoShift
Channel #14 _MagSetting_ = 100x sCMOS
Channel #15 _IllumSetting_ = BrightfieldNoShift
Channel #15 _MagSetting_ = 100x sCMOS
Channel #16 _IllumSetting_ = BrightfieldNoShift
Channel #16 _MagSetting_ = 100x sCMOS
Channel #17 _IllumSetting_ = BrightfieldNoShift
Channel #17 _MagSetting_ = 100x sCMOS
Channel #18 _IllumSetting_ = BrightfieldNoShift
Channel #18 _MagSetting_ = 100x sCMOS
Channel #19 _IllumSetting_ = BrightfieldNoShift
Channel #19 _MagSetting_ = 100x sCMOS
Channel #2 _IllumSetting_ = BrightfieldNoShift
Channel #2 _MagSetting_ = 100x sCMOS
Channel #20 _IllumSetting_ = BrightfieldNoShift
Channel #20 _MagSetting_ = 100x sCMOS
Channel #21 _IllumSetting_ = BrightfieldNoShift
Channel #21 _MagSetting_ = 100x sCMOS
Channel #22 _IllumSetting_ = BrightfieldNoShift
Channel #22 _MagSetting_ = 100x sCMOS
Channel #23 _IllumSetting_ = BrightfieldNoShift
Channel #23 _MagSetting_ = 100x sCMOS
Channel #24 _IllumSetting_ = BrightfieldNoShift
Channel #24 _MagSetting_ = 100x sCMOS
Channel #25 _IllumSetting_ = BrightfieldNoShift
Channel #25 _MagSetting_ = 100x sCMOS
Channel #26 _IllumSetting_ = BrightfieldNoShift
Channel #26 _MagSetting_ = 100x sCMOS
Channel #27 _IllumSetting_ = BrightfieldNoShift
Channel #27 _MagSetting_ = 100x sCMOS
Channel #28 _IllumSetting_ = BrightfieldNoShift
Channel #28 _MagSetting_ = 100x sCMOS
Channel #29 _IllumSetting_ = BrightfieldNoShift
Channel #29 _MagSetting_ = 100x sCMOS
Channel #3 _IllumSetting_ = BrightfieldNoShift
Channel #3 _MagSetting_ = 100x sCMOS
Channel #30 _IllumSetting_ = BrightfieldNoShift
Channel #30 _MagSetting_ = 100x sCMOS
Channel #31 _IllumSetting_ = BrightfieldNoShift
Channel #31 _MagSetting_ = 100x sCMOS
Channel #32 _IllumSetting_ = BrightfieldNoShift
Channel #32 _MagSetting_ = 100x sCMOS
Channel #33 _IllumSetting_ = BrightfieldNoShift
Channel #33 _MagSetting_ = 100x sCMOS
Channel #34 _IllumSetting_ = BrightfieldNoShift
Channel #34 _MagSetting_ = 100x sCMOS
Channel #35 _IllumSetting_ = BrightfieldNoShift
Channel #35 _MagSetting_ = 100x sCMOS
Channel #36 _IllumSetting_ = BrightfieldNoShift
Channel #36 _MagSetting_ = 100x sCMOS
Channel #37 _IllumSetting_ = BrightfieldNoShift
Channel #37 _MagSetting_ = 100x sCMOS
Channel #38 _IllumSetting_ = BrightfieldNoShift
Channel #38 _MagSetting_ = 100x sCMOS
Channel #39 _IllumSetting_ = BrightfieldNoShift
Channel #39 _MagSetting_ = 100x sCMOS
Channel #4 _IllumSetting_ = BrightfieldNoShift
Channel #4 _MagSetting_ = 100x sCMOS
Channel #40 _IllumSetting_ = BrightfieldNoShift
Channel #40 _MagSetting_ = 100x sCMOS
Channel #41 _IllumSetting_ = BrightfieldNoShift
Channel #41 _MagSetting_ = 100x sCMOS
Channel #42 _IllumSetting_ = BrightfieldNoShift
Channel #42 _MagSetting_ = 100x sCMOS
Channel #43 _IllumSetting_ = BrightfieldNoShift
Channel #43 _MagSetting_ = 100x sCMOS
Channel #44 _IllumSetting_ = BrightfieldNoShift
Channel #44 _MagSetting_ = 100x sCMOS
Channel #45 _IllumSetting_ = BrightfieldNoShift
Channel #45 _MagSetting_ = 100x sCMOS
Channel #46 _IllumSetting_ = BrightfieldNoShift
Channel #46 _MagSetting_ = 100x sCMOS
Channel #47 _IllumSetting_ = BrightfieldNoShift
Channel #47 _MagSetting_ = 100x sCMOS
Channel #48 _IllumSetting_ = BrightfieldNoShift
Channel #48 _MagSetting_ = 100x sCMOS
Channel #49 _IllumSetting_ = BrightfieldNoShift
Channel #49 _MagSetting_ = 100x sCMOS
Channel #5 _IllumSetting_ = BrightfieldNoShift
Channel #5 _MagSetting_ = 100x sCMOS
Channel #50 _IllumSetting_ = BrightfieldNoShift
Channel #50 _MagSetting_ = 100x sCMOS
Channel #51 _IllumSetting_ = BrightfieldNoShift
Channel #51 _MagSetting_ = 100x sCMOS
Channel #52 _IllumSetting_ = BrightfieldNoShift
Channel #52 _MagSetting_ = 100x sCMOS
Channel #53 _IllumSetting_ = BrightfieldNoShift
Channel #53 _MagSetting_ = 100x sCMOS
Channel #54 _IllumSetting_ = BrightfieldNoShift
Channel #54 _MagSetting_ = 100x sCMOS
Channel #55 _IllumSetting_ = BrightfieldNoShift
Channel #55 _MagSetting_ = 100x sCMOS
Channel #56 _IllumSetting_ = BrightfieldNoShift
Channel #56 _MagSetting_ = 100x sCMOS
Channel #57 _IllumSetting_ = BrightfieldNoShift
Channel #57 _MagSetting_ = 100x sCMOS
Channel #58 _IllumSetting_ = BrightfieldNoShift
Channel #58 _MagSetting_ = 100x sCMOS
Channel #59 _IllumSetting_ = BrightfieldNoShift
Channel #59 _MagSetting_ = 100x sCMOS
Channel #6 _IllumSetting_ = BrightfieldNoShift
Channel #6 _MagSetting_ = 100x sCMOS
Channel #60 _IllumSetting_ = BrightfieldNoShift
Channel #60 _MagSetting_ = 100x sCMOS
Channel #61 _IllumSetting_ = BrightfieldNoShift
Channel #61 _MagSetting_ = 100x sCMOS
Channel #62 _IllumSetting_ = BrightfieldNoShift
Channel #62 _MagSetting_ = 100x sCMOS
Channel #63 _IllumSetting_ = BrightfieldNoShift
Channel #63 _MagSetting_ = 100x sCMOS
Channel #64 _IllumSetting_ = BrightfieldNoShift
Channel #64 _MagSetting_ = 100x sCMOS
Channel #65 _IllumSetting_ = BrightfieldNoShift
Channel #65 _MagSetting_ = 100x sCMOS
Channel #66 _IllumSetting_ = BrightfieldNoShift
Channel #66 _MagSetting_ = 100x sCMOS
Channel #67 _IllumSetting_ = BrightfieldNoShift
Channel #67 _MagSetting_ = 100x sCMOS
Channel #68 _IllumSetting_ = BrightfieldNoShift
Channel #68 _MagSetting_ = 100x sCMOS
Channel #69 _IllumSetting_ = BrightfieldNoShift
Channel #69 _MagSetting_ = 100x sCMOS
Channel #7 _IllumSetting_ = BrightfieldNoShift
Channel #7 _MagSetting_ = 100x sCMOS
Channel #70 _IllumSetting_ = BrightfieldNoShift
Channel #70 _MagSetting_ = 100x sCMOS
Channel #71 _IllumSetting_ = BrightfieldNoShift
Channel #71 _MagSetting_ = 100x sCMOS
Channel #72 _IllumSetting_ = BrightfieldNoShift
Channel #72 _MagSetting_ = 100x sCMOS
Channel #73 _IllumSetting_ = BrightfieldNoShift
Channel #73 _MagSetting_ = 100x sCMOS
Channel #74 _IllumSetting_ = BrightfieldNoShift
Channel #74 _MagSetting_ = 100x sCMOS
Channel #8 _IllumSetting_ = BrightfieldNoShift
Channel #8 _MagSetting_ = 100x sCMOS
Channel #9 _IllumSetting_ = BrightfieldNoShift
Channel #9 _MagSetting_ = 100x sCMOS
Compression = Uncompressed
DateTime = 03/01/2020 14:28:49:465
Description = File recreated from images.
Digitizer = not implemented
DoStage = FALSE
DoTimelapse = FALSE
DoWave = TRUE
DoZSeries = TRUE
Exposure = 50 ms
Gain = 0
ImageLength = 2048
ImageWidth = 2048
LastSavedTime = 03/01/2020 14:30:49:490
Location = V:\linlin\raw_file\DH003_2.25LB_liq_nores_1_w1BrightfieldNoShift.STK
MetaDataPhotometricInterpretation = Monochrome
NDInfoFile = Version 1.0
NWavelengths = 2
NZSteps = 25
NewLUT = 8
NumberOfChannels = 1
Offset = 0,0
PhotometricInterpretation = BlackIsZero
ResolutionUnit = Centimeter
SamplesPerPixel = 1
Software = VisiView 4.4.0
Spatial Calibration = on
StandardLUT = monochrome
StartTime1 = 20200103 14:28:49.381
UIC4 absoluteZ[00] = 5861.125
UIC4 absoluteZ[01] = 5861.125
UIC4 absoluteZ[02] = 5861.2
UIC4 absoluteZ[03] = 5861.1
UIC4 absoluteZ[04] = 5861.15
UIC4 absoluteZ[05] = 5861.15
UIC4 absoluteZ[06] = 5861.2
UIC4 absoluteZ[07] = 5861.225
UIC4 absoluteZ[08] = 5861.275
UIC4 absoluteZ[09] = 5861.3
UIC4 absoluteZ[10] = 5861.325
UIC4 absoluteZ[11] = 5861.325
UIC4 absoluteZ[12] = 5861.4
UIC4 absoluteZ[13] = 5861.425
UIC4 absoluteZ[14] = 5861.4
UIC4 absoluteZ[15] = 5861.425
UIC4 absoluteZ[16] = 5861.425
UIC4 absoluteZ[17] = 5861.45
UIC4 absoluteZ[18] = 5861.7
UIC4 absoluteZ[19] = 5861.5
UIC4 absoluteZ[20] = 5861.525
UIC4 absoluteZ[21] = 5861.525
UIC4 absoluteZ[22] = 5861.55
UIC4 absoluteZ[23] = 5861.575
UIC4 absoluteZ[24] = 5861.6
WaveDoZ1 = TRUE
WaveDoZ2 = TRUE
WaveInFileName = TRUE
WaveName1 = "BrightfieldNoShift"
WaveName2 = "GFP"
Wavelength = 0
Wavelength [00] = 0.0
Wavelength [01] = 0.0
Wavelength [02] = 0.0
Wavelength [03] = 0.0
Wavelength [04] = 0.0
Wavelength [05] = 0.0
Wavelength [06] = 0.0
Wavelength [07] = 0.0
Wavelength [08] = 0.0
Wavelength [09] = 0.0
Wavelength [10] = 0.0
Wavelength [11] = 0.0
Wavelength [12] = 0.0
Wavelength [13] = 0.0
Wavelength [14] = 0.0
Wavelength [15] = 0.0
Wavelength [16] = 0.0
Wavelength [17] = 0.0
Wavelength [18] = 0.0
Wavelength [19] = 0.0
Wavelength [20] = 0.0
Wavelength [21] = 0.0
Wavelength [22] = 0.0
Wavelength [23] = 0.0
Wavelength [24] = 0.0
X position for position #1 = 14670.3
XCalibration = 6500000/100000000
XResolution = 312.0
Y position for position #1 = 12725.9
YCalibration = 6500000/100000000
YResolution = 312.0
ZStepSize = 0
absoluteZValid[00] = 1
absoluteZValid[01] = 1
absoluteZValid[02] = 1
absoluteZValid[03] = 1
absoluteZValid[04] = 1
absoluteZValid[05] = 1
absoluteZValid[06] = 1
absoluteZValid[07] = 1
absoluteZValid[08] = 1
absoluteZValid[09] = 1
absoluteZValid[10] = 1
absoluteZValid[11] = 1
absoluteZValid[12] = 1
absoluteZValid[13] = 1
absoluteZValid[14] = 1
absoluteZValid[15] = 1
absoluteZValid[16] = 1
absoluteZValid[17] = 1
absoluteZValid[18] = 1
absoluteZValid[19] = 1
absoluteZValid[20] = 1
absoluteZValid[21] = 1
absoluteZValid[22] = 1
absoluteZValid[23] = 1
absoluteZValid[24] = 1
cameraXChipOffset[00] = 0.0
cameraXChipOffset[01] = 1.0
cameraXChipOffset[02] = 5861.125
cameraXChipOffset[03] = 4.0669402090651284E-7
cameraXChipOffset[04] = 1.7976931348623157E308
cameraXChipOffset[05] = 21.202785772704406
cameraXChipOffset[06] = 4.0669402090651284E-7
cameraXChipOffset[07] = 1.7976931348623157E308
cameraXChipOffset[08] = 21.20685271291347
cameraXChipOffset[09] = 4.0669402090651284E-7
cameraXChipOffset[10] = 1.7976931348623157E308
cameraXChipOffset[11] = 21.21091639957037
cameraXChipOffset[12] = 4.0669402090651284E-7
cameraXChipOffset[13] = 1.7976931348623157E308
cameraXChipOffset[14] = 21.21498211969737
cameraXChipOffset[15] = 4.0669402090651284E-7
cameraXChipOffset[16] = 1.7976931348623157E308
cameraXChipOffset[17] = 21.219052313458604
cameraXChipOffset[18] = 4.0669402090651284E-7
cameraXChipOffset[19] = 1.7976931348623157E308
cameraXChipOffset[20] = 21.223118440279627
cameraXChipOffset[21] = 4.0669402090651284E-7
cameraXChipOffset[22] = 1.7976931348623157E308
cameraXChipOffset[23] = 21.227183347018588
cameraXChipOffset[24] = 4.0669402090651284E-7
cameraYChipOffset[00] = 0.0
cameraYChipOffset[01] = 0.065
cameraYChipOffset[02] = 1.7976931348623157E308
cameraYChipOffset[03] = 21.20074172855533
cameraYChipOffset[04] = 4.0669402090651284E-7
cameraYChipOffset[05] = 1.7976931348623157E308
cameraYChipOffset[06] = 21.20481964950296
cameraYChipOffset[07] = 4.0669402090651284E-7
cameraYChipOffset[08] = 1.7976931348623157E308
cameraYChipOffset[09] = 21.208882929465837
cameraYChipOffset[10] = 4.0669402090651284E-7
cameraYChipOffset[11] = 1.7976931348623157E308
cameraYChipOffset[12] = 21.212952716533046
cameraYChipOffset[13] = 4.0669402090651284E-7
cameraYChipOffset[14] = 1.7976931348623157E308
cameraYChipOffset[15] = 21.217018843354072
cameraYChipOffset[16] = 4.0669402090651284E-7
cameraYChipOffset[17] = 1.7976931348623157E308
cameraYChipOffset[18] = 21.221079276458802
cameraYChipOffset[19] = 4.0669402090651284E-7
cameraYChipOffset[20] = 1.7976931348623157E308
cameraYChipOffset[21] = 21.225150690302097
cameraYChipOffset[22] = 4.0669402090651284E-7
cameraYChipOffset[23] = 1.7976931348623157E308
cameraYChipOffset[24] = 21.229220477369307
creationDate[00] = 03/01/2020
creationDate[01] = 03/01/2020
creationDate[02] = 03/01/2020
creationDate[03] = 03/01/2020
creationDate[04] = 03/01/2020
creationDate[05] = 03/01/2020
creationDate[06] = 03/01/2020
creationDate[07] = 03/01/2020
creationDate[08] = 03/01/2020
creationDate[09] = 03/01/2020
creationDate[10] = 03/01/2020
creationDate[11] = 03/01/2020
creationDate[12] = 03/01/2020
creationDate[13] = 03/01/2020
creationDate[14] = 03/01/2020
creationDate[15] = 03/01/2020
creationDate[16] = 03/01/2020
creationDate[17] = 03/01/2020
creationDate[18] = 03/01/2020
creationDate[19] = 03/01/2020
creationDate[20] = 03/01/2020
creationDate[21] = 03/01/2020
creationDate[22] = 03/01/2020
creationDate[23] = 03/01/2020
creationDate[24] = 03/01/2020
creationTime[00] = 14:28:49:465
creationTime[01] = 14:28:54:491
creationTime[02] = 14:28:59:492
creationTime[03] = 14:29:04:491
creationTime[04] = 14:29:09:483
creationTime[05] = 14:29:14:483
creationTime[06] = 14:29:19:490
creationTime[07] = 14:29:24:480
creationTime[08] = 14:29:29:488
creationTime[09] = 14:29:34:488
creationTime[10] = 14:29:39:472
creationTime[11] = 14:29:44:486
creationTime[12] = 14:29:49:483
creationTime[13] = 14:29:54:481
creationTime[14] = 14:29:59:490
creationTime[15] = 14:30:04:490
creationTime[16] = 14:30:09:489
creationTime[17] = 14:30:14:476
creationTime[18] = 14:30:19:474
creationTime[19] = 14:30:24:495
creationTime[20] = 14:30:29:492
creationTime[21] = 14:30:34:490
creationTime[22] = 14:30:39:496
creationTime[23] = 14:30:44:494
creationTime[24] = 14:30:49:490
stageX[00] = 14670.3
stageX[01] = 14670.3
stageX[02] = 14670.3
stageX[03] = 14670.3
stageX[04] = 14670.3
stageX[05] = 14670.3
stageX[06] = 14670.3
stageX[07] = 14670.3
stageX[08] = 14670.3
stageX[09] = 14670.3
stageX[10] = 14670.3
stageX[11] = 14670.3
stageX[12] = 14670.3
stageX[13] = 14670.3
stageX[14] = 14670.3
stageX[15] = 14670.3
stageX[16] = 14670.3
stageX[17] = 14670.3
stageX[18] = 14670.3
stageX[19] = 14670.3
stageX[20] = 14670.3
stageX[21] = 14670.3
stageX[22] = 14670.3
stageX[23] = 14670.3
stageX[24] = 14670.3
stageY[00] = 12725.9
stageY[01] = 12725.9
stageY[02] = 12725.9
stageY[03] = 12725.9
stageY[04] = 12725.9
stageY[05] = 12725.9
stageY[06] = 12725.9
stageY[07] = 12725.9
stageY[08] = 12725.9
stageY[09] = 12725.9
stageY[10] = 12725.9
stageY[11] = 12725.9
stageY[12] = 12725.9
stageY[13] = 12725.9
stageY[14] = 12725.9
stageY[15] = 12725.9
stageY[16] = 12725.9
stageY[17] = 12725.9
stageY[18] = 12725.9
stageY[19] = 12725.9
stageY[20] = 12725.9
stageY[21] = 12725.9
stageY[22] = 12725.9
stageY[23] = 12725.9
stageY[24] = 12725.9
zDistance[00] = 0.0
zDistance[01] = 0.0
zDistance[02] = 0.0
zDistance[03] = 0.0
zDistance[04] = 0.0
zDistance[05] = 0.0
zDistance[06] = 0.0
zDistance[07] = 0.0
zDistance[08] = 0.0
zDistance[09] = 0.0
zDistance[10] = 0.0
zDistance[11] = 0.0
zDistance[12] = 0.0
zDistance[13] = 0.0
zDistance[14] = 0.0
zDistance[15] = 0.0
zDistance[16] = 0.0
zDistance[17] = 0.0
zDistance[18] = 0.0
zDistance[19] = 0.0
zDistance[20] = 0.0
zDistance[21] = 0.0
zDistance[22] = 0.0
zDistance[23] = 0.0
zDistance[24] = 0.0

------------------------------------------------------
(Fiji Is Just) ImageJ 2.0.0-rc-69/1.52p; Java 1.8.0_172 [64-bit]; Windows 10 10.0; 623MB of 27569MB (2%)
 
Title: DH003_2.25LB_liq_nores_1_w1BrightfieldNoShift.STK
Width:  133.12 microns (2048)
Height:  133.12 microns (2048)
Depth:  25 microns (25)
Size:  400MB
Resolution:  15.3846 pixels per micron
Voxel size: 0.065x0.065x1 micron^3
ID: -10
Bits per pixel: 16 (unsigned)
Display ranges
  1: 267-8769
  2: 114-5882
Image: 1/50 (c:1/2 z:1/25 - BrightfieldNoShift/GFP)
  Channel: 1/2
  Slice: 1/25
  Composite mode: "grayscale"
No threshold
Magnification: 0.33
ScaleToFit: false
Uncalibrated
Path: V:\linlin\raw_file\DH003_2.25LB_liq_nores_1.nd
Screen location: 51,201 (1920x1080)
Coordinate origin:  0,0,0
No overlay
No selection