TL;DR: вопросы после перерыва.
Я хочу преобразовать и хранить информацию из большого (3TB) набора изображений *.1sc (Bio-Rad, Quantity One). В дополнение к фактическому изображению файл содержит много информации о том, где/как было выполнено изображение (метаданные). Все эти швы должны храниться в формате Intel Hex (или, по крайней мере, все они открываются в формате "Stable File Version 2.0 Intel Format" в шестнадцатеричном формате).
Плагин ImageJ Bioformats может обрабатывать изображение и включает в себя функции в MetadataTools
. Чтобы захватить только пакетные изображения, я имел большой успех, используя плагин batchTiffconvert. MetadataTools
которые, как представляется, доступны в ImageJ, являются неполными для этого формата, но я не уверен в том, как использовать MetadataTools
(любые хорошие справочные ссылки будут оценены, в настоящее время перейдя через API).
Моя реальная проблема заключается не в том, чтобы анализировать гекс, чтобы найти то, что я ищу. Там, где я терпеть неудачу, на самом деле превращается гекс во что-то значимое. Пример:
Я могу проанализировать hex для scan_area
, но я не смог преобразовать 00 10 00 16 00 EC B5 86 00
во что-то значимое.
Подходя к этому в том же направлении, что и аналогичный вопрос DM3, я смог создать XML файл, но даже если бы я написал весь XML файл, большая часть метаданных не была включена (у него были такие вещи, штамп, который хорош). Я думаю, что это из-за информации, переданной GelReader.Java из BioRadReader.Java. В частности, этот раздел:
if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) {
String units = firstIFD.getIFDStringValue(MD_FILE_UNITS);
String lab = firstIFD.getIFDStringValue(MD_LAB_NAME);
addGlobalMeta("Scale factor", scale);
addGlobalMeta("Lab name", lab);
addGlobalMeta("Sample info", info);
addGlobalMeta("Date prepared", prepDate);
addGlobalMeta("Time prepared", prepTime);
addGlobalMeta("File units", units);
addGlobalMeta("Data format",
fmt == SQUARE_ROOT ? "square root" : "linear");
}
Поскольку MetadataLevel
установленный во всех сценариях Bio-Rad, является MetadataLevel.MINIMUM
. Я попробовал добавить дополнительные метаданные, которые я хотел здесь, но опять же он не мог быть конвертирован/декодирован с пользой.
Можно ли получить больше метаданных с помощью этой системы? Если это так, я работаю в правильном разделе кода? Источник для биоформатов довольно велик, и я даже не буду притворяться, что хорошо разбираюсь в этом (хотя я и пытаюсь). Я просто сталкиваюсь с проблемой проприетарного формата? Может ли кто-нибудь сказать мне, как преобразовать шестнадцатеричные значения или указать больше на ресурс, который объясняет это?
Прежде всего: обратите внимание, что ни один из источников, с которыми вы связаны выше, действительно соответствует .1sc
формата .1sc
для форматов Bio-Formats. Вам нужен BioRadGelReader.
Библиотека Bio-Formats анализирует три типа метаданных. На странице About Bio-Formats:
Существует три типа метаданных в Bio-Formats, которые мы называем основными метаданными, оригинальными метаданными и метаданными OME.
- Основные метаданные включают только вещи, необходимые для понимания базовой структуры пикселей: разрешение изображения; количество фокальных плоскостей, точек времени, каналов и других размерных осей; порядок байтов; порядок измерения; цветовое оформление (RGB, индексированный цвет или отдельные каналы); и разрешение миниатюр.
- Исходные метаданные - это информация, специфичная для конкретного формата файла. Эти поля являются парами ключ/значение в исходном формате, без гарантии согласованности и совместимости между разными форматами. Номенклатура часто различается между форматами, поскольку каждый поставщик имеет право использовать свою собственную терминологию.
- Метаданные OME - это информация из # 1 и # 2, преобразованная Bio-Formats в модель данных OME. Выполнение этого преобразования является основной целью Bio-Formats. Bio-Formats использует свою способность конвертировать запатентованные метаданные в OME-XML как часть интеграции с серверами OME и OMERO - по существу, они могут заполнять свои базы данных структурированным способом, поскольку Bio-Formats сортирует метаданные в нужные места, Это преобразование нигде не является полным или не содержит ошибок, но мы постоянно работаем над его улучшением. Мы будем очень благодарны за любые и все материалы от пользователей, касающиеся отсутствующих или неправильно преобразованных полей метаданных.
Инструменты командной строки Bio-Formats способны сбрасывать все исходные пары метаданных ключ/значение для данного набора данных, а также преобразованный OME-XML.
В вашем случае, если вам нужно количество по качеству, вы, вероятно, захотите записать все оригинальные метаданные каким-то образом. showinf
командной строки showinf
делает это автоматически (вам действительно нужно передать флаг -nometa
чтобы подавить его).
Если вы просматриваете полный список пар ключей/значений исходных метаданных, и информация, которую вы ищете, по-прежнему не существует, нам нужно перейти на следующий уровень и улучшить BioRadGelReader для анализа большего количества метаданных.
К сожалению, проверяя исходный код, похоже, что ничто не анализируется в исходной таблице метаданных для этого формата файла. Вероятно, это было обратное проектирование, так как страница формата Bio-Rad Gel говорит, что у нас нет документа спецификации.
Так что это значит, что разработчики Bio-Formats так же не уверены в структуре файлов, как и вы, и будут делать то же самое, что вы делаете: смотрите в шестнадцатеричном редакторе и попытайтесь разобраться. Некоторые трюки включают:
Вы также можете отправить по электронной почте Bio-Rad, чтобы узнать, готовы ли они отправить спецификацию, и если да, используйте его для улучшения чтения формата файла и/или пересылайте его разработчикам Bio-Formats.