[workspace] name = "bttoxin-pipeline" channels = ["conda-forge", "bioconda"] platforms = ["linux-64"] version = "0.1.0" channel-priority = "disabled" # ========================= # digger 环境:bioconda 依赖 # ========================= [feature.digger] channels = ["bioconda", "conda-forge", "bioconda/label/cf201901"] [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 系统对宿主防御的影响 # # 预期依赖(待激活时添加): [feature.crispr.dependencies] python = ">=3.10" wget = "*" curl = "*" git = "*" java-jdk = "*" parallel = "*" perl-app-cpanminus = "*" hmmer = "*" emboss = "*" blast = "*" perl-bioperl-core = "*" perl-xml-simple = "*" perl-digest-md5 = "*" vmatch = "*" muscle = "*" prodigal = "*" mamba = "*" macsyfinder = "==2.1.2" [feature.crispr.tasks] install-casfinder = "macsydata install -u CASFinder==3.1.0" detect = "python tools/crispr_cas_analysis/scripts/detect_crispr.py" fusion = "python tools/crispr_cas_analysis/scripts/fusion_analysis.py" # ========================= # 环境定义 # ========================= [environments] digger = ["digger"] pipeline = ["pipeline"] frontend = ["frontend"] webbackend = ["webbackend"] crispr = ["crispr"] # Actually, let's keep it simple. The tools are Python scripts. They can run in the 'pipeline' environment which has python and pandas. # The 'crispr' feature defines dependencies. # ========================= # 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"