Спецификация · версия 0.1.0
Спецификация: Калькулятор клонирования
Инструмент считает, сколько каждой заготовки ДНК — вектора и вставок — взять в реакцию сборки, чтобы получилось заданное молярное соотношение.
Назначение и биологический контекст
Результат — масса в нанограммах по каждому фрагменту, объём в микролитрах (если задана концентрация) и количество в пикомолях. Расчёт можно скопировать картинкой, выгрузить документом Word и передать объёмы ДНК в калькулятор миксов.
Границы: инструмент не считает буфер, лигазу, мастер-микс и воду, не проектирует праймеры и перекрытия, не подбирает ферменты рестрикции и не работает с последовательностями. На сервер ничего не передаётся: расчёт идёт в браузере пользователя.
Математическая модель и формулы
Обозначения: m(вектор) — масса вектора (нг), L — длина фрагмента в парах оснований, L(вектор) — длина вектора, k — кратность (молярный избыток), c — концентрация (нг/мкл), φ — 0,66 нг на пикомоль и пару оснований (660 г/моль на п.н.).
m = (m вектора × k × L) / L вектораМасса каждого фрагмента считается от массы вектора.объём = m / cЕсли концентрация не задана, объём не считается: в таблице стоит прочерк.пикомоли = m / (0,66 × L)Количество фрагмента в пикомолях.k = 1 для вектора и 3 для остальных, если кратность не введенаВписанное значение всегда важнее умолчания. Вектором считается первая заполненная строка: если первая строка пуста, масштаб берётся из следующей заполненной, и об этом показывается предупреждение.
Входные параметры
Поля ввода
| Поле | Тип | Единица | По умолчанию или допустимо |
|---|---|---|---|
| Название эксперимента | текст | — | необязательно |
| Масса вектора | число | нг | 100 по умолчанию; больше нуля |
| Длина фрагмента | число | п.н. | обязательно для строки; больше нуля |
| Концентрация | число | нг/мкл | необязательно; если заполнено — больше нуля |
| Кратность | число | — | необязательно; умолчание 1 у вектора и 3 у остальных |
| Строки фрагментов | список строк | — | две строки на старте, всего до десяти; первую строку удалить нельзя |
Выходные параметры и состав отчёта
Результат — таблица: «Фрагмент», «Длина, п.н.», «Масса, нг», «Объём, мкл», «Кратность», «Пмоли». Длина показывается целым числом, масса и объём — до двух знаков, пикомоли — до трёх; разделитель дробной части — запятая.
Если считать нечего, вместо таблицы стоит приглашение ввести длину вектора и хотя бы одного фрагмента. Это не ошибка: пустой ввод ошибкой не считается.
- Копирование PNG: та же таблица рисуется картинкой и кладётся в буфер обмена.
- «Поделиться» — системное меню устройства с файлом картинки; кнопка видна только там, где устройство умеет делиться файлами.
- Экспорт Word: документ с настоящей таблицей, названием инструмента, строкой эксперимента и массой вектора, подписью версии и даты проверки.
- Передача в калькулятор миксов: передаются только объёмы ДНК по строкам. Кнопка активна, когда объём есть у всех заполненных фрагментов; если объём округлился до нуля, передача не начинается.
- История расчётов: последние 10 записей в браузере пользователя. Полный расчёт записывается сам, без кнопки «Сохранить»; запись можно открыть и удалить.
Правила валидации
- Длина фрагмента должна быть больше нуля: иначе ошибка «Длина фрагмента должна быть больше 0».
- Концентрация, если введена, должна быть больше нуля; кратность, если введена, должна быть больше нуля.
- Масса вектора обязательна и должна быть больше нуля.
- Нужна длина хотя бы одного фрагмента: без неё ошибка «Укажите длину хотя бы одного фрагмента».
- Если числа получились слишком большими (масса, объёмы или пикомоли не число) — ошибка «Числа получились слишком большими — проверьте массу вектора и длины», таблица не строится.
- Предупреждения не мешают расчёту: строка с концентрацией или кратностью без длины в расчёт не входит; пустая первая строка сдвигает масштаб; объём меньше 0,1 мкл — «такой объём не отмерить».
- При любой ошибке таблица не строится, но введённые значения остаются на экране — исправлять можно без повторного ввода.
- Ограничение в десять фрагментов держит интерфейс: при десяти строках кнопка добавления выключена с пояснением.
Источники
- Метод, единицы и контрольные примеры — docs/CLONING_CALCULATOR.md в репозитории проекта