# 🧪 Цифровой помощник биохимика Биотехнологические инструменты для лаборатории: калькулятор питательных сред и планирование полнофакторного эксперимента (DoE). --- ## 📋 Содержание - [Возможности](#-возможности) - [Установка](#-установка) - [Запуск](#-запуск) - [Структура проекта](#-структура-проекта) - [Калькулятор питательных сред](#-калькулятор-питательных-сред) - [Планирование эксперимента](#-планирование-эксперимента) - [Сохранение и загрузка](#-сохранение-и-загрузка) - [Требования](#-требования) - [Лицензия](#-лицензия) --- ## ✨ Возможности ### 🔬 Калькулятор питательных сред - Расчёт состава питательной среды по процентному содержанию компонентов - Поддержка массовых (нг, мкг, мг, г, кг) и объёмных (нл, мкл, мл, л) единиц - Учёт коэффициента пересчёта для каждого реагента - Учёт разбавления реагентов (фактор разбавления) - Автоматический расчёт необходимого количества растворителя - Сохранение и загрузка рецептов в JSON ### 📊 Планирование эксперимента (DoE) - Полнофакторный план 2ᵏ (k факторов) - Генерация матрицы планирования с центральными точками - Рэндомизация порядка опытов - Ввод и анализ результатов экспериментов - Регрессионный анализ (среднее, дисперсия, стандартное отклонение, CV) - Критерий Фишера для проверки адекватности модели - Экспорт матрицы в CSV --- ## 🚀 Установка ### Клонирование репозитория ```bash git clone cd nutrient_medium_pyqt 2. Создание виртуального окружения (рекомендуется) bash python3 -m venv venv source venv/bin/activate # Linux/Mac # или venv\Scripts\activate # Windows ``` ### Установка зависимостей ```bash pip install -r requirements.txt ``` ### ▶️ Запуск Из командной строки ```bash python3 main.py ``` Через скрипт ``` bash chmod +x run.sh ./run.sh ``` ## 📁 Структура проекта ```text nutrient_medium_pyqt/ ├── main.py # Точка входа ├── run.sh # Скрипт запуска ├── requirements.txt # Зависимости ├── README.md # Документация │ └── src/ # Исходный код ├── models/ # Модели данных │ ├── reagent.py # Класс Reagent │ ├── medium_model.py # Модель расчёта сред │ └── experiment_model.py # Модель планирования эксперимента │ ├── views/ # GUI компоненты │ ├── main_window.py # Главное окно │ ├── medium_view.py # Окно калькулятора сред │ └── experiment_view.py # Окно планирования эксперимента │ └── controllers/ # Контроллеры ├── medium_controller.py # Логика калькулятора └── experiment_controller.py # Логика планирования ``` ## Основные поля | Поле | Описание | |:-----|:----------| | **Общее количество** | Общий объём/масса готовой среды | | **Растворитель** | Название растворителя (вода, буфер и т.д.) | | **Название** | Имя реагента | | **%** | Процентное содержание в среде | | **Единица** | Единица измерения реагента | | **Коэфф.** | Коэффициент пересчёта (например, для солей-гидратов) | | **Разбавление (x)** | Во сколько раз разбавлен исходный раствор | ## Пример использования | Шаг | Действие | |:----|:----------| | 1 | Укажите общий объём среды (например, 1000 мл) | | 2 | Добавьте реагенты с их процентным содержанием | | 3 | При необходимости укажите коэффициент пересчёта и разбавление | | 4 | Нажмите **"Рассчитать"** | | 5 | В столбце **"Количество"** отобразятся необходимые объёмы/массы | ## 📈 Планирование эксперимента ### Вкладка "Параметры эксперимента" #### Факторы | Параметр | Описание | |:---------|:----------| | **Фактор** | Название независимой переменной | | **Нулевой уровень (0)** | Базовое значение | | **Шаг** | Интервал варьирования | | **Верхний уровень (+1)** | Нулевой уровень + шаг *(вычисляется автоматически)* | | **Нижний уровень (-1)** | Нулевой уровень – шаг *(вычисляется автоматически)* | | **Единица измерения** | °C, pH, г/л и т.д. | #### Отклики | Параметр | Описание | |:---------|:----------| | **Зависимые переменные** | OD600, концентрация продукта и т.д. | #### Настройки | Параметр | Описание | |:---------|:----------| | **Количество центральных точек** | Для оценки дисперсии воспроизводимости | | **Рэндомизация порядка опытов** | Случайный порядок выполнения | --- ### Вкладка "Матрица планирования" | Функция | Описание | |:---------|:----------| | **Отображение плана** | Сгенерированный план эксперимента | | **Факторные точки** | Помечены комбинацией уровней (+/–) | | **Центральные точки** | Выделены жёлтым цветом | | **Экспорт в CSV** | Сохраняет матрицу в файл | --- ### Вкладка "Анализ результатов" #### Порядок работы 1. Введите результаты экспериментов в таблицу 2. Нажмите **"Провести регрессионный анализ"** #### Результаты анализа | Показатель | Описание | |:-----------|:----------| | **Среднее значение отклика** | Центральная тенденция данных | | **Общая дисперсия** | Разброс данных относительно среднего | | **Стандартное отклонение** | Квадратный корень из дисперсии | | **Коэффициент вариации (CV)** | Относительная мера разброса данных | | **Дисперсия воспроизводимости** | Оценивается по центральным точкам | | **Критерий Фишера (F-отношение)** | Проверка адекватности модели | --- ## 💾 Сохранение и загрузка ### Калькулятор питательных сред | Кнопка | Действие | |:-------|:----------| | **💾 Сохранить** | Сохранить рецепт в JSON-файл | | **📂 Загрузить** | Загрузить сохранённый рецепт | ### Планирование эксперимента | Кнопка | Действие | |:-------|:----------| | **📊 Экспорт в CSV** | Сохранить матрицу планирования в CSV-файл | ## 📦 Требования Пакет Версия Назначение PyQt5 ≥ 5.15.0 Графический интерфейс numpy ≥ 1.19.0 Математические вычисления Проверка установки ```bash python3 -c "import PyQt5; import numpy; print('OK')" ``` 📝 Формат JSON (калькулятор сред) ```json { "total_amount": 1000.0, "amount_unit": "мл", "solvent": "Вода", "reagents": [ { "name": "Глюкоза", "percentage": 2.0, "unit": "г", "conversion_factor": 1.0, "dilution_factor": 1.0 } ] } ``` ## 🐛 Устранение неполадок Ошибка "ModuleNotFoundError: No module named 'PyQt5'" ```bash pip install PyQt5 Ошибка "No module named 'numpy'" bash pip install numpy Проблемы с отображением кириллицы Убедитесь, что в системе установлены русские шрифты ``` 📄 Лицензия © 2026 Цифровой помощник биохимика Версия: 1.0.0 🙏 Благодарности Разработано с использованием: PyQt5 — GUI framework NumPy — численные вычисления