- Docker Deployment Fixes: - Switch base images to docker.m.daocloud.io to resolve registry 401 errors - Add Postgres and Redis services to docker-compose.traefik.yml - Fix frontend build: replace missing icons (Globe->Location, Chart->TrendCharts) - Fix frontend build: resolve pnpm CI/TTY issues and frozen lockfile errors - Add missing backend dependencies (sqlalchemy, psycopg2, redis-py, celery, docker-py) in pixi.toml - Ensure database tables are created on startup (lifespan event) - Backend Internationalization (i18n): - Add backend/app/core/i18n.py for locale handling - Update API endpoints (jobs, tasks, uploads, results) to return localized messages - Support 'Accept-Language' header (en/zh) - Documentation: - Update DOCKER_DEPLOYMENT.md with new architecture and troubleshooting - Update AGENTS.md with latest stack details and deployment steps - Update @fix_plan.md status Co-Authored-By: Claude <noreply@anthropic.com>
118 lines
3.3 KiB
TOML
118 lines
3.3 KiB
TOML
[workspace]
|
||
name = "bttoxin-pipeline"
|
||
channels = ["conda-forge", "bioconda", "bioconda/label/cf201901"]
|
||
platforms = ["linux-64"]
|
||
version = "0.1.0"
|
||
channel-priority = "disabled"
|
||
|
||
# =========================
|
||
# digger 环境:bioconda 依赖
|
||
# =========================
|
||
[feature.digger.dependencies]
|
||
bttoxin_digger = "==1.0.10"
|
||
perl = "==5.26.2"
|
||
perl-file-tee = "==0.07"
|
||
perl-list-util = "==1.38"
|
||
blast = "==2.16.0"
|
||
|
||
# =========================
|
||
# pipeline 环境:Python 分析依赖
|
||
# =========================
|
||
[feature.pipeline.dependencies]
|
||
python = ">=3.9"
|
||
pandas = ">=2.0.0"
|
||
matplotlib = ">=3.7.0"
|
||
seaborn = ">=0.12.2"
|
||
|
||
# =========================
|
||
# frontend 环境:Node.js 前端依赖
|
||
# =========================
|
||
[feature.frontend.dependencies]
|
||
nodejs = ">=20"
|
||
pnpm = ">=10"
|
||
|
||
# =========================
|
||
# webbackend 环境:FastAPI 后端依赖
|
||
# =========================
|
||
[feature.webbackend.dependencies]
|
||
python = ">=3.11"
|
||
fastapi = "*"
|
||
uvicorn = "*"
|
||
sqlalchemy = "*"
|
||
psycopg2 = "*"
|
||
celery = "*"
|
||
redis-py = "*"
|
||
docker-py = "*"
|
||
pydantic = "*"
|
||
pydantic-settings = "*"
|
||
python-dotenv = "*"
|
||
httpx = "*"
|
||
pytest = "*"
|
||
|
||
# =========================
|
||
# CRISPR-Cas 环境:预留用于未来的 CRISPR-Cas 分析
|
||
# =========================
|
||
# 此环境预留用于 CRISPR-Cas 系统分析模块
|
||
# 实现计划:
|
||
# 1. 使用 CRISPRCasFinder 或 similar 工具识别 CRISPR arrays
|
||
# 2. 提取 spacer 序列并与毒素基因关联分析
|
||
# 3. 评估 CRISPR-Cas 系统对宿主防御的影响
|
||
#
|
||
# 预期依赖(待激活时添加):
|
||
# python = ">=3.9"
|
||
# crisprcasfinder = "*" # 或使用 pyCRISPRcas
|
||
# biopython = "*"
|
||
# pandas = ">=2.0.0"
|
||
#
|
||
# 使用方式:
|
||
# pixi run -e crispr crispr-detect --input genome.fna --output crispr_results.json
|
||
# pixi run -e crispr crispr-fusion --toxins all_toxins.txt --crispr crispr_results.json
|
||
# =========================
|
||
# [feature.crispr.dependencies]
|
||
# # 预留依赖,实际实现时取消注释
|
||
# python = ">=3.9"
|
||
# # crisprcasfinder = "*" # 需要配置安装源
|
||
# biopython = "*"
|
||
# pandas = ">=2.0.0"
|
||
# =========================
|
||
# [feature.crispr.tasks]
|
||
# crispr-detect = "python crispr_cas/scripts/detect_crispr.py"
|
||
# crispr-fusion = "python crispr_cas/scripts/fusion_analysis.py"
|
||
|
||
# =========================
|
||
# 环境定义
|
||
# =========================
|
||
[environments]
|
||
digger = ["digger"]
|
||
pipeline = ["pipeline"]
|
||
frontend = ["frontend"]
|
||
webbackend = ["webbackend"]
|
||
# crispr = ["crispr"] # 取消注释以激活 CRISPR 环境
|
||
|
||
# =========================
|
||
# pipeline tasks
|
||
# =========================
|
||
[feature.pipeline.tasks]
|
||
pipeline = "python scripts/run_single_fna_pipeline.py"
|
||
digger-only = "python scripts/run_digger_stage.py"
|
||
shoter = "python scripts/bttoxin_shoter.py"
|
||
plot = "python scripts/plot_shotter.py"
|
||
|
||
# =========================
|
||
# frontend tasks
|
||
# =========================
|
||
[feature.frontend.tasks]
|
||
fe-install = { cmd = "pnpm install", cwd = "frontend" }
|
||
fe-dev = { cmd = "pnpm dev --host", cwd = "frontend" }
|
||
fe-build = { cmd = "pnpm build", cwd = "frontend" }
|
||
fe-test = { cmd = "pnpm test:unit --run", cwd = "frontend" }
|
||
fe-lint = { cmd = "pnpm lint", cwd = "frontend" }
|
||
|
||
# =========================
|
||
# webbackend tasks
|
||
# =========================
|
||
[feature.webbackend.tasks]
|
||
api-dev = "uvicorn backend.app.main:app --reload --host 0.0.0.0 --port 8000"
|
||
api-test = "pytest backend/ -v"
|
||
web-start = "bash scripts/start_web.sh"
|