CellProfiler Analyst

CellProfiler Analyst помогает исследовать большие наборы биологических изображений и рассчитанных по ним измерений: в Image Gallery и Image Viewer можно находить поля зрения и отдельные объекты, Classifier — обучать классификатор на вручную размеченных примерах и оценивать весь эксперимент, Plate Viewer — видеть распределение показателей по лункам, а Scatter Plot, Histogram, Density Plot, Box Plot и Dimensionality Reduction — разбирать многомерные признаки, искать выбросы, кластеры и связи между измерениями.

Для работы нужны таблицы с измерениями и метаданными, а для визуальной проверки — исходные изображения, связанные с этими таблицами идентификаторами и путями. Наиболее естественный поток данных создаёт CellProfiler через ExportToDatabase, но Analyst не привязан к единственному способу подготовки: он умеет читать структуру с таблицей изображений и, при объектной классификации, таблицей объектов, а конфигурация описывается текстовым properties-файлом.

Практический сеанс обычно начинается с загрузки properties-файла и проверки нескольких изображений, каналов, координат объектов и метаданных; затем данные просматривают в галерее и на графиках, размечают характерные объекты в Classifier, оценивают качество модели, запускают Score Image или Score All и уже после этого разбирают результаты по изображениям, лункам, группам, фильтрам и таблицам.

Скачать CellProfiler Analyst

Оценка 9.7Рекомендуем
  • Ретушь фото
  • Русский интерфейс
  • Просто для новичков
Скачать бесплатно на Windows
Лучшая альтернатива
CellProfiler Analyst
Оценка 8.5
  • Нужны готовые измерения
  • Нет сегментации объектов
  • Нужна ручная разметка
Скачать CellProfiler Analyst
Загрузка начнётся после нажатия

Что именно анализирует CellProfiler Analyst

CellProfiler Analyst рассчитан на ситуацию, когда изображения уже преобразованы в набор количественных признаков: интенсивности, форму, текстуру, положение объектов, статистики по изображениям и метаданные эксперимента. Он не заменяет этап выделения ядер, клеток или других объектов и не выполняет типичный конвейер сегментации. Его сильная сторона начинается после измерений: связать числа с изображениями, быстро перейти от необычной точки на графике к соответствующему полю зрения и построить обучаемое правило для фенотипов, которые трудно выразить одним порогом.

Ключевая идея интерфейса — не отделять таблицу от микроскопического контекста. Строка данных несёт идентификатор изображения, а объектная строка дополнительно содержит идентификатор объекта и координаты центра. Поэтому выбор точки, строки или миниатюры может приводить к показу исходного изображения либо вырезки объекта. Такая связка особенно полезна, когда числовой выброс может означать реальный биологический эффект, ошибку фокусировки, артефакт окраски, слипшиеся клетки или некорректное выделение объекта — решение принимают после визуальной проверки.

В режиме классификации на уровне объектов Classifier использует рассчитанные признаки и примеры, которые исследователь раскладывает по классам. В режиме классификации изображений целевой единицей становится поле зрения, и таблица объектов для самой классификации не обязательна. Это два разных уровня задачи: их нельзя смешивать в одном выводе, потому что доля положительных клеток в поле и класс всего изображения отвечают на разные вопросы и по-разному зависят от плотности клеток и числа объектов.

Структура данных: таблица изображений и таблица объектов

Минимальная схема строится вокруг таблицы изображений. В ней одна строка должна соответствовать одному изображению или набору каналов одного поля зрения; уникальный image ID позволяет Analyst связывать метаданные, пути и результаты. Для объектного анализа добавляется таблица объектов, где каждая строка описывает одну клетку, ядро либо иной сегментированный объект. Связь с таблицей изображений выполняется по image ID, а object ID различает объекты внутри одного изображения.

Координатные столбцы cell_x_loc и cell_y_loc нужны не для обучения как такового, а для корректного извлечения миниатюры вокруг выбранного объекта. Если координаты указывают на другой набор объектов, Analyst покажет участок, который не соответствует числовой строке; модель при этом может обучаться на признаках одной клетки, а пользователь будет видеть соседнюю. Поэтому первая проверка нового проекта — открыть несколько объектов из разных изображений и убедиться, что центр миниатюры действительно совпадает с измеренным объектом.

Данные могут находиться в SQLite или MySQL; CSV-наборы также используются в типовом рабочем процессе и подключаются через подготовленную конфигурацию. Для больших скринингов серверная база удобнее тем, что фильтры, группировки и выборки можно выполнять без загрузки всей таблицы в память. Для небольших экспериментов SQLite упрощает перенос проекта: база, properties-файл и изображения могут лежать в согласованной структуре каталогов.

Поле propertiesЗачем оно нужноЧто проверить
image_tableимя таблицы с одной строкой на изображениеуникальность image ID и наличие метаданных
object_tableтаблица измеренных объектовсвязь каждой строки с image ID
image_idключ изображенияодинаковый смысл в связанных таблицах
object_idидентификатор объектауникальность внутри изображения
plate_id и well_idметаданные планшета и лункиединообразные обозначения лунок
cell_x_loc и cell_y_locкоординаты центра объектасовпадение с визуальной позицией
image_path_colsстолбцы путей к каналампути существуют или корректно дополняются префиксом
image_file_colsстолбцы имён файловчисло столбцов соответствует числу каналов
image_namesчитаемые имена каналовпорядок соответствует файлам
image_channel_colorsцвет отображения каждого каналацвета не меняют сами измерения
image_tile_sizeразмер вырезки объектаобъект помещается в миниатюру
classifier_ignore_columnsпризнаки, исключённые из обученияметаданные и служебные поля не попадают в модель

Properties-файл и воспроизводимая конфигурация

Properties-файл — обычный текст, где каждая настройка записана как поле = значение. Порядок строк не является принципиальным, а строки с комментарием можно использовать для пояснений проекта. Пути разрешается задавать абсолютными или относительными к каталогу properties-файла. Относительные пути удобнее для переносимого проекта, но требуют сохранять взаимное расположение базы, изображений и конфигурации.

Если изображения доступны через сервер, image_url_prepend добавляет общий адрес к путям, сохранённым в таблице. В локальной структуре это поле оставляют пустым. Ошибка здесь проявляется характерно: числовые инструменты и таблицы могут работать, а Image Gallery, Image Viewer или миниатюры Classifier остаются пустыми либо сообщают об ошибке загрузки. Диагностику лучше начинать с одного известного изображения, а не с массовой выборки.

Пара image_path_cols и image_file_cols задаётся по каналам. Если каналов три, Analyst должен понимать три пути и три имени файлов; image_names даёт этим каналам понятные подписи, а image_channel_colors определяет их экранное смешивание. Один и тот же путь можно повторять, если файлы разных каналов лежат в одной папке. Важно сохранять одинаковый порядок во всех трёх списках: перестановка приводит не к ошибке открытия, а к более опасной ошибке интерпретации каналов.

Настройки plate_type, plate_id и well_id позволяют Plate Viewer восстановить пространственную геометрию эксперимента. Поддерживаются распространённые планшетные форматы, а также конфигурации для большого числа позиций. Если номера лунок записаны неодинаково, например A1 и A01 одновременно, визуальная карта может группировать данные не так, как ожидается; такой дефект следует исправить в метаданных до биологической интерпретации.

Главное окно, журнальные сообщения и рабочие пространства

После загрузки конфигурации главное окно служит пусковой панелью для Image Gallery, Classifier, Plate Viewer, Scatter Plot, Histogram, Density Plot, Box Plot, Dimensionality Reduction и Table Viewer. Нижняя консоль собирает сообщения о ходе работы, предупреждениях и ошибках. Уровень подробности журнала можно менять от критических событий до отладочной информации; при проблемах с изображениями полезно временно включить более подробные сообщения загрузчика.

Журнал стоит воспринимать как часть диагностики, а не как фоновый шум. Если график не обновляется, массовое Score All останавливается или миниатюры не появляются, текст консоли часто отличает ошибку SQL, отсутствие файла, некорректный тип столбца и проблему декодирования изображения. Сохранённый журнал вместе с properties-файлом и минимальным примером данных даёт воспроизводимую картину сбоя и помогает не гадать по одному сообщению интерфейса.

Workspaces сохраняют состояние поддерживаемых графиков и позволяют повторно открыть набор представлений. Это полезно для регулярного контроля серии планшетов: один и тот же Histogram можно держать для фокусного признака, Scatter Plot — для пары интенсивностей, Plate Viewer — для пространственного контроля. При загрузке workspace к новому набору Analyst пытается применить те же столбцы и параметры; если нужного столбца нет, следует проверить замену измерения, а не считать получившийся график эквивалентным исходному.

Image Gallery: обзор полей зрения и объектов

Image Gallery показывает сетку полных изображений и, для выбранного поля, отдельную полосу сегментированных объектов. Выборку можно получать диапазоном image ID, по одному идентификатору, целиком или через фильтр из properties-файла. Для больших экспериментов разумнее начинать с небольшого диапазона или фильтра: так быстрее проверить каналы, пути, порядок изображений и соответствие объектов, не создавая лишнюю нагрузку на базу и декодирование файлов.

Image Gallery с полями зрения и миниатюрами объектов

Миниатюра здесь не просто картинка для просмотра: объект можно передать в Classifier, а контекст полного поля помогает понять, почему отдельный фенотип выглядит необычно. Например, край колонии, насыщенный канал, дефокус и очень плотный участок способны менять признаки. Поэтому при разметке полезно периодически смотреть не только вырезку клетки, но и исходное изображение: это снижает вероятность обучить модель на артефакте конкретной области поля.

