# Phylocalc: сервер научного анализа

На `http://85.117.235.180:4263/` сайт выполняет Neighbor-Joining в браузере, а режим Maximum Likelihood отправляет последовательности на собственный сервер MAFFT → FastTree по тому же адресу. Служба `phylocalc.service` работает из `/srv/apps/phylocalc`, Nginx принимает запросы на порту 4263 и ограничивает частоту обращений к `/api/tree`. Версия на хостинге Sites по-прежнему не включает серверный анализ.

## Развёртывание владельцем

1. Возьмите папку проекта phylocalc (Dockerfile, dist и server).
2. На сервере с Docker выполните:

   docker build -t phylocalc .
   docker run --rm -p 8080:8080 --memory=1g --cpus=2 -e ALLOWED_ORIGINS=https://phylocalc.doctormeme0911.chatgpt.site phylocalc

3. Подключите домен и HTTPS через обратный прокси или контейнерный хостинг. Ограничьте частоту запросов; не включайте отладочный режим. Переменная ALLOWED_ORIGINS принимает адреса разрешённых сайтов через запятую, без пробелов и завершающего слеша. CORS не заменяет аутентификацию; для публичного сервера ограничьте запросы на прокси, при закрытом использовании добавьте авторизацию.
4. Проверьте GET /api/health, затем тестовый POST /api/tree с JSON {"fasta": ">sampleA\nACGT...\n>sampleB\nACGT...\n>sampleC\nACGT..."}.
5. В Phylocalc выберите «Maximum Likelihood · сервер» и укажите HTTPS-адрес (например https://analysis.example.org). Нажмите «Построить дерево». ДНК будет передана на этот сервер. Если сайт открыт непосредственно с этого контейнера, укажите его собственный адрес.

## Что делает сервер

- Проверяет FASTA: 3–50 уникальных названий, до 10 000 позиций на образец, до 1 МБ на запрос.
- Выравнивает гомологичные последовательности с MAFFT --auto.
- Запускает FastTree -nt -gtr (приближённый Maximum Likelihood, GTR+CAT; это не RAxML).
- Возвращает Newick с длинами ветвей и SH-like поддержкой, не стандартным бутстрэпом.
- Временные файлы удаляются после завершения запроса; последовательности не записываются в журналы приложения.
- Допускает один расчёт одновременно, каждый этап ограничен двумя минутами.

Нужно сравнивать один и тот же ген, гомологичные участки и одинаковую ориентацию. Файл одной последовательности, сырые чтения FASTQ и целые геномы не подходят. Этот сервер не проводит контроль качества, поиск гомологов и выбор модели.

## Источники программ

MAFFT: https://mafft.cbrc.jp/alignment/software/
FastTree: http://www.microbesonline.org/fasttree/

Серверный контейнер подготовлен как исходный код. Полный запуск MAFFT и FastTree необходимо проверить после развёртывания на вашем сервере.
