EnzyOrchestra v0.1.0: validación cross-generador para diseño de enzimas de novo
Un arnés OSS de validación in-silico que envuelve múltiples generadores de enzimas y aplica métricas catalíticas específicas, sin depender del método ni del laboratorio.
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.
ddges 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
Licencia: AGPL-3.0-or-later. Copyright (C) 2026 Pedro Sordo Martínez -- amurlaniakea@gmail.com.
Top comments (0)