Размер миниатюры определяется конфигурацией, а полноразмерное изображение можно использовать, когда вырезка слишком мала для морфологического контекста. Увеличивать image_tile_size бесконечно не стоит: большие тайлы уменьшают число одновременно видимых примеров и увеличивают стоимость чтения. Размер выбирают так, чтобы целевой объект и ближайший контекст помещались без захвата чрезмерного числа соседей.

Команда получения диапазона изображений в Image Gallery

Image Viewer: каналы, цвета и проверка исходного поля

Image Viewer открывает конкретное изображение по его идентификатору и показывает каналы, перечисленные в конфигурации. Каналы можно включать и выключать, менять экранные цвета, а также корректировать яркость и контраст для просмотра. Эти действия предназначены для визуализации: они не пересчитывают признаки в базе и не исправляют исходную сегментацию, поэтому изменение отображения нельзя трактовать как изменение результата измерений.

Панель Image Controls для яркости контраста и масштаба

Переключение каналов особенно полезно, когда фенотип заметен только в одном маркере или, наоборот, проявляется в их совместной пространственной картине. Перед обучением класса стоит проверить несколько положительных и отрицательных примеров в каждом значимом канале. Если пользователю кажется, что Classifier выбирает нелогичные признаки, иногда причина оказывается в перепутанном порядке channel names/colors или в том, что полезный сигнал находится в канале, который визуально был скрыт.

Контрастное растяжение помогает увидеть слабые структуры, но оно способно преувеличить небольшие различия. Для сравнения двух групп лучше сначала держать одинаковые настройки отображения, а уже затем использовать растяжение как диагностический режим. Если один канал постоянно насыщен или почти пуст, проблему следует проверять на исходных изображениях и в измерениях интенсивности, а не компенсировать её только экранной яркостью.

Выбор экранного цвета канала в Image Viewer

Classifier: ручная разметка и итеративное обучение

Classifier организован вокруг корзин классов и области неразмеченных объектов. Исследователь получает выборку клеток, переносит характерные примеры в классы и нажимает Train. После обучения можно запросить новые случайные, похожие или неуверенно классифицируемые объекты и повторить цикл. Такой активный режим важен: модель улучшается не от количества случайно просмотренных миниатюр само по себе, а от добавления информативных случаев около границы между фенотипами.

Classifier после получения случайной выборки объектов

Классы можно переименовывать под биологическую задачу, добавлять новые и очищать ошибочно помещённые объекты. Поддерживается множественный выбор; клавиши с цифрами позволяют быстро распределять объекты по нескольким корзинам. Перед обучением полезно удалить дубликаты, если один и тот же объект попал в разметку повторно: повтор не добавляет независимого свидетельства, но может непропорционально увеличить вес конкретного примера.

Хорошая разметка должна отражать вариативность внутри каждого класса. Для класса положительный недостаточно собрать только самые яркие клетки, если на практике встречается широкий диапазон интенсивностей, размеров и стадий клеточного цикла. Аналогично отрицательный класс должен включать сложные отрицательные примеры, а не только очевидные. Иначе модель легко достигнет хорошего результата на удобной учебной выборке, но даст нестабильную границу на полном эксперименте.

Classifier с двумя размеченными классами перед обучением

Training set можно сохранить и загрузить позже. Загрузка учебного набора заменяет текущую разметку в корзинах, поэтому перед этим нужно сохранить незавершённую работу. Сам файл разметки ценен вместе с properties-файлом и исходным набором признаков: если колонки были переименованы, нормализованы по-другому или часть данных отфильтрована, механическое повторное использование старой разметки не гарантирует сопоставимой модели.

Алгоритмы классификации

В Classifier доступны несколько алгоритмов scikit-learn и Fast Gentle Boosting. Выбор модели следует делать по характеру данных и проверке качества, а не по названию алгоритма. Random Forest удобен как устойчивый исходный вариант для смешанных нелинейных признаков; линейные методы полезны, если разделение близко к линейному; SVC и градиентные методы могут давать другую границу на сложных данных; KNeighbors особенно чувствителен к масштабу признаков.

Алгоритм в ClassifierПрактический смысл выбораЧто контролировать
RandomForest Classifierнелинейное разделение и оценка важных признаковстабильность на независимых примерах
AdaBoostпоследовательное усиление слабых правилошибочные и шумные метки
SVCграница в пространстве признаковмасштабирование и стоимость обучения
GradientBoostingансамбль последовательных деревьевпереобучение на малой разметке
LogisticRegressionинтерпретируемая линейная границасвязанные и разномасштабные признаки
LinearDiscriminantAnalysisлинейное разделение классовпредпосылки распределения признаков
KNeighborsClassifierкласс по ближайшим размеченным объектаммасштаб признаков и плотность выборки
FastGentleBoostingправила, исторически применяемые в CPAчисло правил и переносимость модели
MLPClassifierнелинейная нейросетевая модельдостаточность разметки и воспроизводимость

Масштабирование, отбор признаков и контроль качества признакового пространства

Разные измерения могут иметь несопоставимые числовые диапазоны: площадь объекта измеряется в одних единицах, интенсивность — в других, текстурные признаки — в третьих. Опция Use Scaler приводит признаки к сопоставимому масштабу, что особенно важно для методов, зависящих от расстояний или величины коэффициентов. Масштабирование не превращает плохой признак в хороший, но не позволяет одной колонке доминировать только из-за большого численного диапазона.

Меню Classifier с включением масштабирования признаков

Команда Check Features помогает найти признаки с нулевой дисперсией, которые не различают объекты. Такие колонки не несут информации для разделения классов и могут создавать вычислительные проблемы. Строки с NaN при обучении автоматически исключаются, однако большое число пропусков — не повод считать вопрос решённым: если пропуски систематически связаны с определённой группой, модель фактически обучается на другой популяции, чем весь эксперимент.

classifier_ignore_columns нужен для исключения служебных и нежелательных колонок. Идентификаторы, номера изображений, координаты, имена файлов и некоторые метаданные могут случайно коррелировать с классом из-за дизайна эксперимента. Если включить их в обучение, высокая точность может отражать номер планшета или положение лунки, а не морфологию. Список исключений стоит формировать осмысленно и проверять наиболее важные признаки после каждого существенного изменения разметки.

Normalization Tool создаёт новую таблицу с нормализованными измерениями и позволяет применять нормализацию относительно соседних лунок и другие предусмотренные параметры. Такой шаг полезен, когда есть пространственный технический тренд по планшету. Нормализацию нельзя использовать как автоматическое оправдание любого градиента: сначала Plate Viewer должен показать характер отклонения, затем нормализованный результат сравнивают с исходным, чтобы не удалить реальный пространственно связанный биологический эффект.

Оценка классификатора до массового Score All

Кнопка Evaluate запускает стратифицированную перекрёстную проверку по пяти разбиениям учебного набора. Это более информативно, чем оценивать модель на тех же объектах, по которым она только что обучалась. Для каждого класса важны не только общая доля правильных ответов, но и precision, recall и F1: при редком фенотипе высокая общая точность может скрывать почти полную потерю положительного класса.

Classification report с precision recall и F1

Confusion Matrix показывает направления ошибок между классами. Если один фенотип постоянно путается с другим, полезно не просто добавлять случайные объекты, а целенаправленно запросить пограничные примеры и проверить, существует ли визуально устойчивая граница. Иногда две корзины описывают непрерывный биологический спектр; тогда жёсткая бинарная разметка сама создаёт противоречивые метки, которые никакой алгоритм не сможет воспроизвести стабильно.

Оценка зависит от состава учебной выборки. Если в обе части перекрёстной проверки попадают очень похожие объекты из одного поля зрения, показатель может быть оптимистичнее, чем перенос на другой планшет или дату съёмки. Для критического анализа стоит дополнительно проверять модель на независимой части эксперимента, особенно если условия окраски, микроскоп, плотность клеток или время обработки меняются между партиями.

Score Image и Score All

Score Image применяет обученную модель к одному изображению и полезен для быстрой визуальной проверки. Перед массовым запуском выберите несколько полей из разных групп: очевидно положительное, очевидно отрицательное, пограничное и технически сложное. Если доли классов выглядят нелогично, проще исправить разметку и признаки на этом этапе, чем после вычисления результата для миллионов объектов.

Score All классифицирует набор данных и умеет группировать результат, например по изображению или другой группе, описанной в конфигурации. Диалог позволяет применить фильтр и запросить расчёт обогащения. Результаты открываются как таблица с общим числом объектов, числами по классам и связанными статистиками; оттуда их можно сортировать и сопоставлять с изображениями.

Диалог Score All с группировкой и фильтром

Для редкого фенотипа абсолютное число положительных клеток и доля положительных отвечают на разные вопросы. Лунка с десятью положительными из двадцати объектов и лунка с десятью положительными из тысячи не эквивалентны. При интерпретации нужно одновременно учитывать общий Cell Count, распределение числа объектов по полям, технические фильтры и то, не попал ли в группу участок с массовым выпадением сегментации.

Запрос uncertain выбирает объекты, в которых текущая модель наименее уверена. Это один из самых эффективных способов улучшать границу: вместо сотни очевидных клеток исследователь видит примеры, которые модель действительно не умеет различать. После разметки таких объектов следует переобучить модель и снова выполнить Evaluate; если качество не растёт, полезно проверить согласованность самих критериев класса и набор признаков.

