Initial Bioportal Lab prototype
This commit is contained in:
@@ -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-функционалом.
|
||||
Reference in New Issue
Block a user