ПЦР Амплификатор SimpleCycler


Термоциклер размером с упаковку от 10 мкл tips
Введение
ПЦР в молекулярной биологии используется очень часто. Учитывая цены на такие приборы, было решено сделать простой и недорогой собственный термоциклер.Саму методику ПЦР можно посмотреть здесь

Технические данные амплификатора

Питание5В + 12В
Управлениепрограммное
Подключение к компьютеруUSB
Точность поддержания температуры1-2С
Cкорость нагрева - охлаждениянагрев - 0.8С/сек, охлаждение - 0.5С/сек
Необходимые материалы
  • микроконтроллер Arduino
  • банка сгущенки
  • очень тонкий многожильный провод, чтоб его можно было вместе с датчиком засунуть в пробирку и крышка пробирки при этом закрылась, но наверно можно и герметиком замазать
  • 2 штекера под питание
  • кабель для соединения циклера с ардуино, удобно использовать специальные штырьковые пластинки
  • 2 датчика температуры DS18B20, один для калибровки
  • макетная плата для быстрой сборки или вытравленная своя печатная плата,разводку не привожу тк делал методом поверхностного монтажа
  • нагревательная нихромовая проволока, в хоз.магазинах обычно продается в виде спиральки
  • блок питания, компьютерный или 2 обычных китайских, 1 из них не меньше 1А
  • 2 полевых транзистора IRLZ44 , можно и аналоги , но обязательно с буквой L - срабатывание от логического уровня на входе, можно и релешку поставить - но это далеко не лучший вариант
  • резисторы по 2 штуки на 1КОм и 3 на 5КОм - номиналы тут не критичны
Конструкция


Термоциклер


Микроконтроллер Arduino

Конструкция состоит из нагревателя, вентилятора, термодатчика и небольшой печатной платы для управления всем этим. Соединяется через шлейф с микроконтроллером Arduino, который в свою очередь по USB соединен с компьютером. Термоциклер разделен на основную часть и микроконтроллер (МК) , тк МК на все приборы будет один.
Для питания используется модифицированный компьютерный блок питания. Но можно использовать и 2 отдельных китайских бп - один из них должен быть расчитан на ток в 1А.
Прибор расчитан на 1 пробирку. При желании легко можно добавить еще один нагреватель - для еще одной пробирки.


Конструкция

Блок питания


Блок питания для всех своих конструкций использую компьютерный, удобен тем что там уже есть стабильное напряжение в 3 9 и 12 вольт. Может спокойно отдавать высокую мощность - десятки ватт и высокие токи - десятки ампер.Есть защита от замыкания.Но чтобы его использовать без компьютера необходимо соединить два проводка. Подробно показано на следующей картинке. Необходимо замкнуть(соединить) 2 провода - зеленый и черный(любой). Все - больше ничего не нужно.На один из штекеров для нагрузки рекомендуют подсоединить какоенибудь устройство - например старый CDROM.


Включение БП
На следующей картинке показано от каких проводов какие напряжения можно получить.Но лучше предварительно проверить тестером.


Разъем БП
Здесь все описано про БП

Блок нагрева и охлаждения

Нагревательный блок состоит из нихромовой спирали и железной емкости по центру спирали.Спираль нагревается при прохождении тока через нее и уже через воздух передает тепло емкости с пробирками.Спираль должна быть на расстоянии примерно 0.3 - 0.5 см от емкости, если дальше - емкость не сможет нагреться до 95С, если ближе - будет кратковременный перегрев пробирок.Желательно бы отгородить нагревательную часть от внешних потоков воздуха - в текущей реализации любой сквозняк приведет к нестабильной работе устройства.Но совсем закрывать тоже не надо - в этом случае придется немного подправить программу.

Емкость вырезана небольшим кусочком из банки сгущенки и из него пассатижами сделана небольшая коробочка, подогнанная так чтобы туда плотно входили 2 пробирки, щели запаяны(оловом) паяльником.Внутрь емкости добавлена теплопроводная паста КПТ-8 - на дно, на стенки и между пробирками.

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

Пробирка с датчиком сделана так: на дне(до середины) - фольга в виде воронки, в эту воронку вставлен датчик с тонкими проводами примерно на уровне середины(дальше он всеравно не пролезет) , так чтобы пробирка могла закрыться.

Для охлаждения используется маленький кулер на 5В (вобщето он 12В , но работает и от 5-и).Можно совсем исключить верхнюю часть схемы с кулером.Она нужна только для ускорения ПЦР.Нагреватель постоянно следит за температурой и не допускает значительного перегрева.