Получение неуверенно классифицируемых объектов в Classifier

Table Viewer: проверка строк и результатов

Table Viewer показывает числовые и текстовые данные в табличном виде. Столбцы можно сортировать, причём с Shift доступна сортировка по нескольким колонкам. Это удобно после Score All: сначала отсортировать по доле интересующего класса, затем по общему числу объектов, чтобы отделить сильный результат с достаточной выборкой от экстремального процента, полученного по нескольким клеткам.

Table Viewer с результатами классификации и сводной статистикой

Из строки можно перейти к связанным изображениям, поэтому таблица остаётся интерактивной частью проверки, а не только конечным экспортом. В нижней области доступна сводная статистика по выбранному столбцу. Таблицы и CSV можно загружать и сохранять; при записи в базу нужно различать временные и постоянные таблицы и заранее согласовать имя, чтобы не затереть результат другого анализа.

Сортировка по одному числу не должна заменять контроль качества. Перед выбором лучших лунок проверьте распределение Cell Count, наличие крайних значений, метаданные серии и изображения. Если высокое обогащение встречается только там, где объектов резко меньше обычного, это сигнал сначала проверить фокус, токсичность, сегментацию или потерю клеток, а не сразу объявлять сильный фенотип.

Plate Viewer: пространственный контроль скрининга

Plate Viewer раскладывает числовой показатель по геометрии планшета. Можно выбрать таблицу и измерение, ограничить данные фильтром, а объектные значения агрегировать по лунке средним, суммой, медианой, стандартным отклонением, коэффициентом вариации, минимумом или максимумом. Такой вид быстро обнаруживает краевые эффекты, градиенты, отдельные выбивающиеся лунки и серии соседних позиций с похожим отклонением.

Plate Viewer с картой 96-луночного планшета

Выбор агрегатора должен соответствовать вопросу. Среднее чувствительно к выбросам, медиана устойчивее к отдельным экстремальным объектам, сумма одновременно зависит от величины признака и числа объектов, а коэффициент вариации описывает относительную неоднородность. Если исследуется доля фенотипа после Classifier, лучше работать с уже рассчитанными групповыми результатами, а не пытаться заменить долю средним по произвольному объектному признаку.

Цветовая шкала помогает увидеть слабый пространственный рисунок, но её пределы способны визуально усиливать или скрывать различия. При сравнении нескольких планшетов полезно фиксировать сопоставимый диапазон и проверять числовые значения. Поддержка разных форм лунок и нескольких планшетов делает Plate Viewer удобным для контроля серии, однако показ миниатюр внутри всех лунок может быть существенно тяжелее обычной цветовой карты и не должен использоваться как единственный способ навигации по большому экрану.

Scatter Plot: связи двух измерений и выбор выбросов

Scatter Plot строит диаграмму по двум числовым колонкам. Для каждой оси выбираются таблица, измерение и линейный либо логарифмический масштаб; фильтр ограничивает исходную популяцию, а gate позволяет работать с заранее описанной областью. После построения можно масштабировать и перемещать график, выделять интересующие точки и переходить к соответствующим изображениям.

Scatter Plot с двумя интенсивностными измерениями

Логарифмическая ось полезна, когда измерение охватывает несколько порядков, но значения, не допускающие логарифмирования, требуют предварительной проверки. Нельзя автоматически менять масштаб только ради красивого облака: смысл оси должен оставаться понятным. Для коррелированных признаков диагональное облако ожидаемо, а отдельные точки далеко от него часто полезно открыть как изображения — они могут оказаться редким фенотипом или техническим артефактом.

Update Chart на очень больших базах может работать долго или не завершиться. В такой ситуации лучше использовать фильтр, группу или выборку, а не многократно запускать тот же запрос. Если задача требует изучить форму распределения миллионов объектов, Density Plot часто информативнее россыпи отдельных точек, поскольку агрегирует их по сетке.

Histogram, Density Plot и Box Plot

Histogram показывает распределение одного числового признака по бинам. Пользователь задаёт таблицу, колонку, число интервалов, фильтр и при необходимости логарифмический масштаб. Это простой способ увидеть мультимодальность, длинный хвост и выбросы, а также сравнить распределение после изменения фильтра. Число бинов влияет на вид кривой: слишком мало скрывает структуру, слишком много подчёркивает случайные колебания.

Density Plot — двумерная гистограмма: выбираются две числовые оси, их масштабы, размер сетки, фильтр и цветовая карта. Вместо тысяч перекрывающихся точек цвет ячейки отражает плотность. Логарифмическая цветовая шкала помогает видеть одновременно плотное ядро и редкие области. Как и Scatter Plot, инструмент может быть тяжёлым на очень большой выборке, поэтому фильтры и осмысленный размер сетки важны для интерактивной работы.

Box Plot показывает медиану, квартили, усы и отдельные выбросы. Можно выбрать одно измерение или несколько и задать группировку по оси. Это удобно для сравнения групп без предположения, что среднее достаточно описывает распределение. Выброс на box plot — не автоматически ошибочная клетка: он лишь находится далеко от центральной части распределения и требует проверки изображения и биологического контекста.

Box Plot для измерения площади ядра

Dimensionality Reduction: обзор многомерного признакового пространства

Dimensionality Reduction предназначен для ситуации, когда десятки или сотни измерений трудно рассматривать попарно. Analyst нормализует признаки перед преобразованием и предлагает PCA, SVD, Gaussian Random Projection, Sparse Random Projection, Factor Analysis, Feature Agglomeration и t-SNE. После вычисления можно выбирать компоненты по осям и переключаться между отображением scores и, там где метод это допускает, вкладов признаков.

PCA и SVD удобны для общего линейного обзора вариации, случайные проекции — для компактного представления с иным компромиссом, Factor Analysis моделирует общие скрытые факторы, Feature Agglomeration объединяет похожие признаки, а t-SNE ориентирован на локальное соседство и визуализацию кластерной структуры. Эти методы не равнозначны и не дают один правильный двумерный рисунок; параметры и метод должны быть записаны вместе с выводом.

На scatter-представлении результата можно выделять области и передавать выбранные объекты в Classifier. Это создаёт полезный цикл: сначала обнаружить компактный кластер или выброс без заранее заданного класса, затем посмотреть изображения, понять визуальную природу группы и только после этого решить, нужен ли отдельный класс. Такой подход уменьшает риск назвать биологическим фенотипом кластер, который на деле состоит из дефокусированных полей.

Фильтры, группы и gates

Фильтры задаются в properties-файле как SQL-условия и становятся доступны инструментам через понятные имена. С их помощью можно исключить контроль, оставить конкретную партию, ограничить тип обработки или выбрать только строки, прошедшие критерий качества. Хороший фильтр должен быть воспроизводимым: если условие описано только в памяти исследователя, через месяц невозможно точно повторить тот же график или Score All.

Groups связывают ключ изображения с комбинацией метаданных. Например, группа по лунке полезна для одного планшета, но при нескольких планшетах одна надпись A01 встречается много раз; тогда безопаснее определять группу как Plate_and_Well. При массовом счёте именно группировка определяет уровень итоговой строки, поэтому ошибочная группа может незаметно объединить независимые лунки и исказить статистику.

Gates описывают области числового пространства и могут использоваться для выборки или анализа на графиках. Gate не следует путать с классом машинного обучения: gate — явно заданное правило в координатах выбранных измерений, а классификатор принимает решение в многомерном пространстве признаков. Gate удобен для прозрачного порога, Classifier — для сложного фенотипа, который нельзя надёжно отделить одной или двумя границами.

Форматы изображений, каналы и Bio-Formats

К распространённым поддерживаемым форматам относятся BMP, GIF, JPEG, PNG, PSD и TIFF; дополнительные типы файлов зависят от библиотек чтения. Analyst сначала использует обычный механизм загрузки ImageIO, а при необходимости может обращаться к Bio-Formats; параметры force_bioformats и use_legacy_fetcher предназначены для ситуаций, когда стандартный путь чтения конкретного набора не подходит. Переключать загрузчик следует только после воспроизводимой проверки одного и того же файла.

Многоканальные данные описываются несколькими парами path/file и списком channel names/colors. Analyst может собрать экранную композицию из отдельных монохромных файлов каналов. Цвета предназначены для просмотра и не меняют исходный сигнал; поэтому красный, зелёный и синий нужно выбирать так, чтобы пользователю было легче различать структуры, а не пытаться нормализовать интенсивность цветом.

Если изображения имеют смешанные размеры, размер тайла и координаты объектов становятся особенно важными. В новых сборках исправлялись проблемы генерации тайлов для наборов с различными размерами изображений, но проект всё равно следует проверять на крайних случаях: самый маленький кадр, самый большой кадр, объект у границы и изображение без найденных объектов. Это позволяет выявить ошибку структуры данных до массового анализа.

Производительность на больших наборах

Главные узкие места — SQL-запросы, чтение изображений, создание миниатюр, преобразование большого числа признаков и массовый Score All. Работа становится быстрее, если не запрашивать весь эксперимент там, где достаточно выборки, использовать осмысленные filters/groups, не делать чрезмерно большие тайлы и хранить изображения по доступным путям. Сетевой каталог с высокой задержкой может сделать интерфейс медленным даже при быстрой базе.

