239 lines
10 KiB
Markdown
239 lines
10 KiB
Markdown
# 🧪 Цифровой помощник биохимика
|
||
|
||
Биотехнологические инструменты для лаборатории: калькулятор питательных сред и планирование полнофакторного эксперимента (DoE).
|
||
|
||
---
|
||
|
||
## 📋 Содержание
|
||
|
||
- [Возможности](#-возможности)
|
||
- [Установка](#-установка)
|
||
- [Запуск](#-запуск)
|
||
- [Структура проекта](#-структура-проекта)
|
||
- [Калькулятор питательных сред](#-калькулятор-питательных-сред)
|
||
- [Планирование эксперимента](#-планирование-эксперимента)
|
||
- [Сохранение и загрузка](#-сохранение-и-загрузка)
|
||
- [Требования](#-требования)
|
||
- [Лицензия](#-лицензия)
|
||
|
||
---
|
||
|
||
## ✨ Возможности
|
||
|
||
### 🔬 Калькулятор питательных сред
|
||
- Расчёт состава питательной среды по процентному содержанию компонентов
|
||
- Поддержка массовых (нг, мкг, мг, г, кг) и объёмных (нл, мкл, мл, л) единиц
|
||
- Учёт коэффициента пересчёта для каждого реагента
|
||
- Учёт разбавления реагентов (фактор разбавления)
|
||
- Автоматический расчёт необходимого количества растворителя
|
||
- Сохранение и загрузка рецептов в JSON
|
||
|
||
### 📊 Планирование эксперимента (DoE)
|
||
- Полнофакторный план 2ᵏ (k факторов)
|
||
- Генерация матрицы планирования с центральными точками
|
||
- Рэндомизация порядка опытов
|
||
- Ввод и анализ результатов экспериментов
|
||
- Регрессионный анализ (среднее, дисперсия, стандартное отклонение, CV)
|
||
- Критерий Фишера для проверки адекватности модели
|
||
- Экспорт матрицы в CSV
|
||
|
||
---
|
||
|
||
## 🚀 Установка
|
||
|
||
### Клонирование репозитория
|
||
|
||
```bash
|
||
git clone <repository-url>
|
||
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 — численные вычисления
|