annotate COBRAxy/docs/tools/flux-simulation.md @ 548:5aef7b860706 draft default tip

Uploaded
author francesco_lapi
date Tue, 28 Oct 2025 11:04:40 +0000
parents 73f2f7e2be17
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
1 # Flux Simulation
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
2
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
3 Simulate flux distributions from constraint-based metabolic models using different optimization or sampling strategies.
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
4
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
5 ## Overview
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
6
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
7 Two types of analysis are available:
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
8 - **flux optimization**
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
9 - **flux sampling**
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
10
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
11 For flux optimization, one of the following methods can be performed: parsimonious-FBA, Flux Variability Analysis, Biomass sensitivity analysis (single reaction knock-out)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
12 The objective function, a linear combination of fluxes weighted by specific coefficients, depends on the provided metabolic network.
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
13
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
14 For flux sampling, one of the following methods can be performed: CBS (Corner-based sampling), OPTGP (Improved Artificial Centering Hit-and-Run sampler).
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
15
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
16 ## Galaxy Interface
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
17
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
18 In Galaxy: **COBRAxy → Flux Simulation**
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
19
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
20 1. Select model and upload bounds files
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
21 2. Choose algorithm (CBS/OPTGP) and sampling parameters
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
22 3. Click **Run tool**
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
23
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
24 ## Command-line console
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
25
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
26 ```bash
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
27 flux_simulation -ms ENGRO2 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
28 -in bounds/*.tsv \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
29 -ni Sample1,Sample2,Sample3 \
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
30 -a CBS \
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
31 -ns 1000 \
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
32 -idop output/
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
33 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
34
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
35 ## Parameters
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
36
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
37 | Parameter | Flag | Description | Default |
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
38 |-----------|------|-------------|---------|
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
39 | Model Selector | `-ms` | ENGRO2, Recon, or Custom | ENGRO2 |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
40 | Input Format | `--model_and_bounds` | Separate files (true) or complete models (false) | true |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
41 | Input Bounds | `-in` | Bounds files | - |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
42 | Name Input | `-ni` | Sample names (comma-separated) | - |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
43 | Algorithm | `-a` | CBS or OPTGP | CBS |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
44 | Num Samples | `-ns` | Number of samples per batch | 1000 |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
45 | Num Batches | `-nb` | Number of batches | 1 |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
46 | Thinning | `-th` | OPTGP thinning parameter | 100 |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
47 | Output Type | `-ot` | mean, median, quantiles, fluxes | mean,median |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
48 | FVA Optimality | `--perc_opt` | Optimality fraction (0.0-1.0) | 0.90 |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
49 | Output Path | `-idop` | Output directory | flux_simulation/ |
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
50
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
51 ## Algorithms
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
52
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
53 ### CBS (Corner-Based Sampling)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
54 - Random objective optimization
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
55 - Requires GLPK (recommended) or COBRApy solver
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
56 - Suitable for large models
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
57
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
58 ### OPTGP (MCMC Sampling)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
59 - Markov Chain Monte Carlo
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
60 - Uniform sampling guarantee
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
61 - Requires thinning parameter
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
62
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
63 ## Input Modes
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
64
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
65 The tool supports two different input formats:
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
66
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
67 ### Mode 1: Model + Bounds (default, `--model_and_bounds true`)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
68 Upload one base model + multiple bound files (one per sample/context):
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
69 - Base model: Tabular file with reaction structure (from Import Metabolic Model)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
70 - Bounds: Individual TSV files with sample-specific constraints (from RAS to Bounds)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
71 - Use when you have RAS-derived bounds for multiple samples
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
72
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
73 ### Mode 2: Multiple Complete Models (`--model_and_bounds false`)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
74 Upload pre-built model files, each already containing integrated bounds:
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
75 - Each file is a complete tabular model with reaction structure + bounds
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
76 - Use when models are already prepared with specific constraints
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
77 - Useful for comparing different modelling scenarios
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
78
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
79 ## Input Format
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
80
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
81 Bounds files (TSV):
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
82
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
83 ```
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
84 reaction lower_bound upper_bound
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
85 R00001 -125.0 125.0
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
86 R00002 -65.0 65.0
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
87 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
88
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
89 **File Format Notes:**
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
90 - Use **tab-separated** values (TSV)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
91 - Column headers must be: reaction, lower_bound, upper_bound
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
92 - Reaction IDs must match model reaction IDs
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
93 - Numeric values for bounds
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
94
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
95 ## Sampling Outputs
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
96
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
97 The tool can generate different types of output from flux sampling:
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
98
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
99 | Output Type | Description |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
100 |-------------|-------------|
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
101 | **mean** | Mean flux across all samples |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
102 | **median** | Median flux across all samples |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
103 | **quantiles** | 25th, 50th, 75th percentiles |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
104 | **fluxes** | Complete flux distributions (all samples, all reactions) |
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
105
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
106 **Note**: The `fluxes` output can be very large for many samples. Use summary statistics (mean/median/quantiles) unless you need the complete distribution.
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
107
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
108 ## Optimization Methods
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
109
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
110 In alternative to sampling, the tool can perform optimization analyses:
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
111
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
112 | Method | Description | Output |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
113 |--------|-------------|--------|
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
114 | **FVA** | Flux Variability Analysis | Min/max flux ranges for each reaction |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
115 | **pFBA** | Parsimonious FBA | Flux distribution with minimal total flux |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
116 | **sensitivity** | Reaction knockout analysis | Biomass impact of single reaction deletions |
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
117
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
118 ### FVA Optimality Fraction
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
119
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
120 The `--perc_opt` parameter (default: 0.90) controls the optimality constraint for FVA:
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
121 - **1.0**: Only optimal solutions (100% of maximum biomass)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
122 - **0.90**: Allow suboptimal solutions (≥90% of maximum biomass)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
123 - **Lower values**: Explore broader flux ranges
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
124
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
125 ## Output
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
126
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
127 - `mean.csv`: Mean flux values
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
128 - `median.csv`: Median flux values
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
129 - `quantiles.csv`: Flux quantiles (25%, 50%, 75%)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
130 - `fluxes/`: Complete flux distributions (if requested)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
131 - `fva.csv`: FVA results (if requested)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
132 - `pfba.csv`: pFBA results (if requested)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
133 - `sensitivity.csv`: Knockout sensitivity analysis (if requested)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
134 - `*.log`: Processing log
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
135
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
136 ## Examples
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
137
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
138 ### Basic CBS Sampling
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
139
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
140 ```bash
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
141 flux_simulation -ms ENGRO2 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
142 -in bounds/*.tsv \
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
143 -ni Sample1,Sample2 \
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
144 -a CBS \
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
145 -ns 1000 \
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
146 -idop output/
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
147 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
148
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
149 ### OPTGP Sampling
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
150
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
151 ```bash
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
152 flux_simulation -ms ENGRO2 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
153 -in bounds/*.tsv \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
154 -ni Sample1,Sample2 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
155 -a OPTGP \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
156 -ns 1000 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
157 -th 200 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
158 -idop output/
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
159 ```
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
160
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
161 ### Custom Model with CBS Sampling
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
162
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
163 ```bash
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
164 flux_simulation -ms Custom \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
165 -mo custom_model.xml \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
166 -in bounds/*.tsv \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
167 -ni Sample1 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
168 -a CBS \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
169 -ns 2000 \
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
170 -idop output/
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
171 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
172
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
173 ## Troubleshooting
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
174
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
175 | Error | Solution |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
176 |-------|----------|
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
177 | "GLPK solver failed" | Install GLPK libraries |
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
178 | "Model infeasible" | Check bounds constraints |
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
179
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
180 ## See Also
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
181
547
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
182 - [RAS to Bounds](tools/ras-to-bounds)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
183 - [Flux to Map](tools/flux-to-map)
73f2f7e2be17 Uploaded
francesco_lapi
parents: 542
diff changeset
184 - [Built-in Models](reference/built-in-models)