Score All обрабатывает большие наборы порциями, а в разработке исправлялись случаи с пустыми фрагментами и улучшалась экономия памяти. Тем не менее пользователь должен контролировать журнал и промежуточный результат. Если массовая операция падает, полезно повторить её на небольшой группе и выяснить, связано ли это с конкретным изображением без объектов, повреждённым файлом, неожиданным NaN или общим объёмом данных.

Для графиков действует другое ограничение: попытка передать миллионы отдельных точек в интерактивный Scatter Plot может оказаться неоправданной. Сначала сформулируйте вопрос, затем ограничьте выборку или примените Density Plot. Это не только ускоряет работу, но и уменьшает визуальный шум: плотностная карта честнее показывает структуру там, где точки полностью перекрывают друг друга.

Совместимость и перенос проекта

Для ветки 3.x заявлялась совместимость с Windows 7/10 и macOS 10.15/11.2; Linux считался менее проверенным вариантом с запуском из исходного кода. При переносе между системами основная практическая проблема обычно связана не с таблицами, а с путями к изображениям: разные разделители каталогов, регистр имён и буквы дисков требуют аккуратной конфигурации.

Старый properties-файл нельзя считать универсально совместимым без проверки. Даже когда большинство полей совпадает, изменившиеся имена таблиц, колонок, загрузчиков и библиотек могут влиять на результат. Надёжнее взять текущий шаблон свойств, перенести в него понятные значения и пройти короткий тест: открыть Image Gallery, один объект, одну строку Table Viewer, один график и небольшую выборку Classifier.

Проект лучше хранить как набор взаимосвязанных артефактов: properties-файл, описание версии базы/схемы, training set, определения filters/groups/gates, экспорт ключевых результатов и сведения о том, какие признаки были исключены или нормализованы. Одного файла модели недостаточно, потому что его смысл зависит от тех же колонок, того же порядка подготовки и тех же определений классов.

Практические сценарии работы

Поиск редкого положительного фенотипа

Сначала соберите небольшой набор очевидно положительных и отрицательных клеток, затем переключитесь на uncertain, чтобы расширять разметку около границы. Контролируйте recall положительного класса и просматривайте поля целиком. После Score All сортируйте не только по доле положительных, но и по общему Cell Count, иначе несколько случайных объектов способны создать ложного лидера.

Контроль качества фокуса

Выберите измерение, связанное с резкостью или текстурой, и проверьте Histogram, затем разложите агрегат по лункам в Plate Viewer. Откройте изображения из обоих хвостов распределения. Если плохой фокус образует пространственный градиент, используйте его как QC-критерий до обучения фенотипа, чтобы Classifier не научился распознавать качество съёмки вместо биологии.

Сравнение обработанных и контрольных лунок

Определите filters для контроля и обработки, сравните распределения признаков, а затем используйте Plate Viewer для проверки позиционного эффекта. Если классы обучаются на клетках только из одной группы, добавьте визуально типичные примеры из другой: так проще обнаружить технический сдвиг, который совпал с меткой обработки.

Разбор выброса на Scatter Plot

Выделите точку, удалённую от основного облака, и откройте связанное изображение. Проверьте насыщение каналов, плотность клеток, границы поля и сегментацию. Только после визуальной проверки решайте, относится ли объект к редкому фенотипу, должен быть исключён QC-фильтром или указывает на проблему в измерении.

Классификация всего поля зрения

Настройте classification_type=image и используйте признаки уровня изображения. Не смешивайте такие метки с объектным обучением: одна строка соответствует полю, а не отдельной клетке. Подбирайте тренировочные изображения так, чтобы классы различались по заявленному критерию, а не по числу клеток, освещению или партии съёмки.

Проверка новой базы SQLite

Сначала откройте Table Viewer и убедитесь, что image ID, plate/well и пути читаются. Затем загрузите несколько полей в Image Gallery и несколько объектов по координатам. Лишь после этого запускайте графики и Classifier. Такая последовательность локализует ошибку: SQL-схема, связь таблиц, пути к файлам или признаки.

Работа с несколькими планшетами

Определите группу Plate_and_Well, чтобы одинаковые A01 на разных планшетах не объединялись. Сравните одинаковые измерения при сопоставимой цветовой шкале Plate Viewer и проверьте контрольные лунки между планшетами. При Score All сохраняйте plate ID в результирующей таблице, иначе происхождение строки потеряется.

Подготовка независимой проверки модели

Сформируйте учебные классы на одной части эксперимента, выполните Evaluate для внутреннего контроля, затем примените модель к заранее отложенным изображениям или планшету. Сравните ошибки по изображениям, а не только общий показатель. Если перенос резко хуже, ищите сдвиг интенсивности, фокуса, плотности клеток или состава признаков.

Исследование непрерывного фенотипа

Постройте Histogram и Scatter Plot для ключевых измерений и проверьте, действительно ли есть естественные группы. Если клетки образуют непрерывный переход, бинарные классы будут иметь пограничную область. Используйте uncertain для её изучения и явно зафиксируйте визуальное правило разметки, чтобы разные операторы не назначали противоположные метки.

Выбор информативных признаков

Обучите базовую модель, просмотрите верхние признаки и проверьте их биологический смысл. Исключите служебные поля и колонки с нулевой дисперсией. Если список лидеров состоит из plate/well, координат или имён файлов, это признак утечки метаданных; такую модель нельзя интерпретировать как распознавание морфологии.

Проверка пространственного эффекта

Разложите один и тот же показатель по Plate Viewer, используя среднее и медиану. Если градиент сохраняется, откройте крайние лунки и сравните изображения. Затем решите, нужен ли QC-фильтр или нормализация. После коррекции снова постройте карту, чтобы убедиться, что технический рисунок уменьшился, а контролируемый биологический контраст сохранился.

Поиск фенотипа в многомерных данных

Запустите Dimensionality Reduction на очищенном наборе признаков, выделите компактную область и посмотрите изображения выбранных объектов. Не присваивайте кластеру биологическое имя до просмотра. Если визуальная особенность воспроизводится, перенесите репрезентативные клетки в Classifier и сформируйте явный обучаемый класс.

Контроль эффекта размера тайла

Сравните один и тот же набор объектов при текущем image_tile_size с полноразмерными изображениями. Если важные структуры регулярно обрезаются, увеличьте тайл; если миниатюры захватывают много соседних клеток и затрудняют разметку, уменьшите. После изменения повторно проверьте объекты у границ изображения.

Анализ изображений без объектов

Если часть полей не содержит сегментированных объектов, проверьте, является ли это ожидаемой биологией или сбоем upstream-анализа. В объектном Classifier такие поля не дают клеток для разметки; в Score All пустые группы требуют аккуратной интерпретации. Сохраните их как отдельный QC-флаг, если отсутствие объектов само по себе информативно.

Повторяемая еженедельная QC-процедура

Сохраните workspace с одинаковыми Histogram, Scatter Plot и Plate Viewer, а filters/groups держите в версионируемом properties-файле. При новом наборе сначала проверяйте наличие тех же колонок. Если Analyst подставил другой столбец из-за отсутствующего измерения, остановитесь и исправьте конфигурацию до сравнения недель.

Разбор высокого F1 при плохой биологии

Откройте матрицу ошибок и сами тренировочные изображения. Проверьте, не совпадают ли классы с планшетами, сериями съёмки или очевидным артефактом. Высокий F1 на разметке не доказывает, что модель распознаёт желаемый фенотип; он лишь показывает воспроизводимость текущих меток по текущим признакам.

Снижение влияния выбросов

Сравните среднее и медиану в Plate Viewer, посмотрите Box Plot и откройте крайние точки. Если выбросы вызваны повреждёнными полями, лучше определить QC-фильтр, чем просто выбрать устойчивый агрегатор и забыть о причине. Если это реальные редкие клетки, их удаление, наоборот, уничтожит интересующий сигнал.

Проверка канальных соответствий

Откройте Image Viewer, поочерёдно отключите каналы и сопоставьте их с image_names. Убедитесь, что DNA, маркер и цитоскелет не перепутаны при перечислении file columns. Ошибка порядка особенно опасна тем, что файлы открываются без исключения, но пользователь разметит фенотип по неверно окрашенной структуре.

Экспорт таблицы для внешней статистики

После Score All сохраните таблицу с идентификаторами изображения, планшета и лунки, общим числом объектов и числами классов. Не экспортируйте только итоговый процент: без знаменателя нельзя оценить надёжность доли. Сохраняйте название training set и конфигурации рядом, чтобы происхождение результата оставалось понятным.

Отладка медленной выборки

Сократите запрос до конкретной группы или диапазона image ID. Если он быстрый, а полный запрос медленный, проблема связана с объёмом или индексированием; если медленен даже один объект, проверьте путь к изображениям и задержку файловой системы. Разделение SQL и I/O предотвращает бессистемную смену параметров Classifier.

Типичные ошибки и способы исправления

