Плагин предварительной обработки оптической проекционной томографии для Напари
Этот плагин napari был создан с помощью Cookiecutter с использованием шаблона cookiecutter-napari-plugin @napari.
Перейти к:
Использование
Биннинг
рентабельность инвестиций
-Бревно
Темное поле и светлое поле
Коррекция плохих пикселей
Коррекция интенсивности
Флуоресцентное отбеливание
Начальная точка
Глобальные настройки
Трансмиссия против выбросов
Исправления
Другой
Установка
Устранение неполадок при установке
Содействие
Лицензия
Проблемы
Благодарности
Ввод данных передается через виджет ImSwitch OPT (подробнее см. в документации ImSwitch).
Загружены томографические проекции в виде стека данных.
Другие форматы данных стека 3D-объемов
Небольшой пример данных, загруженный через File -> Open Sample
Доступны две важные глобальные настройки: операции на месте и отслеживание .
Для экономии памяти режим по умолчанию выполняет операции со стеком изображений Inplace , перезаписывая исходный стек изображений. Если этот параметр не выбран, новый слой с измененной версией изображения будет создан и добавлен в программу просмотра. Если выбран вариант «Операции на месте» , в виджете становится доступна опция «Отслеживание» . Эта опция позволяет отслеживать последнюю операцию, выполненную со стеком/изображением. При нажатии кнопки Undo
последняя операция, выполненная с изображением, отменяется. Возможна только одна отмена .
В настоящее время изображения сохраняются или преобразуются в numpy.int16
после операций, за исключением расчета -log
. Настоятельно рекомендуем выполнять операции сверху вниз и слева направо в порядке их появления в виджете, иначе велика вероятность столкнуться с исключениями или непредсказуемым поведением. Пожалуйста, сообщите о проблеме, если часть логики виджета должна быть исправлена для ваших конвейеров.
Предполагается, что эксперименты по пропусканию будут количественными в приближении закона Бера-Ламберта. Это означает, что, используя измерения в светлом и темном местах, можно рассчитать поглощение или, скорее, пропускание как
, где I — измеренный сигнал, — интенсивность светлого поля, — количество темных полей.
Эмиссия обычно далека от количественной из-за неизвестной концентрации окрашивания, эффектов гашения, отбеливания, калибровки пути обнаружения, квантовых выходов и т. д.
Коррекции темного поля, светлого поля и плохих пикселей напрямую связаны со съемкой с камеры. С другой стороны, коррекция интенсивности связана с нестабильностью источника света. Скорректированное изображение отображается в средстве просмотра с использованием пределов контрастности исходного изображения. Возможно, вам придется настроить пределы контрастности, чтобы эффективно увидеть результат выполненной коррекции.
Комбинации поправок на темное поле и светлое поле возможны как для экспериментов по передаче, так и по излучению. Пользователь должен выбрать модальность эксперимента, а затем решить, включать ли только одну коррекцию (темное поле или светлое поле) или обе. После завершения коррекции в зависимости от настройки «Вставить» в средстве просмотра появится либо новый слой с исправленным изображением, либо слой исходного изображения будет обновлен. Коррекция темного поля сама по себе выполняет вычитание темного изображения (операция int
) из каждого изображения в стеке изображений, всегда стоит применять ее. Эта операция одинакова независимо от экспериментальной модальности передачи или эмиссии .
Коррекция светлого поля особенно полезна для экспериментов по передаче, чтобы корректировать различную интенсивность яркого фона изображений. Яркий слой также можно использовать для выявления битых пикселей. Если применяется отдельно, изображения делятся по интенсивности яркости (деление float
), а затем преобразуются в numpy.int16
для случая эксперимента по передаче . Для данных об излучении интенсивность светлого поля вычитается из каждого изображения в стеке (операция int
).
Коррекция темного и светлого поля, выполняемая вместе, рассчитывается для передачи.
(image - dark) / (bright - dark)
, то есть операция float
, которая впоследствии приводится к numpy.int16
.
Для данных Emission комбинированная коррекция темного и яркого света, примененная к эксперименту Emission , просто
(image - dark) - (bright - dark) = image - bright
См. раздел выше для получения дополнительных объяснений разницы между передачей и излучением.
Пиксельная коррекция доступна как для горячих, так и для битых пикселей. После нажатия кнопки Bad pixel correction
плохие пиксели идентифицируются, и пользователь может либо исправить их, либо визуализировать их как новый слой в средстве просмотра.
Коррекция осуществляется путем учета значений соседних пикселей. Для коррекции доступны два варианта: n4 и n8. Опция n4 использует 4 соседних пикселя (вверх, вниз, слева и справа), а опция n8 учитывает все 8 соседних пикселей. Если соседний пиксель сам является плохим, он не рассматривается для исправления. Значение плохого пикселя рассчитывается как mean
значение соседних пикселей.
После применения коррекций темного поля, светлого поля и плохих пикселей можно применить коррекцию интенсивности для исправления световых неоднородностей вдоль стека, вызванных нестабильностью источника освещения. Пользователь выбирает размер прямоугольника и нажимает кнопку Intensity correction
. По стеку будет рассчитано среднее значение пикселей в четырех углах изображения (со стороной, равной размеру прямоугольника), и в средстве просмотра появится исправленное изображение (если не выбрана опция «Операции на месте») или исходное изображение. обновляться. Кроме того, будет показан график, показывающий интенсивности по сумме ( mean
интенсивность по 4 прямоугольным областям изображения) до и после коррекции интенсивности.
Если вы хотите исправить флуоресцентное фотообесцвечивание, см. следующий раздел.
Для каждого угла рассчитываются средние значения интенсивности вдоль столбцов, которые затем используются в качестве поправочных коэффициентов для разделения значений интенсивности каждой строки относительно первой проекции. После завершения коррекции в средстве просмотра появляется график, показывающий рассчитанные средние значения для каждого угла. Эта функция предполагает, что стек имеет форму (angles, rows, columns)
.
Обратите внимание, что эта коррекция не учитывает эффекты затенения, которые очевидны на синограммах выше, снятых с одного ряда камер. В этом случае свет возбуждения флуоресценции исходит справа, поэтому правая часть синогам показывает более высокую интенсивность FL.
Возможно объединение стека. Выберите коэффициент биннинга и нажмите кнопку Bin Stack
. Отобразится объединенная стопка, и появится уведомление с исходной и новой формами стопки. Форма имеет вид (height // bin_factor, width // bin _factor)
, поэтому краевые пиксели могут отсутствовать, если размеры вашего изображения не могут быть определены с помощью bin_factor
. Значения пикселей рассчитываются как mean
объединенных пикселей и преобразуются в numpy.int16
. Коэффициент объединения 1 не приводит к каким-либо действиям.
Для реконструкции томографии выбор ROI может значительно сократить время вычислений алгоритма реконструкции. Выберите Points layer
и добавьте точку, которая определяет верхний левый угол области интереса. С этого момента пользователь выбирает width
и height
в пикселях. Если добавлено более одной точки, для выбора области интереса будет учитываться только последняя точка.
Вычислить логарифм изображения можно с помощью функции виджета -Log , которая делает детали в темных и светлых областях более заметными. Это физически оправданное преобразование в экспериментах по передаче, поскольку оно преобразует отсчеты в коэффициент пропускания . Для измерений излучения это просто преобразование для нелинейного увеличения контраста для визуализации.
Вы можете установить napari-opt-handler
через pip:
pip install napari-opt-handler
Чтобы установить последнюю версию разработки:
pip install git+https://github.com/QBioImaging/napari-opt-handler.git
Взносы очень приветствуются. Тесты можно проводить с помощью Tox. Прежде чем отправлять запрос на включение, убедитесь, что покрытие остается прежним.
Распространяемый на условиях лицензии BSD-3, «napari-opt-handler» является бесплатным программным обеспечением с открытым исходным кодом.
Многие люди внесли свой вклад в этот проект. Основные из них:
Джорджия Тортора и Андреа Басси (Миланский политехнический институт)
Тереза Коррейя (CCMAR-Алгарве)
Если у вас возникнут какие-либо проблемы, пожалуйста, сообщите о проблеме вместе с подробным описанием.