Linux админ, врач-исследователь
35,8
рейтинг
24 ноября 2015 в 11:04

Разработка → Хроники лаборатории: как мы молотый кофе считали софтом для анализа клеточных структур



Другие статьи цикла:
Здравствуйте, я Meklon и я кофеин-зависимый
Компот из кофейных сухофруктов. Знакомимся с каскарой — лучшим другом велосипедиста

Продолжаю кофейную тематику, которую я начал еще на geektimes: Здравствуйте, я Meklon и я кофеин-зависимый. Сегодня мы будем творить непотребства с софтом для биоинженерных задач — CellProfiler. Нормальные люди им считают клетки, плазмиды, экспрессию белка и прочие нужные вещи. Мы долбанутые, поэтому будем проводить гранулометрический анализ помола по микрофотографии, бить кофе статическим электричеством и думать, как прицепить к этому безобразию фен. Ну и конечно нам потребуется скотч для получения графена картины распределения частиц.

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

Графен и кофе




Основная задача, которую я хотел решить — объективное сравнение качества помола разных кофемолок. По идее, качественный помол отличается идеальной равномерностью. Значит нам нужно посчитать количество частиц на заданной площади и отсортировать их по размерам. Чем больше будет дисперсия — тем хуже качество. Самый простой пример — роторная кофемолка, которая разбивает зерна быстро вращающимися лезвиями. В ее профиле помола одновременно присутствуют и крупные фракции и мелкая пыль. Хорошего эспрессо из такого кофе уже не получится. Проблема связана с неравномерностью пробивания «водяных каналов», через которые проливается кофейная таблетка. Мелкие частицы будут давать горечь из-за переэкстракции, а крупные создадут «обходные пути», что сделает кофе водянистым. В отличие от роторной, кофемолка жернового типа дает более или менее калиброванный вариант с одинаковыми частицами.
Собственно, теперь задача состоит из двух основных пунктов:
  1. Расположить в нормальном распределении частицы на прозрачной подложке, чтобы их можно было сфотографировать микроскопом
  2. Посчитать размеры и количество частиц вручную за пару лет автоматизированным комплексом
  3. Подвести итоги, сделать чашку хорошего эспрессо и тщательно себя похвалить за сообразительность

Когда мы подняли этот вопрос в прошлой теме, sptor и mwizard предложили использовать вибрацию в различных вариантах. Но у этого метода, как и у многих других, есть очень важный недостаток — неравномерность воздействия вибрации на частицы разного размера. Нам надо получить слепок реального усредненного состава, а не создать сортировочный лоток золотодобытчика в миниатюре. Наиболее удачная идея пришла в голову eexo — использовать обычный скотч. Чем именно метод хорош? Дешево, сердито. Просто на первый взгляд. И самое главное — касаясь скотчем молотого кофе вы получаете полный набор частиц в реалистичном распределении. Естественно, что без граблей, электротравм и злодейского смеха во время эксперимента здесь не обошлось…


Результат чуть поближе


Фен против электрофорной машины


image

Одна из основных проблем, с которой я столкнулся — склонность мелких кофейных пылинок слипаться, что в итоге приводит к неверному определению границ и размеров объектов. Логика подсказала, что проблема может быть решена электризацией частиц кофе одноименным зарядом. Осталось только понять как это проще сделать. Генератора Ван де Граафа под рукой не было. Решил просто потрясти пакет с молотым кофе. Так как пакет оказался слегка дырявым, пришлось долго подметать и вытирать кофейную пудру по всей лаборатории. Да и электризации особо не получилось.

Альтернативный вариант мне представился на одной из вузовских выставок, куда свозят автобусами несчастных школьников и заставляют вдохновляться экспозициями учебных заведений. Я развлекался с симулятором эндоскопических операций, удаляя на скорость желчный пузырь, но после третьего круга это начинало надоедать. Посидеть спокойно в интернете мне не дали. Каждые 15-20 минут вся беспроводная связь наглухо падала. Когда я решил пройтись по соседним стендам — я увидел тех странных людей, которые из кучи рассыпухи, километров медной проволоки и чьей-то матери собрали катушку Тесла и пару сопутствующих приборов. Именно эта вундервафля гадила во всех частотах при включении и роняла всю связь.



