Требования к протоколу
Термины:
- Протокол выделения нуклеиновых кислот (далее — протокол) — машиночитаемое описание автоматизированной процедуры выделения как последовательности шагов, состава компонентов и технологических параметров. Протокол не описывает механику конкретного прибора.
- Лабораторная операция — имеющая биологический смысл часть процедуры, например лизис, связывание, промывка, сушка или элюция. Операция определяет цель, но не способ её выполнения прибором.
- Шаг протокола — одно параметризованное технологическое действие из набора, поддерживаемого исполнителем. Одна лабораторная операция может состоять из нескольких шагов протокола.
- Тип шага — стабильный идентификатор действия в поле kind, который определяет состав параметров и исполнительную семантику шага.
- Исполнитель — внешняя по отношению к формату система, которая проверяет протокол и преобразует его шаги в команды конкретному прибору.
- Запись выполнения — фактические данные отдельного запуска, включая время, измерения, предупреждения, ошибки и результат. Запись выполнения не является частью протокола.
Протокол содержит идентификатор, ревизию документа, ссылку на схему, название, описание и упорядоченную последовательность шагов. Каждый расходник протокола имеет локальный идентификатор, назначение, место и ссылку на модель. Планшет содержит описание состава одной типовой лунки. Состав включает названия компонентов, роли при необходимости и объёмы. Описание предполагает одинаковое содержимое всех рабочих лунок. Оно не утверждает, что все лунки заняты.
Храните ссылку на схему в объекте schema отдельно от ревизии протокола (as in [LINK: VER-001]).
Храните даты в формате RFC 3339.
Запрещайте неизвестные обязательные типы шагов.
Разрешайте чтение неизвестных необязательных метаданных.
Определите обязательность каждого поля через JSON Schema.
Ссылайтесь на совместимую модель прибора по UUID и ревизии определения.
Указывайте требуемые возможности через required_capabilities.
Не привязывайте протокол к серийному номеру прибора.
Разрешайте ограничение минимальной версии исполнителя.
Объявляйте каждый расходник протокола один раз.
Назначайте каждому расходнику протокола локальный идентификатор.
Ссылайтесь на модель расходника по UUID и ревизии определения.
Назначайте расходник посадочному месту. Разрешайте назначать одному месту несколько расходников, используемых в разные моменты выполнения протокола.
Смена расходника во время выполнения относится к исполнителю. Шаг ссылается на используемый расходник, а не непосредственно на место.
Проверяйте наличие каждого выбранного планшета в списке supported_plates модели прибора.
Проверяйте наличие каждого выбранного колпачка в списке supported_sleeves модели прибора.
Указывайте назначение расходника в протоколе.
Допустимые назначения первой версии:
- sleeve_storage;
- sample_input;
- lysis;
- wash;
- elution;
- waste;
- intermediate.
Проверяйте наличие определения каждого компонента, на который ссылается состав наполнения
Порядок полей JSON не влияет на ссылки. Определение может находиться внутри протокола.
Указывайте объём на одну лунку.
Сравнивайте сумму объёмов компонентов одной лунки с максимальным рабочим объёмом для совместимого планшета.
Храните цвет только как редакторскую подсказку.
Не используйте цвет для исполнительной логики.
Представляйте протокол упорядоченным массивом шагов.
Назначайте каждому шагу уникальный UUIDv4, не зависящий от названия, типа и положения шага в последовательности.
Указывайте тип шага через поле kind.
Связывайте технологический шаг с расходником через ссылку.
Не связывайте шаг напрямую с посадочным местом.
Не храните координаты осей в технологическом шаге.
Не храните номера двигателей в технологическом шаге.
Указывайте ограниченный тайм-аут для ожидающих шагов.
Указывайте допустимую политику ошибки через перечисление.
Политика первой версии должна поддерживать abort и operator_decision.
| kind | Назначение |
|---|---|
| collect_sleeves | Захват рамки защитных колпачков |
| release_sleeves | Возврат или сброс рамки защитных колпачков |
| set_temperature | Установка целевой температуры нагревателя выбранного расходника |
| wait_temperature | Ожидание достижения целевой температуры |
| mix | Перемешивание содержимого выбранного планшета |
| collect_beads | Сбор магнитных частиц на защитных колпачках |
| release_beads | Высвобождение магнитных частиц в выбранном планшете |
Указывайте число повторов целым положительным значением.
Описывайте перемешивание массивом стадий.
Указывайте амплитуду в миллиметрах.
Указывайте скорость в миллиметрах в минуту.
Указывайте длительность или число циклов.
Запрещайте одновременное указание двух режимов завершения.
Описывайте исходное положение колпачка относительно дна лунки или расчётного уровня жидкости.
Уровень жидкости относится к состоянию без колпачка. Максимальный рабочий объём не определяет уровень после погружения.
Примеры положений: above_liquid, liquid_surface, liquid_middle, well_bottom_offset.
Определите единицы и допустимый диапазон амплитуды.
Расчёт фактической траектории выполняет внешняя система.
Определите допустимый диапазон технологической скорости по справочнику модели прибора.
Указывайте лабораторное назначение перемешивания в поле purpose одним из значений lysis, wash, drying, elution или custom.
Связывайте сбор и высвобождение магнитных частиц с целевым планшетом.
Для сбора магнитных частиц указывайте положительное целое число циклов и положительную длительность удержания в секундах.
Для высвобождения магнитных частиц указывайте исходное положение колпачка и положительную длительность в секундах.
Связывайте нагрев с целевым расходником.
Определяйте нагреватель через посадочное место.
Проверяйте наличие нагревателя у места.
Проверяйте температуру по безопасному диапазону прибора.
Разделяйте установку температуры и ожидание температуры.
Указывайте допустимое отклонение температуры.
Указывайте тайм-аут ожидания.
Определяйте действие нагревателя после завершения протокола.