СимптомЧто проверить в первую очередь
Image Gallery пустая, таблица открываетсяПроверить image_path_cols, image_file_cols, общий префикс пути, регистр имён и существование одного известного файла.
Миниатюра показывает не ту клеткуПроверить cell_x_loc/cell_y_loc и соответствие object table той сегментации, из которой получены координаты.
Каналы визуально перепутаныСверить порядок image_file_cols, image_names и image_channel_colors; открыть каналы по одному.
Classifier не активирует TrainУбедиться, что в двух или более классах есть размеченные объекты и признаки доступны для обучения.
Evaluate даёт нестабильный результатУвеличить разнообразие разметки, проверить противоречивые метки и слишком малое число примеров класса.
Высокая точность, но неверные признакиИсключить идентификаторы и метаданные через classifier_ignore_columns, проверить утечку plate/well и координат.
Check Features находит постоянные колонкиИсключить признаки с нулевой дисперсией; выяснить, почему upstream-анализ создал постоянное измерение.
Много NaNНайти группы, где пропуски концентрируются; не полагаться только на автоматическое исключение строк из обучения.
Score All очень медленныйОграничить группу/фильтр для теста, проверить базу и I/O, уменьшить лишние признаки и убедиться, что изображения не читаются по медленному пути без необходимости.
Scatter Plot не обновляется на большой базеПрименить фильтр или выборку, либо перейти к Density Plot для агрегированного представления.
Результаты разных планшетов смешалисьГруппировать по составному ключу Plate_and_Well, а не только well ID.
Plate Viewer показывает странную картуСверить plate_type, plate_id, well_id и формат обозначений лунок; проверить выбранный агрегатор.
Workspace открыл другой признакПроверить наличие исходной колонки в новом наборе; не принимать автоматически выбранный первый столбец как эквивалент.
Training set после загрузки отличается от текущегоПомнить, что загрузка заменяет текущие bins; сохранить текущую разметку перед открытием другого набора.
Модель реагирует на размер клетки вместо фенотипаПросмотреть top features, проверить биологическую связь и добавить сложные контрпримеры сходного размера.
Не удаётся открыть отдельный формат изображенияПроверить обычное чтение, затем аккуратно протестировать force_bioformats или legacy fetcher на одном файле.
Объекты у края обрезаныСверить координаты и image_tile_size; открыть полное изображение для подтверждения.
После нормализации исчез эффектСравнить исходный и нормализованный Plate Viewer и убедиться, что удалён технический, а не биологический пространственный тренд.
Редкий класс почти всегда пропускаетсяСмотреть recall этого класса, добавлять информативные редкие и пограничные примеры через uncertain.
Много ложных положительныхСмотреть precision, добавить сложные отрицательные примеры, проверить артефакты и служебные признаки.
Классы плохо различимы даже человекуПересмотреть определение фенотипа: противоречивая разметка ограничивает достижимое качество любой модели.
Результат зависит от цвета канала на экранеПомнить, что цвет — только визуализация; проверить исходные числовые признаки и реальные каналы.
В одной группе неожиданно мало клетокОткрыть изображения, проверить фокус, токсичность, сегментацию и корректность фильтра до интерпретации долей.
SQL-фильтр даёт пустую выборкуПроверить имена таблиц/колонок и условие на небольшой запрос; убедиться в типах строковых и числовых значений.
Модель не переносится на новую сериюСравнить распределения признаков и изображения между сериями, проверить сдвиг окраски, фокуса и плотности.
Score Image хороший, Score All неожиданныйПроверить репрезентативность выбранного тестового изображения, группировку и распределение трудных случаев по эксперименту.
Слишком много объектов попадает в uncertainУточнить классы и разметку, добавить пограничные примеры, проверить масштабирование и качество признаков.
Таблица результата трудно сравнима между анализамиСохранять одинаковые идентификаторы, знаменатели, названия классов и версию training set вместе с экспортом.
Разметка содержит повторяющиеся объектыИспользовать удаление дубликатов, чтобы один пример не получал непропорциональный вес.
После смены properties исчезли изображенияПроверить относительные пути относительно нового расположения properties-файла и общий image_url_prepend.

Сравнение CellProfiler Analyst с аналогами

ПрограммаЛучше подходит дляГлавное ограничение
CellProfiler Analystинтерактивного анализа измерений высокопроизводительной микроскопии, связанных с изображениями, и обучения фенотипических классовнужны заранее подготовленные измерения и корректная структура таблиц
ilastikинтерактивной пиксельной и объектной классификации непосредственно по изображениямне ориентирован на тот же планшетно-табличный поток высокопроизводительных измерений
QuPathанализа целых гистологических слайдов, аннотаций областей и клеточных объектоврабочая модель прежде всего рассчитана на цифровую патологию и большие слайды
Piximiинтерактивной разметки и классификации биоизображений с современными моделямиструктура работы отличается от CPA и не повторяет его связку SQL-таблиц, plate-групп и исторических properties
Advanced Cell Classifierинтерактивной фенотипической классификации уже сегментированных клетокменьше акцент на объединённой аналитике больших таблиц измерений и планшетных экранов

Если исходная задача — пройти от необработанного пиксельного изображения к сегментации, CellProfiler Analyst не является первым инструментом цепочки: для этого логичнее CellProfiler, ilastik или специализированный анализатор. Analyst выигрывает тогда, когда измерения уже существуют и нужно быстро переходить между таблицами, графиками, изображениями и обучаемым фенотипом. QuPath предпочтительнее для целых тканевых слайдов, Piximi — для иной схемы интерактивной разметки, а Advanced Cell Classifier ближе по идее фенотипических классов, но не заменяет plate-centric и SQL-ориентированный рабочий процесс CPA.

Ограничения, которые важно учитывать до начала проекта

Главное ограничение — зависимость от качества upstream-измерений. Classifier не видит биологическую структуру, которая не была выражена в доступных признаках. Если сегментация систематически ошибочна или нужный маркер не измерен, увеличение числа размеченных клеток не исправит исходный дефицит. В таком случае сначала пересматривают CellProfiler pipeline или другой процесс измерения, а затем заново экспортируют данные.

Второе ограничение — ручная разметка. Она даёт исследователю контроль над фенотипом, но вносит субъективность. Для сложных классов полезно заранее сформулировать визуальные критерии, показать одинаковый набор нескольким операторам и разобрать несогласованные примеры. Если люди не могут договориться о метке, результат модели следует интерпретировать как воспроизведение конкретного правила разметки, а не как объективную биологическую истину.

Третье ограничение — аналитическая, а не производственная ориентация интерфейса. Большие SQL-выборки, изображения по сети и тяжёлые графики могут быть медленными. Analyst хорошо подходит для интерактивного исследования и скоринга, но сложные статистические модели, автоматизированные отчёты и масштабное объединение экспериментов часто удобнее продолжать во внешней среде после экспорта проверенной таблицы.

Наконец, визуализация не равна статистическому доказательству. Цветная карта планшета, красивый кластер t-SNE или высокий F1 помогают находить и проверять закономерности, но не заменяют дизайн эксперимента, независимые повторы и корректную статистику. Сильный рабочий процесс использует Analyst как связующее звено между изображением, измерением, машинным обучением и дальнейшим анализом, сохраняя происхождение каждого решения.

Контрольный список перед финальным Score All

  • Открыты несколько изображений из разных plate/well и подтверждён правильный порядок каналов.
  • Координаты нескольких объектов визуально совпадают с клетками, строки object table связаны с нужным image ID.
  • Служебные идентификаторы и нежелательные метаданные исключены из признаков Classifier.
  • Check Features не оставил необъяснённых колонок с нулевой дисперсией, а доля NaN понятна по группам.
  • Классы имеют ясные визуальные критерии и включают разнообразные, а не только крайние примеры.
  • В разметке удалены дубликаты и явно ошибочно помещённые объекты.
  • Для масштабозависимой модели проверена опция Use Scaler.
  • Evaluate просмотрен по precision, recall, F1 и confusion matrix, а не только по одной итоговой цифре.
  • Неуверенные объекты были просмотрены и использованы для уточнения границы, если это меняет модель.
  • Проверены несколько Score Image из разных условий и технически сложных полей.
  • Groups не объединяют одинаковые well ID разных планшетов.
  • Filters документированы в properties-файле и не удаляют нужный биологический класс.
  • Plate Viewer не показывает необъяснённый пространственный градиент, либо этот эффект учтён в QC.
  • Распределение Cell Count проверено, чтобы экстремальные доли не объяснялись слишком малым знаменателем.
  • Названия результирующих таблиц выбраны так, чтобы не перезаписать другой анализ.
  • Сохранены properties и training set, соответствующие именно этому запуску.
  • Для независимой проверки зарезервирована часть данных или отдельная серия, если вывод критичен.
  • Пути к изображениям доступны во время скоринга и последующего визуального контроля.
  • Журнал не содержит повторяющихся ошибок чтения изображений или SQL.
  • План дальнейшего анализа заранее определяет, какие столбцы результатов нужно сохранить.

Подробный разбор параметров и решений

image_tile_size

Этот параметр определяет размер вырезки вокруг координат объекта. Малый тайл ускоряет галерею, но может скрыть цитоплазму и контекст; большой показывает соседей и увеличивает I/O. Проверяйте объект в центре и несколько объектов у границы кадра.

training_set

Путь к заранее сохранённой разметке можно указать в конфигурации. Используйте только набор, созданный для совместимой схемы признаков. После загрузки проверьте классы и несколько объектов визуально.

area_scoring_column

Параметр используется в сценариях, где результат скоринга связан с площадью. Его нельзя подменять произвольным признаком только ради заполнения свойства; смысл колонки должен соответствовать постановке анализа.

class_table

Имя таблицы определяет, куда записываются классы объектов. Выбирайте новое имя для экспериментальной модели и не перезаписывайте подтверждённый результат без явной причины.

check_tables

Проверка таблиц помогает обнаружить несоответствия, но любое действие, которое способно исключить строки, следует сначала испытать на копии проекта и прочитать предупреждение о результате.