Я пытался снять этого уставшего человека, который в очередной раз показывал детям светящиеся газораздрядные трубки, но телефон начинал дико сходить с ума рядом с установкой, выбрасывая аппаратную ошибку камеры, а потом наглухо зависая. Планшет вроде выдержал, но файл слегка побило. Tesla Coil, штука конечно крутая, но проблему мою не решает. Зато на том же столе у них обнаружилась электрофорная машина с лейденскими банками. Именно такой машиной я пользовался еще в школе, чтобы зарядившись как следует бить током одноклассников в коридоре. Учительница физики страшно ругалась и кричала, чтобы я немедленно заземлялся на батарею. В общем, погрузил я один из электродов в кофе и начал вращать рукоятку. Судя по тому, что волосы начали тихо потрескивать — потенциал был набран ощутимый. Но сволочной порошок упорно не желал распушаться. Тут я сделал большую ошибку, решив добавить еще статики. Лейденские банки, которые они использовали были какими-то особо злыми. И очень-очень емкими. Красивая вспышка между моими руками оказалась крайне болезненной. Видимо, народ тщательно доработал конструкцию.

В итоге, от электрофорной машины я тоже отказался и решил сделать снимки как есть. Уже после того, как я отфотграфировал образцы, мне пришла в голову альтернативная идея, но времени на ее реализацию уже не было. Будет настроение — попробуйте. Смысл в том, чтобы одновременно использовать очень горячий воздух, трение и конвекцию. То есть тупо фен и трубу. Насыпаем чайную ложку кофе в трубу, влючаем фен, дожидаемся электризации и опускаем скотч на жестком каркасе внутрь, чтобы он насобирал частичек. Схема ниже:



Микроскоп и CellProfiler




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


Еще фотография


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

В принципе, для наших целей нам нет необходимости в идеальной четкости. Поэтому берем объектив 4х и фотографируем наш будущий эспрессо:


Образец от обжарщика, смолотый Mahlkoenig EKK43


Образец из моей домашней кофемолки, смолотый DeLonghi KG89

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

Теперь отдаем изображения на вход специализированого свободного ПО CellProfiler. Переписан на Python, когда-то был надстройкой над MatLAB. Разрабатывается небольшой командой The Broad Institute of MIT and Harvard. Интерфейс совершенно негуманоидный, но позволяет исследователям вроде меня выполнять сложные пакетные обработки и статистический анализ изображений, не имея глубоких знаний в программировании. Все организовано в виде конвейера, когда на вход подается исходное изображение, потом над ним производятся необходимые манипуляции, распознаются, подсчитываются и измеряются нужные объекты, после чего цикл повторяется снова на всем массиве файлов. В результате, тратится определенное время на написание pipeline, зато потом можно скармливать хоть 100 000 изображений и идти пить чай. Процесс распараллеливается соответственно количеству потоков процессора.


Интерфейс программы

Коротко опишу этапы:
  1. Преобразование трех каналов 8-битного sRGB в один, монохромный
  2. Инверсия изображения. Это историческая особенность — программа заточена под распознавание светлых объектов на темном фоне
  3. Пороговая фильтрация для отсечения фона. Использовался глобальный порог, выбранный вручную
  4. Идентификация объектов и их границ. Для сепарации объектов от фона использовался алгоритм Otsu
  5. Измерение параметров объектов — площадь, эксцентриситет, диаметр и прочее
  6. Классификация объектов на 3 условные группы по параметру «площадь»
  7. Сохранение выбранных результатов таблицу и сохранение отдельных промежуточных изображений




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

Распознанные объекты, крупно. Видны дефекты определения границ




После сортировки на мелкие, средние и крупные частицы мы получили следующее распределение для профессиональной и домашней кофемолки, соответственно:




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

Другие варианты применения


CellProfiler'у глубоко пофиг, что именно рассчитывать. Я вполне успешно пилил пайплайны для анализа каких-то нанокристаллов. Ради интереса даже попробовал посмотреть, как он справится с определением объектов в астрофотографиях. В примере ниже я просто скормил софту фото звездного неба в высоком разрешении и свел все каналы в один монохромный. Теоретически, играясь с фильтрами и порогами интенсивности, можно отделить звезды различных спектральных классов друг от друга. Особенно, если исходники не 8-битные. Программа нативно поддерживает работу с изображениями широкого динамического диапазона.

