# Биопортал Лаб Русскоязычный frontend-прототип платформы для лабораторных расчётов и анализа микробиологических экспериментов. Текущий фокус — демонстрационный сценарий PetriCount: загрузка фотографии чашки Петри, поиск кандидатов на колонии CV-baseline, ручная коррекция и передача результата в расчёт КОЕ/мл. > Важно: текущий PetriCount — экспериментальный интерфейс и baseline-модель. Результаты не являются лабораторно валидированным измерением и требуют ручной проверки. ## Что есть в проекте - адаптивный дашборд Биопортал Лаб; - экран PetriCount с загрузкой JPG, PNG и WEBP; - добавление и удаление маркеров вручную; - локальный Flask API для анализа изображений; - обучаемый CV-baseline: генерация многомасштабных кандидатов + Random Forest, обучаемый на JSON-разметке AGAR; - скрипт повторного обучения модели. ## Быстрый запуск Требуется Python 3.13 или новее. ```bash python3 -m venv .venv .venv/bin/python -m pip install -r requirements.txt .venv/bin/python server.py ``` Откройте [http://127.0.0.1:8000](http://127.0.0.1:8000) и перейдите в карточку PetriCount. ## Повторное обучение CV-baseline Чтобы переобучить модель, положите пары `*.jpg` и `*.json` в `AGAR_representative/`, сохраняя относительную структуру каталогов, затем выполните: ```bash .venv/bin/python train_petri_model.py ``` Разметка должна содержать поля `x`, `y`, `width`, `height` и `class` для каждой колонии. Полученная модель записывается в `models/petri_candidate_classifier.joblib`. Каталоги с датасетом, моделью и виртуальным окружением исключены из Git: они весят около 400 МБ и создаются или поставляются локально. ## Структура ```text index.html / styles.css / app.js Главный дашборд petricount.* Интерфейс PetriCount server.py Локальный Flask API и раздача frontend petri_cv.py Признаки и генерация CV-кандидатов train_petri_model.py Обучение baseline-модели requirements.txt Версии Python-зависимостей ``` ## Ограничения текущего прототипа - модель обучена на небольшой выборке и не имеет независимой валидации; - API предназначен для локального запуска, без авторизации и хранения данных; - экспорт, расчёт КОЕ/мл и сохранение экспериментов пока являются интерфейсными сценариями, а не полноценным backend-функционалом.