Pipeline MRHP 3-step elementary para Shewanella xiamenensis LC6: descomposición E+S↔ES→E+P de 49 macro-reacciones en 155 elementales, 44 enzimas explícitas, ODE mecanística completa Medio→Fenotipo con bridge fenotípico y validación RT-qPCR por fold-change (ΔΔCt, E=1.90). USE WHEN: ejecutar pipeline MRHP con cinética elementary completa, validar expresión génica por FC vs RT-qPCR, generar figuras multiescala publicables con puntos de validación experimental, reproducir resultados de decoloración de colorantes azo (MO, RC, AD) con trazabilidad enzimática. DO NOT USE WHEN: ejecutar MRHP modular v1 (use canonical-mrhp-multiscale-pipeline), ejecutar MRHP full-metabolism QSS v3 (use mrhp-full-v3), portar MRHP a nuevo organismo sin 3-step (use mrhp-v2).
Fully mechanistic ODE pipeline for LC6 azo dye decolorization where every enzymatic reaction is resolved as 3 elementary steps (Ullah 2006):
E + S →(k_bind)→ ES (binding)
ES →(k_unbind)→ E + S (unbinding)
ES →(k_cat)→ E + P (catalysis)
Key innovations over v2/v3:
Config: workflows/mrhp_3step/scripts/config_lc6_3step.m (~960 lines, ALL model params)
Builder: workflows/mrhp_3step/scripts/build_S_elementary.m (49 macro → 155 elementary)
Rates: workflows/mrhp_3step/scripts/mass_action_rates.m (pure mass-action rate function)
Solver: workflows/mrhp_3step/scripts/solve_3step.m (ode15s wrapper)
Pipeline: workflows/mrhp_3step/scripts/run_3step_pipeline.m (36 scenarios → bridge → expression FC)
Runner: workflows/mrhp_3step/scripts/run_full_v2.m (master: config → pipeline → figures → watchdog)
Figures: workflows/mrhp_3step/scripts/generate_figures_3step_v2.m (10 figures, PNG+SVG, 300 DPI)
Watchdog: workflows/mrhp_3step/scripts/run_watchdog_3step_v2.m (18 mechanistic checks)
FC Audit: workflows/mrhp_3step/scripts/compute_canonical_fc.py (standalone ΔΔCt FC computation)
Engine: workflows/mrhp_3step/scripts/mrhp_3step_engine/ (11 SHARED generic .m files)
The 3-step approach is config + builder: the config defines all biology and
parameters; build_S_elementary decomposes macro-reactions into 3-step triplets;
mass_action_rates computes pure mass-action velocities. The engine is shared
with mrhp-v2 for bridge, expression, and figure generation.
| Component | MO | RC | AD |
|---|---|---|---|
| Core metabolites | 47 | 47 | 47 |
| Core enzymes | 44 | 44 | 44 |
| Core ES complexes | 53 | 53 | 53 |
| Core subtotal | 144 | 144 | 144 |
| Dye metabolites | 5 | 8 | 10 |
| Dye enzyme-ES | 4 | 6 | 6 |
| Expression (mRNA+Prot) | 8 | 7 | 7 |
| Total species | 161 | 165 | 167 |
From Ullah 2006 / Shewa.xlsx:
| Parameter | Value | Units | Source |
|---|---|---|---|
| k_bind | 1000 | h⁻¹ | Ullah 2006 |
| k_unbind | 150 | h⁻¹ | Ullah 2006 |
| k_cat | 150 | h⁻¹ | Ullah 2006 (core enzymes) |
| k_cat_AzoR | 5.0 | h⁻¹ | Calibrated (slower azo cleavage) |
| k_cat_YhhW | 50.0 | h⁻¹ | Calibrated (ring-opening) |
| k_cat_bepE | 30.0 | h⁻¹ | Calibrated (efflux pump) |
| E0 (all enzymes) | 0.0003 | mM | Basal steady-state |
All expression in mM. Protein IS enzyme (unified tracking).
| Parameter | Value | Units | Source |
|---|---|---|---|
| β_m (mRNA decay) | 8.32 | h⁻¹ | Ullah 2006 |
| β_p (protein decay) | 0.924 | h⁻¹ | Ullah 2006 |
| ktl (translation) | 0.2 | h⁻¹ | Recalibrated for mM |
| Gene | Signal u(t) | Biological rationale |
|---|---|---|
| AzoR | max(0.006, ha(aromatic,0.50,2)·ha(NADH,0.10,2) + k_stress·ha(toxic,0.05,1)) | Dye + aromatic amine stress induction |
| AceA | max(0.02, hr(redox,0.34,4)) | Catabolite repression → glyoxylate shunt activation under redox stress |
| bepE | max(0.01, ha(bepE_tox,0.30,2)) | RND efflux pump for aromatic amines |
| mtrF | max(0.20, 0.20 + 0.50·ha(aromatic,2.0,1)) | Constitutive + minor aromatic boost |
| CymA | max(0.03, 0.08·ha(aromatic,2.0,1) + 0.15·ha(bepE_tox,0.15,2)) | Dye-presence + redox state |
| YhhW | max(0.03, 0.15·ha(bepE_tox,0.15,2)) | Dioxygenase, substrate-driven |
Where: ha(x,K,n) = x^n/(K^n+x^n) [Hill activation], hr(x,K,n) = K^n/(K^n+x^n) [Hill repression]
D(t) = y_max · (1 − exp(−H(t)^β))
H(t) = ∫₀ᵗ λ · Φ(τ) dτ
Φ(t) = dye depletion rate from ODE
Fitted per condition: λ, β from fminsearch against phenotypic reference.
Validation by fold-change (FC), NOT absolute concentration.
Rationale: ng_cDNA (RT-qPCR) and mM_protein (model) are incommensurable — 7+ unknown conversion factors (RT efficiency, extraction recovery, cell count, molecular weight, cell volume, ktl/βp ratio, dilution factor) make direct comparison impossible (100–10,000× systematic error). FC cancels all factors:
FC_rtqpcr = 2^(−ΔΔCt) where E = 1.90 (uniform)
FC_model = Prot(t=24h) / Prot_basal
| Gene | MO | RC | AD |
|---|---|---|---|
| AzoR | 113.752 | 42.071 | 434.673 |
| AceA | 0.181 | 0.385 | 0.842 |
| bepE | 1.567 | 0.723 | 38.157 |
| mtrF | 0.987 | 0.398 | 1.950 |
| CymA | 0.671 | 2.404 | 6.067 |
| YhhW | 0.875 | 1.207 | 3.477 |
AceA·AD: model=0.11 (log2=−3.22), rtqpcr=0.84 (log2=−0.25), |Δlog2|=2.97. Beyond 4× threshold. Biologically: glyoxylate shunt is over-repressed in model under AD conditions. Acceptable given AceA's extreme sensitivity to redox signal.
MATLAB R2025b (ode15s, fminsearch)
Python 3.8+ (only for compute_canonical_fc.py)
cd workflows/mrhp_3step/scripts
run_full_v2;
This executes:
Acceptance criteria:
Per repository architecture rules:
archive/mrhp_3step/<timestamp>/workflows/mrhp_3step/reports/workflows/mrhp_3step/metadata/| # | File | Content |
|---|---|---|
| 1 | fig1_ode_timeseries | Metabolite concentration profiles (0–72h) |
| 2 | fig2_regulatory_signals | Hill activation/repression signals u(t) |
| 3 | fig3_expression_timecourses | mRNA and protein dynamics |
| 4 | fig4_bridge_curves | Phenotypic bridge D(t) vs reference |
| 5 | fig5_integrated_multiscale | ODE + bridge + expression combined |
| 6 | fig6_sensitivity_sweeps | Substrate × target grid |
| 7 | fig7_rtqpcr_validation | Scatter log10(FC_model) vs log10(FC_rtqpcr) + heatmap |
| 8 | fig8_enzyme_dynamics | E(t) + ES(t) conservation profiles |
| 9 | fig9_metabolic_intermediates | Aromatic intermediates, toxic pool |
| 10 | fig10_statistical_dashboard | Summary statistics, R², convergence |
| # | File | Content |
|---|---|---|
| 1 | table1_convergence.tsv | 36-scenario convergence summary |
| 2 | table2_bridge_params.tsv | λ, β, R² per condition |
| 3 | table3_expression_fc.tsv | FC_model vs FC_rtqpcr per gene×condition |
| 4 | table4_species_counts.tsv | Species/reaction counts per dye model |
| 5 | table5_enzyme_conservation.tsv | E+ES conservation check per enzyme |
full_run_v2.mat — complete workspace (all scenarios, bridge, expression)results_3step.mat — pipeline results struct| Element | Status | Rule |
|---|---|---|
| Elementary decomposition (3-step) | FROZEN | E+S↔ES→E+P — no modifications |
| Bridge equation | FROZEN | D=y_max·(1−exp(−H^β)) |
| Solver settings | FROZEN | ode15s, rtol=1e-6, atol=1e-10, MaxStep=0.5 |
| Expression β_m, β_p, ktl | FROZEN | 8.32, 0.924, 0.2 |
| Core S matrix structure | FROZEN | 144 core species, 155 elementary reactions |
| k_bind, k_unbind, k_cat | FROZEN | 1000, 150, 150 h⁻¹ |
| FC validation method | FROZEN | ΔΔCt with E=1.90, FC comparison only |
| Engine (11 shared .m files) | FROZEN | No modifications |
| Dye-specific k_cat | EXTENSIBLE | AzoR=5, YhhW=50, bepE=30 — tunable |
| Regulatory K, n values | EXTENSIBLE | New evidence can adjust Hill parameters |
| Experimental data | EXTENSIBLE | Add new genes as RT-qPCR arrives |
| TCA scaling | EXTENSIBLE | RNA-seq fold-changes can update scaling |
| File | Purpose |
|---|---|
workflows/mrhp_3step/scripts/config_lc6_3step.m | CANONICAL config (~960 lines) |
workflows/mrhp_3step/scripts/build_S_elementary.m | Macro → elementary decomposition |
workflows/mrhp_3step/scripts/mass_action_rates.m | Pure mass-action rate function |
workflows/mrhp_3step/scripts/solve_3step.m | ODE solver wrapper |
workflows/mrhp_3step/scripts/run_3step_pipeline.m | 36-scenario pipeline |
workflows/mrhp_3step/scripts/run_full_v2.m | Master runner |
workflows/mrhp_3step/scripts/generate_figures_3step_v2.m | 10 figures generator |
workflows/mrhp_3step/scripts/run_watchdog_3step_v2.m | 18-check audit |
workflows/mrhp_3step/scripts/compute_canonical_fc.py | ΔΔCt FC computation |
workflows/mrhp_3step/inputs/evidence_table.tsv | RNA-seq → parametric evidence |
workflows/mrhp_3step/inputs/rtqpcr_master.tsv | Full RT-qPCR dataset (120 rows) |
workflows/mrhp_3step/inputs/canonical_fc_table.tsv | 18 verified FC values |
| Metric | v2 (QSS) | v3.1 (QSS) | 3-step (this) | Target |
|---|---|---|---|---|
| Bridge R² MO | — | — | 0.9948 | >0.95 |
| Bridge R² RC | — | — | 0.9966 | >0.95 |
| Bridge R² AD | — | — | 0.9769 | >0.95 |
| Expression within 5× | 78% (3 genes) | 100% (6 genes) | 94% (6 genes, 17/18) | >90% |
| Convergence | — | — | 36/36 | 36/36 |
| Watchdog | — | — | 17 PASS, 1 WARN | 0 FAIL |
| Elapsed time | — | — | 168.5 s | — |
| Aspect | v1 (canonical) | v2 (full-metabolism) | v3.1 (omics) | 3-step (this) |
|---|---|---|---|---|
| Kinetics | Lumped MM | Full MM | Full MM + scaling | Mass-action elementary |
| ES complexes | None | None | None | 44 explicit |
| Enzymes | Implicit | Implicit | Implicit | 44 explicit ODE states |
| Protein linkage | coupling_gain | coupling_gain | coupling_gain | Protein IS Enzyme |
| Core species | 13-18 | 26+ | 26+ | 144 |
| Core reactions | ~18 | ~49 | ~49 | 155 elementary |
| Solver | Python | MATLAB ode15s | MATLAB ode15s | MATLAB ode15s |
| RT-qPCR genes | 3 | 3 | 6 | 6 |
| FC method | ng comparison | ng comparison | ng comparison | ΔΔCt FC (E=1.90) |