Исходник, немного пожатый Habrastorage:



А вот честно определенные 34767 звезд с некоторой долей погрешности.



При дальнейшем анализе можно анализировать коэффициент соседства, использовать маски, сортировать по признакам площади, цвета или еще чего-то.

Как сварить кофе в лаборатории


Хорошо подумав с Дианой, мы решили, что пропадать нашему любимому сорту Гватемала Платанийо Ежипто просто так не стоит. Я его дико люблю за насыщенность и полноту в эспрессо, с дразнящими нотами зрелого какао и легкой кислинкой. Один из самых ярких сортов средней степени обжарки, на мой взгляд. Тем более, когда он обжарен несколько дней назад. Но раз уж мы начали тестирование образцов, то решили попробовать альтернативный подход к приготовлению кофе. Будем варить его на прецизионном лабораторном нагревателе с магнитной мешалкой. Главное не получить потом по голове от руководителя лаборатории.

В этом мне поможет Диана in_green_shoes. Она вообще-то лингвист-переводчик, но иногда, когда ее никто не видит, она надевает халат и делает умный вид, играя в ученого.



Вначале набираем деионизированной воды из Milli-Q. По сопротивлению — глухой изолятор с сопротивлением 18.2 MΩ·cm Вода такой чистоты используется для аналитической химии, молекулярной биологии и теперь для варки кофе.

Диана с умным видом разглядывает колбу с водой


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




Точно взвешиваем нужное количество кофе. Точно взвешиваем. Четыре знака после запятой будет достаточно, я думаю. Мы же в лаборатории все-таки.



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




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




Поднятие пены ловим точно так же, как и с классической туркой:



В итоге получаем ожоги из-за того, что забыли о нагревании горла колбы от горячего пара. При следующей попытке используем толстые перчатки и аккуратно разливаем результат по чашкам. Кофе получился ароматным, но очень уж высокоэкстрагированным. Глаза резко открываются и начинаешь бегать как кофеиновая белка. Метод на самом деле из разряда just for fun, но почему бы и не попробовать? Ну и в качестве бонуса я добавлю еще фотографий из этого фотосета)

Мне кажется, кофе на нее как-то странно влияет