image_size

Явный размер изображения полезен в конфигурациях, где его нельзя надёжно определить другим способом. Если размеры смешанные, проверяйте реальные файлы и не задавайте универсальное значение, противоречащее данным.

classification_type=image

Переключает единицу классификации на изображения. В этом режиме тренировочный пример — поле зрения, поэтому объектные координаты и корзины клеток не должны определять смысл метки.

force_bioformats

Принудительное использование Bio-Formats оправдано при формате, который стандартный загрузчик читает неверно. Тестируйте на нескольких файлах и сравнивайте каналы, размеры и ориентацию.

use_legacy_fetcher

Резервный путь загрузки может помочь при совместимости старых наборов. Он не является универсальным ускорителем; включайте его только при воспроизводимой проблеме нового загрузчика.

image_url_prepend

Добавляет общий сетевой префикс к путям из таблицы. Ошибочный завершающий или начальный разделитель легко создаёт недействительный путь, поэтому проверяйте итог на конкретном имени файла.

plate_type

Определяет геометрию Plate Viewer. Правильный тип нужен не для красоты: он задаёт ожидаемое число и расположение позиций, от чего зависит пространственная интерпретация.

object_name

Позволяет интерфейсу использовать содержательное имя объекта в единственном и множественном числе. Это не меняет данные, но снижает путаницу, если анализируются не клетки, а, например, ядра или колонии.

classifier_ignore_columns

Поддерживает шаблоны исключения. Список должен предотвращать утечку идентификаторов и метаданных, но не удалять биологически нужные измерения только из-за похожего имени.

filter_SQL_*

Именованные фильтры инкапсулируют SQL-условия и доступны во многих инструментах. Проверяйте число строк до и после фильтра, особенно при сложных AND/OR и строковых значениях.

groups

Группа описывает соответствие image key набору метаданных. Составной ключ предпочтителен, если одна метка не уникальна во всём эксперименте.

gates

Gate хранит область в пространстве измерений и даёт повторяемый способ выделять подмножество. При смене признаков или их шкалы старый gate нужно проверить заново.

image_channel_colors

Цвета облегчают смешивание каналов, но не входят автоматически в биологический признак. Изменение с red на green не должно менять классификационный результат по сохранённым измерениям.

image_names

Читаемые названия канала используются в меню Image Viewer и должны быть однозначными. Лучше писать смысл маркера, а не Channel1, если это не создаёт ложной уверенности в содержимом.

image_file_cols

Каждый элемент указывает колонку с именем файла конкретного канала. Если два элемента случайно ссылаются на одну колонку, интерфейс может дважды открыть один и тот же канал под разными цветами.

image_path_cols

Колонки путей можно повторять для каналов в одной папке. При переносе проекта относительные пути легче поддерживать, но их точка отсчёта должна оставаться понятной.

cell_x_loc/cell_y_loc

Координаты должны быть в той же системе, что использует изображение. Транспонирование X/Y или отличие в начале координат заметно по систематическому смещению всех тайлов.

plate_id/well_id

Эти поля связывают измерение с экспериментальной позицией. Их следует сохранять в каждом итоговом экспорте, где нужна обратная трассировка к образцу.

image_id

Это основной мост между таблицей, изображениями и объектами. Дубликаты в ожидаемо уникальной таблице изображений или несовместимый тип ключа приводят к неоднозначной навигации.

object_id

Вместе с image ID однозначно указывает объект. Один object ID может повторяться в разных изображениях, если уникальность определяется парой ключей.

db_type

Выбор SQLite или MySQL должен соответствовать реальной структуре. Не стоит менять тип базы как способ исправить SQL-ошибку, не проверив сначала имена таблиц и доступ.

логирование

Уровень Debug полезен на коротком воспроизводимом примере, но на массовой операции создаёт много текста. После диагностики верните разумную подробность и сохраните важный журнал отдельно.

workspace

Сохраняет конфигурации поддерживаемых графиков, а не полный снимок всех данных и окон. Table Viewer и Classifier исторически не входят в сохраняемый набор конфигураций workspace.

summary statistics

Сводные статистики Table Viewer помогают быстро оценить колонку, но не учитывают автоматически иерархию plate/well/image. Для групповых выводов используйте явно агрегированную таблицу.

log scale

Логарифмический масштаб полезен для широкого диапазона положительных значений. Нули и отрицательные значения требуют осмысленного решения до построения, а не скрытого отбрасывания.

grid size

В Density Plot определяет двумерное разбиение. Слишком мелкая сетка на малой выборке создаёт шум, слишком крупная объединяет разные режимы; размер выбирают после проверки устойчивости рисунка.

bins

Число интервалов Histogram меняет визуальную детализацию распределения. Хорошая практика — проверить несколько разумных значений и не делать биологический вывод из единственного случайного разбиения.

aggregation method

Mean, median, sum, standard deviation, CV, min и max отвечают на разные вопросы. Выбор агрегатора должен быть записан вместе с рисунком Plate Viewer.

colormap

Цветовая карта помогает различать значения, но пределы шкалы важнее названия палитры. Для сравнения пластин фиксируйте одинаковый диапазон, если хотите сравнивать цвет непосредственно.

top features

Список наиболее значимых признаков — диагностический ориентир. Он помогает заметить утечку метаданных и понять модель, но не доказывает причинность признака.

Score Image

Быстрый тест одного поля удобен перед массовым запуском. Выбирайте поля из разных условий, иначе тест будет проверять только удобный участок распределения.

Score All

Массовый скоринг требует корректной группировки и фильтра. Перед запуском сохраните training set и убедитесь, что итоговая таблица получает новое понятное имя.

uncertain fetch

Показывает пограничные для текущей модели объекты и ускоряет активное обучение. Если почти все новые объекты неуверенные, классы или признаки могут быть плохо разделимы.

random fetch

Поддерживает репрезентативность разметки и полезен в начале. После базовой выборки чередуйте случайные и uncertain-примеры, чтобы не сузить тренировку только к границе.

Пустое окно Classifier перед получением случайной выборки

duplicate prevention

Предотвращение повторных объектов уменьшает лишний вес одних и тех же клеток. Особенно важно при многократных итерациях fetch и переносе объектов между корзинами.

cross-validation folds

Стратифицированные пять разбиений сохраняют пропорции классов в пределах доступной разметки. При очень малом классе сама оценка остаётся нестабильной, сколько бы раз она ни пересчитывалась.

Меню Evaluation с отчётом классификации и матрицей ошибок

precision

Отвечает, какая доля предсказанных объектов класса действительно имеет эту метку в проверочной разметке. Критичен, когда ложные положительные дорого проверять.

recall

Отвечает, какая доля размеченных объектов класса была найдена. Критичен при поиске редких фенотипов, где пропустить положительный объект особенно нежелательно.

F1

Гармонически объединяет precision и recall, но не заменяет их раздельный просмотр. Два проекта с одинаковым F1 могут иметь разный баланс пропусков и ложных срабатываний.

confusion matrix

Показывает пары классов, которые модель путает. Используйте эти пары для целевого сбора новых примеров, а не для бессистемного увеличения всех bins.

PCA

Линейно упорядочивает направления максимальной вариации. Высокая вариация может быть технической, поэтому выбранные области всегда сверяйте с метаданными и изображениями.

t-SNE

Подчёркивает локальное соседство и полезен для визуального поиска групп. Расстояния между далёкими кластерами и их размер нельзя трактовать как простую физическую меру исходного пространства.

Feature Agglomeration

Объединяет похожие признаки и может уменьшить размерность. После агрегации связь компоненты с конкретным исходным измерением становится менее прямой.

Factor Analysis

Ищет скрытые факторы, объясняющие общую структуру признаков. Интерпретация требует проверки нагрузок и биологического смысла, а не только двухмерного рисунка.

Random Projection

Даёт быстрое компактное представление с элементом случайности. Для воспроизводимого анализа фиксируйте настройки и не сравнивайте разные запуски как идентичные без проверки.

полное изображение

Просмотр поля нужен всякий раз, когда тайл может скрывать контекст: край колонии, соседние клетки, загрязнение, дефокус или локальную насыщенность.

экспорт CSV

Удобен для внешней статистики, но типы данных и точность чисел следует проверять после открытия в другом инструменте. Идентификаторы нельзя терять при экспорте.

постоянная таблица

Запись результата в базу облегчает повторную связь с изображениями. Используйте понятное имя и документируйте, какая модель и фильтр создали таблицу.

временная таблица

Подходит для промежуточной проверки, которую не нужно сохранять надолго. Не стройте критический дальнейший анализ на объекте, который исчезнет после завершения сеанса.

Ответы на практические вопросы

Можно ли начать с одних изображений без измерений?

Для основного рабочего процесса Analyst нужны структурированные данные. Если есть только пиксельные изображения, сначала следует получить измерения и, при объектном анализе, сегментированные объекты в подходящем инструменте.

Обязательно ли использовать CellProfiler для подготовки?

Нет, но таблицы должны соответствовать ожидаемой схеме. CellProfiler удобен тем, что ExportToDatabase формирует совместимые таблицы и почти готовый properties-файл.

Можно ли классифицировать не клетки?

Да, object_name может описывать другие сегментированные сущности. Важно, чтобы таблица объектов, координаты и признаки соответствовали именно этим объектам.

Зачем нужны исходные изображения, если модель учится по числам?

Они нужны для ручной разметки, проверки выбросов и контроля того, что числовая закономерность соответствует реальному фенотипу, а не артефакту.