Датчик температуры DS18B20 в пробирке

Калибровка датчиков температуры

Чтобы быть уверенным что датчик показывает температуру такуюже что и в пробирке с ПЦР смесью - необходимо провести калибровку.
Для калибровки датчика можно второй датчик опустить в пробирку , как и первый и смотреть на разницу температур между ними, если разница больше 1-2 градусов то гдето присутствует элемент теплоизоляции , возможно один из датчиков недостаточно плотно прилегает к пробирке или пробирка неплотно сидит в нагреваемом блоке, либо датчик слишком высоко находиться - близко к крышке пробирки и соответственно температура возле крышки ниже.
Еще для второго теста необходимо второй датчик опустить прямо на дно емкости(без пробирки) и сверху прикрыть ватой, разница температур тоже не должна быть больше нескольких градусов, иначе либо дно не герметично либо один из датчиков сидит вплотную к железке, и успевает за короткое время включение нагревателя - слишком нагрется.Между железкой и пробиркой должна быть не слишком толстая прослойка - например теплопроводная паста КПТ-8
Второй датчик температуры достаточно подсоединить к Pin 9 Arduino , в микроконтроллере уже есть код для опроса датчика и вывода его температуры. Смотреть можно встроенным в Arduino IDE просмотрщиком.Там же можно и писать команды.


Просмотр текущей температуры
Электронная схема
Схема разделена на 3 части - нагрев , охлаждение и датчик ds18b20. Нагреватель и кулер выполнены одинаково, разница только в нагрузке, в одном случае это кулер, в другом нихромовая спираль.Каждая из них использует свое отдельное питание.

Логический сигнал подается с ардуино на затвор полевика IRLZ44 - соответственно при высоком логическом уровне через 2 остальные ноги этого транзистора начинает проходить ток (и через нагрузку тоже), при низком транзистор закрыт и тока нет. Резисторы нужны для ограничения тока.

Датчик DS18B20 включен по типовой схеме , подключен напрямую к ардуино.


Схема термоциклера

Программа
Программная часть прибора сотоит из 2 частей: программа на компьютере и программа в микроконтроллере.
С компьютера посылаются управляющие команды на микроконтроллер через USB, он считывает команду и запускает\останавливает нагреватель или кулер, также постоянно опрашивает датчик и передает данные на комп.Есть и защита от перегрева - если не приходит команда на отключение нагревателя в течение 8 секунд то он отключается.При повторении выключается весь термоциклер.

Основная программа написана на C#. В отдельном потоке опрашивается микроконтроллер, заноситься в список температура и этот список отображается в виде графика.Также текущая температура передается в модуль Termostat, в котором принимается решение о включении\отключении нагревателя и кулера и происходит отслеживание смены стадий термоциклера по таймеру.
Для более точного контроля температуры используется PID алгоритм.Это расширенная версия пропорционального управления, добавлена дифференциальная часть - для учета скорости нагрева.

В программе используются 2 xml файла.

  1. pid.xml - здесь задаются параметры PID регулятора, в основном можно менять параметры:
    PGAINHIGH - используется при текущей температуре > 80C
    PGAINLOW - используется при текущей температуре < 80C
    От них зависит скорость и точность установки и поддержания температуры. Менять их надо постепенно - нет смысла изменять значение сразу на 0.1. dGain - отвечает за дифференциальную компоненту регулятора
  2. pcr.xml - здесь задается режим работы термоциклера.Количество шагов можно менять - но нумерация их должна быть последовательной и начинаться с 0 - add key="0" . Шаг с goto="1" repeat="27" означает переход на шаг 1 и количество повторений этого цикла:27 раз.


Программа для упраления термоциклером
Тестирование и результаты

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

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

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

Вот несколько опробованных режимов:

23 цикла
предварительный 92 90 сек
92 - 23 сек 
56 - 40 сек
форез длился 1 час 15 мин

33 цикла
предварительный 92 90 сек
92 - 24 сек 
55 - 30 сек
70 - 12 сек

35 цикла
предварительный 92 90 сек
92 - 32 сек 
55 - 50 сек
70 - 50 сек


Форез моих результатов ПЦР, с маркером, трансиллюминатором и нормальным фотиком


Форез моих результатов ПЦР на вебкамеру с бытовой УФ лампой
Исходники к SimpleCycler
Библиотека для Arduino - для датчика температуры DS18B20
Схема Амплификатора, SPlan
Редактор схем - Splan7
Исходники для SimpleCycler, Visual Studio
Прошивка для Ардуино, для SimpleCycler
Исполняемый файл для SimpleCycler
Ссылки

X