Initial Bioportal Lab prototype

This commit is contained in:
emil28092005
2026-07-11 02:52:04 +03:00
commit 66961554ef
12 changed files with 595 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
# Биопортал Лаб
Русскоязычный 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-функционалом.