Что лучше: больше случайных примеров или uncertain?

В начале нужны случайные примеры для охвата популяции, затем uncertain помогает уточнять границу. Обычно полезно чередовать оба способа.

Почему нельзя обучать по plate ID?

Так модель запомнит дизайн эксперимента вместо фенотипа. Метаданные используют для группировки и контроля, но обычно исключают из морфологического классификатора.

Нужно ли всегда включать Use Scaler?

Нет универсального правила, но масштабирование особенно важно для алгоритмов, чувствительных к числовому масштабу. Решение проверяют по модели и данным.

Что делать с NaN?

Сначала выяснить происхождение пропусков и их распределение по группам. Автоматическое исключение строк из обучения не исправляет систематический дефект измерения.

Когда выбирать Density Plot вместо Scatter Plot?

Когда точек настолько много, что они перекрываются, и важнее увидеть плотность распределения. Для отдельных выбросов Scatter Plot остаётся удобнее.

Можно ли сравнивать цвет двух Plate Viewer на глаз?

Только если шкалы сопоставимы. Автоматически растянутые диапазоны могут придать одинаковый цвет очень разным абсолютным значениям.

Зачем смотреть Cell Count после классификации?

Это знаменатель для долей классов и индикатор качества. Экстремальный процент при нескольких объектах менее надёжен, чем тот же процент на большой выборке.

Что сохранять для повторения анализа?

Properties, training set, filters/groups/gates, список исключённых признаков, параметры модели и экспорт результата с идентификаторами.

Можно ли считать t-SNE кластер отдельным фенотипом?

Только после визуальной и биологической проверки. Кластер показывает структуру признаков, но может отражать техническую партию, фокус или плотность.

Что делать, если два класса визуально перекрываются?

Уточнить критерий, добавить пограничные примеры и решить, действительно ли задача дискретная. Иногда лучше признать непрерывный фенотип.

Почему Score Image и Score All дают разное впечатление?

Одно поле может быть нерепрезентативным. Массовый результат включает весь диапазон качества, плотности и условий, поэтому его нужно проверять по группам.

Можно ли менять channel colors после обучения?

Да, это экранное отображение и не меняет сохранённые измерения. Но изменение цветов способно влиять на решения человека при новой ручной разметке.

Как понять, что модель использует артефакт?

Просмотреть top features, ошибки и изображения. Сильная связь с координатами, plate/well, границами кадра или фокусом — повод пересмотреть признаки и QC.

Что делать с очень медленным Score All?

Проверить небольшой фильтр, журнал, скорость базы и файлов, затем расширять объём. Так можно отличить единичный повреждённый элемент от общего ограничения ресурсов.

Нужно ли сохранять графики?

Да, если они поддерживают вывод изображения и нужны для отчёта; вместе с картинкой фиксируйте измерения, фильтр, шкалу и группировку, иначе рисунок трудно воспроизвести.

Когда Analyst особенно полезен?

Когда есть большой набор image-derived measurements и нужно интерактивно переходить от статистической структуры к изображениям, обучать фенотипические классы и агрегировать результат по экспериментальным группам.

Дополнительные проверки воспроизводимости

Проверка идентификаторов перед переносом

Сделайте выборку из нескольких image ID в начале, середине и конце таблицы, найдите соответствующие файлы и объекты, затем повторите проверку после переноса. Такой тест ловит смещение строк и обрезанные ключи, которые трудно заметить по одному первому изображению.

Разделение технических и биологических метаданных

Plate, well, batch и site нужны для навигации и QC, но не должны автоматически попадать в морфологическую модель. Держите отдельный список метаданных и измерений, чтобы случайная новая колонка не стала предиктором класса.

Проверка согласованности меток операторов

Дайте двум людям небольшой общий набор миниатюр без подсказки и сравните разметку. Обсудите случаи расхождения и уточните критерий. Это полезнее, чем обучать модель на скрыто противоречивых bins и затем объяснять низкий максимум качества алгоритмом.

Сохранение отрицательных результатов

Если модель не смогла устойчиво разделить два фенотипа, сохраните training set, confusion matrix и описание признаков. Отрицательный результат показывает предел текущих измерений и предотвращает повторение той же неоднозначной постановки без новых данных.

Проверка насыщенных каналов

Откройте изображения из верхнего хвоста интенсивности и убедитесь, что яркость не упирается в предел детектора. Насыщение может сжимать различия между самыми яркими клетками и делать интенсивностные признаки менее информативными для Classifier.

Контроль объектов у границы

Отдельно просмотрите сегменты, касающиеся края изображения. Их площадь, форма и интенсивность часто искажены обрезанием; если таких объектов много, upstream pipeline должен иметь явное правило обработки, а Classifier — не учиться на случайном краевом сигнале.

Сравнение групп с разной плотностью клеток

Плотность влияет на сегментацию и локальный фон. Сравнивайте Cell Count, площадь объектов и изображения перед выводом о фенотипе. Если класс совпадает с плотностью, добавьте в обучение примеры обоих классов при похожей плотности или исправьте upstream-измерения.

Проверка стабильности top features

После добавления новых uncertain-примеров снова посмотрите важные признаки. Полностью меняющийся список на каждой небольшой итерации может указывать на малую разметку или сильно коррелированные признаки; биологический вывод из одного списка тогда преждевременен.

Проверка устойчивости Plate Viewer к агрегатору

Постройте карту с медианой и средним. Если предполагаемый hit существует только в среднем из-за одного экстремального объекта, откройте изображение и решите, является ли выброс биологически значимым или техническим.

Контроль соответствия версии training set

В имени или сопроводительном журнале указывайте дату и смысл классов. Если criteria разметки менялись, не объединяйте старые и новые примеры без пересмотра: одинаковое название класса может скрывать разные определения.

Выбор отрицательного класса

Отрицательный класс должен представлять то, с чем модель встретится в реальном эксперименте. Слишком чистые контрольные клетки дают искусственно лёгкую задачу; включайте пограничные и технически разнообразные отрицательные примеры, которые прошли QC.

Проверка редкого класса на нескольких полях

Не набирайте все положительные клетки из одного изображения. Иначе модель может использовать фон, локальную окраску или особенности конкретного поля. Распределяйте примеры по разным изображениям, лункам и, при возможности, партиям.

Протокол после изменения upstream pipeline

Если изменилась сегментация или набор измерений, считайте это новой признаковой схемой: проверьте properties, откройте тайлы, пересмотрите training set и выполните новую оценку. Старые показатели качества нельзя переносить автоматически.

Проверка SQL-фильтра на контрольных строках

Возьмите несколько строк, которые точно должны пройти, и несколько, которые точно должны быть исключены. Сопоставьте результат фильтра с ожиданием до построения графиков. Это ловит ошибки приоритетов AND/OR и несовпадение строковых значений.

Документирование шкал графиков

Сохраняйте линейный или логарифмический тип оси, диапазон и число bins/grid size. Один и тот же набор способен выглядеть по-разному при другой шкале; воспроизводимость рисунка требует этих параметров.

Разбор неожиданного кластера

Выберите точки из центра и границы кластера, откройте изображения и сравните метаданные. Если все точки принадлежат одному batch, сначала проверяйте технический сдвиг. Если кластер смешивает партии и имеет общий визуальный фенотип, он становится кандидатом для Classifier.

Контроль результата после фильтра QC

Повторите ключевой Score All с и без QC-фильтра и сравните не только проценты, но и число удалённых объектов по группам. Фильтр, который удаляет большую часть одного условия, способен создать систематическое смещение.

Отдельная проверка пустых полей

Изображения без объектов стоит перечислить отдельно и открыть несколько примеров. Пустота может быть правильным результатом токсичности или ошибкой сегментации; эти сценарии требуют противоположной биологической интерпретации.

Проверка результата на уровне изображения

Если конечное решение принимается по лунке или полю, смотрите распределение клеточных предсказаний внутри этих единиц. Один глобальный процент по всему эксперименту может скрыть, что эффект сосредоточен в нескольких изображениях.

Архивирование проекта

Храните вместе properties, training set, краткое описание классов, экспорт Score All и список QC-решений. Такой набор позволяет понять анализ без доступа к текущему состоянию интерфейса и отличить вычислительный результат от последующей интерпретации.

Термины, которые важно различать

изображение и объект

Изображение — поле зрения или набор каналов с одним image ID; объект — сегментированная сущность внутри изображения с object ID и координатами.

признак и метаданные

Признак описывает измеряемое свойство объекта или изображения; метаданные описывают экспериментальную принадлежность. Оба находятся в таблицах, но роль в модели различна.

фильтр и группа

Фильтр исключает строки по условию, группа объединяет строки по ключам для выборки или агрегации. Один не заменяет другой.

gate и класс

Gate — явная область в выбранных координатах; класс — результат размеченного машинного обучения по набору признаков.

тайл и полное поле

Тайл центрирован на объекте и удобен для разметки, полное поле показывает окружение и технический контекст.

score и evaluate

Evaluate проверяет качество на размеченных примерах через перекрёстную проверку; Score применяет уже обученную модель к изображениям или всему набору.

precision и recall

Precision описывает чистоту предсказанного класса, recall — полноту нахождения размеченного класса. Их баланс зависит от практической цены двух видов ошибок.

mean и median

Среднее чувствительно к крайним значениям, медиана описывает центральную позицию устойчивее. Разница между ними сама по себе может быть сигналом асимметрии.