P.S. Я все-таки сумел связаться с ребятами из Торрефакто, обещали выкроить время, чтобы ответить на вопросы. У них на самом деле много разной высокотехнологической фигни. Один только фотоколориметр для точного определения цвета зерна чего стоит. Это, например, важный момент при объективной оценке степени обжарки. Если будет интересно — я попробую найти время для того, чтобы рассказать об этих вещах.
Гуменюк Иван @Meklon
карма
469,5
рейтинг 35,8
Linux админ, врач-исследователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (42)

  • 0
    Сразу прошу простить меня за опечатки, я торопился побыстрее выложить уже публикацию. Давно уже обещал) Я сейчас попробую связаться с agerman, который занимается обжаркой кофе. Он обещал найти время после обеда. Заодно уточним, что было бы интересно в следующей публикации раскрыть подробнее.
    • 0
      Давно уже обещал

      Наконец-то. Только я два раза интересовался ходом эксперимента, а еще кто-то спрашивал.

      А Диана фото утверждала? Постпроцессинг у фото, по-моему, отсутствует.

      Было бы интересно, если бы кто-нибудь распилил зерна кофе тонкими слоями, чтобы сфотографировать «интересную полупрозрачную структуру» без дробления зерна.
      • 0
        Фотки только по экспозиции / балансу белого выравнивал. А что? Насчет распила — почти нереально такие шлифы делать. Единственный вариант — абразивное сошлифовывание до полного истончения. Но такие шлифы очень непросто сделать.
        • 0
          Обычно девушки требуют применить режим «как модель» — это плагины обрабатывающие цвет и структуру кожи на снимке (убираются шероховатости, структура, морщинки и т.п.). Лицо становится восковым.

          Может не шлифы, а гидроабразивной резкой слоями по 0.5 мм (скорее всего слой должен просвечиваться).
          • +2
            Не люблю такое делать. Тем более, что девушка и без этого выглядить очень хорошо. Пластмассовость лишает естественности. 0.5 мм это очень толсто. Частицы на фото были прозрачны при диаметре в районе 100 мкм.
  • 0
    Собственно, был бы рад видеть здесь askbow, dannk, Yak52, termsl и всех остальных, с кем обсуждали метод в прошлой публикации. Было бы интересно услышать ваше мнение. Ну и в принципе пожелания по следующей публикации. Кстати, эксперимент по выпиванию кофе на ночь и фиксацией этого безобразия на фитнесс-трекер не отменялось. Я немного позже опубликую подробные правила на Geektimes. Только бы сформулировать как мы это анализировать будем. Тут бы очень понадобилась помощь людей более знакомых с анализом данных. На выходе будут по идее таблицы вида Человек_1(дата; данные). Возможно оформим в виде Google Docs для участников.
    • +1
      Привет)
      По мне, городить ветряные мельницы со скотчем излишне- так как самый главный враг распределения частиц кофе- статика.
      Может просто насыпать слоем любым, но сплошным, стряхивать- что прилипло, то прилипло, вырезать участок определенных размеров и анализировать?
      Более точно, но и заморочено- взять строго определенный вес молотого образца и разобрать на частицы. Как вариант найти жидкость, в которой частицы молотого кофе не растворяются и не начинают экстрацию- сделать взвесь определенного веса на определенный объем, сфотографировать и анализировать.
      • 0
        Может силиконовое масло?
      • 0
        Вообще для это нормальные люди используют колонку из ситечек разного диаметра. Это для сертификации заводской.
    • 0
      Что-то я пропустил всё.

      А не получится использовать виброплатформу для распределения сыпучего вещества по поверхности? В лабораториях такие штуки встречаются вроде.
      Если я не ошибаюсь, здесь что-то такое описывают: arxiv.org/pdf/cond-mat/0402205.pdf
      • 0
        У меня есть вибровстряхивалка для пробирок. Надо попробовать. Но мне надо частицы зафиксировать перед фотографированием. И не уверен, что крупные и мелкие равномерно реагируют на вибрацию. Ссылку гляну, спасибо.
      • 0
        Проглядел бегло. Эффект бразильского ореха уже описывали ниже. Проблему слипания микропыли это не решает. И как раз получается неравномерное распределение.
        • 0
          Так сортировка же получается — крупные отдельно, мелкие отдельно )
          Или я суть этой работы не понял?

          Продолжая тему вибрации — а, скажем, ультразвуком не получится разбить слипшиеся частицы? Останется проблема фиксации, правда. Можно, наверное, ультразвуком обработать обсуждаемую ниже взвесь в силиконовом масле
  • +2
    Meklon, ты нарко-кофеман! В хорошем смысле слова :-D
    • +4
      Да, рано или поздно я зайду слишком далеко. Главное к радиоактивным материалам не подпускайте)
      • +2
        Поздно… бананы радиоактивны.
  • 0
    объективное сравнение качества помола разных кофемолок.

    троллейбус... кофемолка.jpg
    • 0
      Идея получилась очень странной, ага)
  • 0
    Могу подсказать, если колбу с кофе перед нагреванием закрыть, плотно пробкой, и дождаться закипания будет весьма интересный эффект (по своему опыту говорю)
    • +1
      Мысль хорошая, но я жить хочу)
  • 0
    Стоит отметить, что Meklon так увлёкся процессом, что забрызгал девушке халат наноалмазами. И теперь всё, хрен отмоешь, потому что их уже ничего не возьмёт. Так что жертвы в процессе были.
    • 0
      Вечно я крайний) Оно само!
  • +1
    http://n-t.ru/ri/fz/fz204.htm конечно же.
  • +2
    Со мной связался Иван, попросил рассказать о том, как устроен изнутри процесс обжарки кофе. В принципе, тут задействуется очень много самых разных технологий. О чем-то могу рассказать сразу, что-то нужно будет уточнять у технологов. Если интересно — задавайте вопросы, а я постараюсь передать материалы Ивану, чтобы написать ещё одну статью на эту тему. Например, о том как устроен процесс обжарки, какие этапы проходит зерно или, например, о том как отправить все заказы, ничего не перепутав. Только это уже скорее тема не Habrahabr, а Geektimes. Да, кстати, прошлый пост читал, узнал кучу медицинских деталей)
  • 0
    Везёт тебе на красивых девушек на работе!
    А для разделения помола по фракциям вот такую штуку нагуглил: http://www.activator.ru/classificators.html :D
    • 0
      Можешь in_green_shoes отписаться) Насчет сортировщика — сурово. Хотя я видел в виде ручной колонки для фракционирования. Типа столбика из десяти металлических сит.
  • +4
    — Что закажете?
    — Чашечку кофейку, пожалуйста.
    — У нас есть латте, капуччино, эспрессо, американо…
    — Эспрессо, пожалуйста.
    — Вы можете выбрать мелкодисперсный кофе с Бразилии наивысшего сорта, или же…
    — Да, давайте кофе с Бразилии.
    — Простите, последний вопрос, вам неодимовый магнит в керамической оболочке в процессе варки добавлять?
  • 0
    Очень странное фото звезд, ощущение крупной сетки на изображениях.
    • 0
      Это habrastorage сжимает. Исходники был большего разрешения.
  • +2
    Что-то мне кажется, что с феном не будет «правильного» распределения.
    Всё ж таки большие и мелкие частицы летают по-разному.
    А в целом статья очень приятная, бодрящая, оставляет великолепное послевкусие.
    P.S. уж не знаю какой процент экстракции от фотографий :)
    • +1
      Спасибо. Не зря полтора месяца потратил. Насчет фена, вероятно согласен. Может и правда нужно попробовать в силиконовом масле делать взвесь.
      • 0
        А систему сит нигде не достать? Опять же лёгкий гуглинг показал, что они стоят не космических денег (хотя и понятно, что гораздо больше чем бюджет подобных экспериментов): http://zernotechnika.ru/price/price_lab.htm#lab1
        Сита лабораторные контрольные металлотканые НУ (материал — латунь),
        У1-ЕСЛ-К ø200 мм, ГОСТ 6613, ГОСТ 3826, точность ячеек по ИСО 3310-1

        40, 45, 50, 56, 63, 71, 80, 90, 94, 100, 112, 125, 140, 160, 180, 200, 224, 250, 280, 315, 355, 400, 450, 472, 500, 560, 630, 670, 700, 800, 900 мкм;
        1,0; 1,2; 1,25; 1,4; 1,6; 2,0; 2,2; 2,5; 2,8; 3,0 мм

        1652 руб за штуку.
        • 0
          Не, можно и у китайцев купить. Но тут ключевой момент, что для варианта just for fun деньги еще надо найти)
      • 0
        https://www.avito.ru/novosibirsk/oborudovanie_dlya_biznesa/setka_polimernaya_sita_5_10_25_50_100_mkm_661742768
        Вот еще. По 600 рублей за сетку, если продают обрезки дешево — было бы вообще классно.
      • 0
        В достаточно большой коробке организовать взвесь зёрен(аэродинамикой, подачей снизу-вверх через отдельный ввод?) и дать ей осадится естественным способом на тот же скотч. Крупные сядут быстро, а мелкие будут долго падать — может даже час-другой. В итоге, все зерна осядут равномерным слоем на нижней поверхности коробки. Может конечно за исключением особо крупных, у которых время осаждения будет меньше секунды.
        • 0
          Собственно примерно та же идея и с феном. Другое дело, что в идеале не должно быть перекрытий зерен, насколько это возможно. Иначе не будет нормального отделения границ частиц.
          • 0
            Это зависит от количества порошка и площади поверхности. Поидее можно подобрать так чтобы они не перекрывались за исключением самых мелких.
      • 0
        Кстати вот только что в голову пришла офигенная идея. год-два назад на хабре была статья про народный мониторинг и хитрый датчик чистоты воздуха который справляется с задачей подсчёта мельчайших частиц — от микронов и крупнее.
        Суть его одна — работает как поточный сканер над плоским потоком воздуха.
        Только не помню, классифицирует ли этот датчик частицы по размерам или только считает их количество.
        • 0
          Круть. В принципе так можно датчик реального времени для контроля износа жерновов делать.
  • 0
    А эффект бразильского ореха прикрутить к делу нельзя? на пшене и схожих мелких фракциях работало, но эксперименты с мелким помолом мы не ставили никогда.
    • 0
      А что за эффект бразильского ореха?
    • 0
      Загуглил. Не думаю. У нас проблема слипания мелких частиц. Из-за этого мы их не можем посчитать раздельно.

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