EnzyOrchestra v0.1.0: validación cross-generador para diseño de enzimas de novo
DEV Community

EnzyOrchestra v0.1.0: validación cross-generador para diseño de enzimas de novo

El problema

El diseño generativo de enzimas (RFdiffusion, ProteinMPNN, Boltz-1) ya funciona. Lo que falta no es generar estructuras, sino validarlas de forma comparable entre métodos distintos. Hoy la validación vive fragmentada en scripts ad-hoc por paper. Cada grupo evalúa sus diseños con sus propias métricas, sus propios umbrales y sus propios generadores. Eso impide comparar manzanas con manzanas cuando querés saber qué generador rinde mejor para un theozyme dado.

El gap lo verifiqué en GitHub el 2026-07-12: 0 herramientas OSS independientes del método/lab que envuelvan múltiples generadores con métricas catalíticas específicas. El propio harness de benchmark de RFdiffusion2 está acoplado al modelo - sweep_hyperparam.py:234 hace import rf_diffusion - y no incluye métricas catalíticas. Cubre su generador, no el gap cross-generador.

La solución

EnzyOrchestra es la capa de validación que es independiente del método: orquesta varios generadores (RFdiffusion2, ProHiFlo, AgentPLM) y varios oracles, aplica métricas específicas de enzima y emite un reporte comparativo.

Diseño clave: los generadores se orquestan, no se importan. Se invocan por subprocess o se consumen como PDBs pre-generados (riesgo R1). El arnés nunca importa un generador como librería, así se mantiene independiente del método - pero vos aportás los binarios/el cómputo de cada generador.

Cómo funciona

El flujo es run (generá + validá + reportá) o report (renderizá desde un set de resultados):

# Dry-run con fixtures (sin GPU):
enzybench run --config enzybench_demo_config.json --dry-run --out report.html

# Render de un reporte desde un set de resultados (Markdown a stdout, sin GPU):
enzybench report --input enzybench_demo_config.json --format markdown

Métricas catalíticas que aplica

  • pLDDT - confianza estructural del plegado.
  • ΔΔG - cambio de energía de plegado (heurística OSS por defecto).
  • Solubilidad - predicción de expresión.
  • CAI (Codon Adaptation Index) - optimización de códon para expresión heteróloga.

El reporte es una tabla comparativa (Markdown revisable sin GPU, o HTML) con las columnas generador | pLDDT | ddg | solubilidad | cai.

Resultados y verificación

EnzyOrchestra v0.1.0 es MVP funcional, verificado por ejecución real:

  • Cobertura de código con gate >= 80% desde el primer commit (pytest --cov-fail-under=80).
  • 0 vulnerabilidades abiertas en SonarCloud (5 originales - SHA pin, path traversal S8707, lockfile - cerradas con evidencia por API).
  • Modo dry-run / CI sin GPU: corre end-to-end con fixtures PDB, sin binario externo.

Limitaciones (transparencia)

No inflo el alcance. Tres cosas que EnzyOrchestra no es:

  • Validación biológica. Los valores ΔΔG y pLDDT de los fixtures del dry-run son sintéticos - números asignados a mano para tests deterministas de regresión, no calculados ni validados contra ningún caso biológico publicado. Prueban que el pipeline corre; no que las métricas sean catalíticamente correctas.
  • Oracles de producción. ddg es una heurística OSS placeholder. El ΔΔG real requiere PROSS, FoldX (adaptador opcional, propietario) o un predictor ML de dG entrenado - ninguno bundleado.
  • Un generador. EnzyOrchestra valida; no diseña. Vos aportás RFdiffusion2 / ProHiFlo / AgentPLM y su GPU.

Pruébalo

git clone https://github.com/amurlaniakea/EnzyOrchestra.git
cd EnzyOrchestra
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest  # E1 + tests unitarios, sin GPU

Stack

Componente Detalle
Lenguaje Python >= 3.10
Dependencias core pydantic >= 2.0 (solo eso)
Validadores OSS: pLDDT, ΔΔG, solubilidad, CAI - FoldX opcional
CI / calidad pytest + coverage >=80%, SonarCloud 0 vulns
Licencia AGPL-3.0-or-later

Links

Comments

No comments yet. Start the discussion.