workspace и training set

Workspace хранит состояние поддерживаемых графиков, training set — разметку Classifier. Это разные артефакты и сохраняются раздельно.

display color и measurement

Цвет канала управляет экранной композицией, измерение уже сохранено в числовой таблице. Изменение цвета не пересчитывает признак.

Методические замечания для сложных наборов

Небалансированные классы

Когда один класс встречается редко, ориентируйтесь на precision и recall именно этого класса и собирайте дополнительные редкие примеры. Простая общая точность может почти не измениться, даже если модель пропускает большинство действительно интересных клеток.

Коррелированные признаки

Большие семейства близких интенсивностных или текстурных измерений способны давать модели несколько почти взаимозаменяемых путей решения. Поэтому смена top features не всегда означает смену биологии; сравнивайте группы признаков и ошибки на изображениях.

Изменение экспозиции

Если разные серии снимались при иной экспозиции, распределения интенсивностей могут сдвинуться одновременно во многих каналах. Перед переносом классификатора сравните Histogram и контрольные лунки, а не полагайтесь на сходство нескольких миниатюр.

Смена микроскопа

Другой оптический тракт меняет резкость, фон и масштаб текстурных признаков. Даже при одинаковом биологическом протоколе старый training set следует проверять на новой серии и при необходимости дополнять примерами нового домена.

Изменение увеличения

Признаки площади, периметра и текстуры зависят от масштаба изображения. Если увеличилось физическое разрешение на пиксель, числовая сопоставимость морфологических колонок может исчезнуть, хотя клетки выглядят похожими на экране.

Несколько site на лунку

При нескольких полях зрения в одной лунке не сводите весь результат к одной клеточной доле без проверки распределения по site. Один дефокусированный site может заметно изменить знаменатель и долю класса, особенно при малом числе полей.

Случайные и систематические артефакты

Случайный одиночный дефект обычно виден как отдельный выброс, а систематический артефакт может образовать аккуратный кластер или планшетный градиент. Поэтому структура сама по себе не доказывает биологическую природу эффекта.

Сохранение контрольных лунок

Не исключайте controls из всех представлений. Они нужны как якорь для сравнения серий, настройки шкал Plate Viewer и понимания того, не сместился ли весь эксперимент относительно ожидаемого состояния.

Обучение на контролях

Если положительный и отрицательный классы берутся только из заранее известных controls, дополнительно проверьте промежуточные экспериментальные условия. Иначе модель может плохо описывать морфологию, которой не было ни в одном контроле.

Порог уверенности

Не вводите новый числовой порог уверенности только потому, что отдельные uncertain-примеры выглядят неудобно. Сначала улучшите разметку и проверку модели; произвольный порог может скрыть целую область биологической вариативности.

Стабильность по seed

Методы со случайностью могут менять детали результата между запусками. Для исследовательского сравнения фиксируйте настройки, а важный вывод проверяйте повторно, чтобы он не зависел от единичного случайного состояния.

Размер учебной выборки

Нет универсального числа клеток на класс. Достаточность определяется разнообразием фенотипа, качеством признаков и стабильностью Evaluate. Сотни однотипных примеров из одного поля могут быть менее полезны, чем десятки разнообразных.

Трудные отрицательные примеры

После первых итераций добавляйте отрицательные клетки, похожие на положительные по размеру, яркости или форме. Именно они заставляют модель искать более специфическое сочетание признаков вместо простого очевидного порога.

Трудные положительные примеры

Включайте слабые и необычные варианты положительного фенотипа, если они действительно удовлетворяют биологическому критерию. Иначе recall будет хорош только для ярко выраженной части класса.

Разделение по времени

В time-course экспериментах морфология может плавно меняться. Сравнивайте признаки между временными точками и проверяйте, не распознаёт ли модель время как косвенный технический сдвиг вместо требуемого фенотипа.

Дозозависимый ответ

При серии концентраций полезно сначала увидеть непрерывность ответа на графиках и по лункам. Если классы нужны лишь для удобного подсчёта, граница должна иметь понятный смысл и не заменять количественный анализ самой дозовой зависимости.

Сильная токсичность

Резкое падение Cell Count может сопровождаться необычной морфологией оставшихся клеток. Высокая доля класса в такой лунке должна интерпретироваться вместе с числом объектов, иначе фенотип и выживаемость будут смешаны.

Многоклеточные объекты

Если upstream-сегментация иногда объединяет две клетки, такие объекты часто отличаются площадью и интенсивностью. Определите, должны ли они исключаться QC-фильтром или представляют реальную единицу анализа, и применяйте правило последовательно.

Фрагментированные объекты

Слишком агрессивная сегментация создаёт несколько объектов из одной клетки и тем самым меняет Cell Count. Classifier не исправляет это автоматически; сначала нужно решить проблему идентификации объектов или явно учитывать её в QC.

Неравномерный фон

Фоновый градиент может попадать в интенсивностные и текстурные измерения. Сопоставляйте Plate Viewer, полные изображения и положение объекта; если эффект следует за освещением, пересмотрите коррекцию изображения до классификации.

Автофлуоресценция

Необычно яркие объекты во многих каналах могут создавать ложный фенотип. Проверьте совместное поведение каналов и исходные изображения, а затем решите, исключать ли такие объекты или формировать отдельный технический класс.

Перенос между экспериментами

Даже одинаковые названия колонок не гарантируют одинаковый смысл, если pipeline или параметры измерения менялись. Перед переносом training set сравните схему, единицы, распределения и несколько визуальных примеров каждого класса.

Независимая биологическая валидация

Результат Classifier полезен как количественный фенотип, но важный биологический вывод следует подтверждать независимым способом, если дизайн исследования это требует. Analyst помогает найти кандидатов и измерить их, а не отменяет экспериментальную проверку.

Сравнение моделей

Сравнивайте алгоритмы на одной и той же разметке и одинаковом наборе признаков. Если одновременно изменить модель, scaler и training set, нельзя понять, какой фактор улучшил результат.

Слишком сложная модель

Если два простых класса разделяются линейно, более сложный алгоритм не обязательно лучше. Выбирайте модель по устойчивому качеству и характеру ошибок, а не по потенциальной гибкости.

Слишком простой признак

Если фенотип очевидно многомерный, попытка заменить Classifier единственным порогом может давать нестабильные результаты. Сначала убедитесь на Scatter Plot и изображениях, что простое правило действительно отделяет нужную популяцию.

Группировка перед экспортом

Решите заранее, нужна ли итоговая строка на image, well, plate или иной group. Неправильный уровень агрегации трудно исправить после потери исходных идентификаторов, поэтому сохраняйте ключи вместе с счётом классов.

Проверка сортировки

Multi-column sort в Table Viewer полезна для ранжирования hits: сначала по доле класса, затем по Cell Count или QC-показателю. Записывайте логику сортировки, если по ней выбираются кандидаты для дальнейшего эксперимента.

Проверка экстремальных значений

Откройте несколько объектов с минимальными и максимальными значениями важного признака. Это часто выявляет насыщение, нулевые маски, ошибки площади или необычные сегменты, которые не заметны в средней части распределения.

Выбор числа bins

Если вывод о двух популяциях исчезает при небольшом изменении числа bins, он может быть визуальным артефактом разбиения. Подтвердите структуру Scatter или Density Plot и изображениями.

Выбор grid size

В Density Plot проверьте несколько размеров сетки. Реальная крупная структура сохраняется при разумных изменениях разрешения, тогда как одиночные пятна могут быть следствием слишком мелкой сетки и малого числа точек.

Смена color map

Палитра может по-разному подчёркивать переходы плотности. Не делайте вывод из одного оттенка; используйте числовую шкалу и при необходимости логарифмическое отображение плотности.

Контроль обрезки шкалы

Если пределы Plate Viewer вручную сужены, значения за пределами могут иметь одинаковый крайний цвет. Перед выбором hits проверьте числовую таблицу, чтобы различать реально равные и просто клиппированные значения.

Повторный запуск графика

После смены фильтра, оси, масштаба или агрегатора нажмите Update Chart и убедитесь, что подписи соответствуют новой конфигурации. Старое изображение графика с новыми выбранными полями может вводить в заблуждение.

Сопоставление результата с raw images

Хотя Analyst работает с derived measurements, спорные случаи нужно возвращать к исходным каналам. Это единственный способ отличить необычную биологию от оптического дефекта, который численно выглядит убедительно.

Контроль памяти

При тяжёлых операциях уменьшайте объём тестовой выборки, прежде чем менять научные параметры. Успешный небольшой запуск показывает, что схема и модель корректны, и позволяет отдельно решать вопрос ресурсоёмкости.

Контроль сетевого доступа

При удалённых изображениях временный сбой сети может выглядеть как проблема формата. Проверьте доступ к конкретному файлу и повторите его открытие до смены загрузчика или properties.

Имена классов

Используйте названия, которые описывают фенотип, а не временное class1. Чёткое имя снижает риск перепутать направление score и упрощает проверку результатов в Table Viewer.

Число классов

Добавляйте отдельный класс, только если он имеет устойчивый визуальный и аналитический смысл. Слишком много похожих корзин увеличивает противоречивость разметки и делает confusion matrix трудной для интерпретации.

Переименование класса

После переименования убедитесь, что новое название используется в сохранённом training set и итоговых таблицах. Иначе одинаковый фенотип может фигурировать под двумя именами в разных этапах проекта.

Контекстное меню Classifier для переименования класса