annotate COBRAxy/docs/tools/export-metabolic-model.md @ 542:fcdbc81feb45 draft

Uploaded
author francesco_lapi
date Sun, 26 Oct 2025 19:27:41 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
542
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
1 # Export Metabolic Model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
2
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
3 Export tabular data (CSV/TSV) into COBRA metabolic models in various formats.
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
4
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
5 ## Overview
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
6
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
7 Export Metabolic Model (exportMetabolicModel) converts structured tabular data containing reaction information into fully functional COBRA metabolic models. This tool enables creation of custom models from spreadsheet data and supports multiple output formats including SBML, JSON, MATLAB, and YAML.
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
8
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
9 ## Usage
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
10
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
11 ### Command Line
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
12
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
13 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
14 exportMetabolicModel --input model_data.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
15 --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
16 --output custom_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
17 --out_log conversion.log \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
18 --tool_dir /path/to/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
19 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
20
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
21 ### Galaxy Interface
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
22
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
23 Select "Export Metabolic Model" from the COBRAxy tool suite and configure conversion parameters.
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
24
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
25 ## Parameters
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
26
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
27 ### Required Parameters
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
28
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
29 | Parameter | Flag | Description |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
30 |-----------|------|-------------|
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
31 | Input File | `--input` | Tabular file (CSV/TSV) with model data |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
32 | Output Format | `--format` | Model format (sbml, json, mat, yaml) |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
33 | Output File | `--output` | Output model file path |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
34 | Output Log | `--out_log` | Log file for conversion process |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
35
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
36 ### Optional Parameters
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
37
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
38 | Parameter | Flag | Description | Default |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
39 |-----------|------|-------------|---------|
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
40 | Tool Directory | `--tool_dir` | COBRAxy installation directory | Current directory |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
41
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
42 ## Input Format
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
43
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
44 ### Tabular Model Data
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
45
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
46 The input file must contain structured model information with the following columns:
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
47
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
48 ```csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
49 Reaction_ID,GPR_Rule,Reaction_Formula,Lower_Bound,Upper_Bound,Objective_Coefficient,Medium_Member,Compartment,Subsystem
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
50 R00001,GENE1 or GENE2,A + B -> C + D,-1000.0,1000.0,0.0,FALSE,cytosol,Glycolysis
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
51 R00002,GENE3 and GENE4,E <-> F,-1000.0,1000.0,0.0,FALSE,mitochondria,TCA_Cycle
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
52 EX_glc_e,-,glc_e <->,-1000.0,1000.0,0.0,TRUE,extracellular,Exchange
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
53 BIOMASS,GENE5,0.5 A + 0.3 B -> 1 BIOMASS,0.0,1000.0,1.0,FALSE,cytosol,Biomass
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
54 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
55
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
56 ### Required Columns
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
57
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
58 | Column | Description | Format |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
59 |--------|-------------|--------|
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
60 | **Reaction_ID** | Unique reaction identifier | String |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
61 | **Reaction_Formula** | Stoichiometric equation | Metabolite notation |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
62 | **Lower_Bound** | Minimum flux constraint | Numeric |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
63 | **Upper_Bound** | Maximum flux constraint | Numeric |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
64
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
65 ### Optional Columns
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
66
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
67 | Column | Description | Default |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
68 |--------|-------------|---------|
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
69 | **GPR_Rule** | Gene-protein-reaction association | Empty string |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
70 | **Objective_Coefficient** | Biomass/objective weight | 0.0 |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
71 | **Medium_Member** | Exchange reaction flag | FALSE |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
72 | **Compartment** | Subcellular location | Empty |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
73 | **Subsystem** | Metabolic pathway | Empty |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
74
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
75 ## Output Formats
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
76
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
77 ### SBML (Systems Biology Markup Language)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
78 - **Format**: XML-based standard
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
79 - **Extension**: `.xml` or `.sbml`
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
80 - **Use Case**: Interoperability with other tools
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
81 - **Advantages**: Widely supported, standardized
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
82
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
83 ### JSON (JavaScript Object Notation)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
84 - **Format**: COBRApy native JSON
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
85 - **Extension**: `.json`
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
86 - **Use Case**: Python/COBRApy workflows
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
87 - **Advantages**: Human-readable, lightweight
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
88
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
89 ### MATLAB (.mat)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
90 - **Format**: MATLAB workspace format
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
91 - **Extension**: `.mat`
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
92 - **Use Case**: MATLAB COBRA Toolbox
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
93 - **Advantages**: Direct MATLAB compatibility
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
94
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
95 ### YAML (YAML Ain't Markup Language)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
96 - **Format**: Human-readable data serialization
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
97 - **Extension**: `.yml` or `.yaml`
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
98 - **Use Case**: Configuration and documentation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
99 - **Advantages**: Most human-readable format
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
100
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
101 ## Reaction Formula Syntax
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
102
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
103 ### Standard Notation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
104 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
105 # Irreversible reaction
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
106 A + B -> C + D
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
107
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
108 # Reversible reaction
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
109 A + B <-> C + D
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
110
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
111 # With stoichiometric coefficients
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
112 2 A + 3 B -> 1 C + 4 D
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
113
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
114 # Compartmentalized metabolites
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
115 glc_c + atp_c -> g6p_c + adp_c
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
116 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
117
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
118 ### Compartment Suffixes
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
119 - `_c`: Cytosol
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
120 - `_m`: Mitochondria
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
121 - `_e`: Extracellular
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
122 - `_r`: Endoplasmic reticulum
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
123 - `_x`: Peroxisome
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
124 - `_n`: Nucleus
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
125
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
126 ### Exchange Reactions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
127 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
128 # Import reaction
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
129 EX_glc_e: glc_e <->
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
130
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
131 # Export reaction
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
132 EX_co2_e: co2_e <->
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
133 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
134
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
135 ## GPR Rule Syntax
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
136
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
137 ### Logical Operators
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
138 - **AND**: Gene products required together
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
139 - **OR**: Alternative gene products
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
140 - **Parentheses**: Grouping for complex logic
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
141
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
142 ### Examples
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
143 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
144 # Single gene
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
145 GENE1
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
146
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
147 # Alternative genes (isozymes)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
148 GENE1 or GENE2 or GENE3
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
149
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
150 # Required genes (complex)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
151 GENE1 and GENE2
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
152
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
153 # Complex logic
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
154 (GENE1 and GENE2) or (GENE3 and GENE4)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
155 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
156
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
157 ## Examples
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
158
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
159 ### Create Basic Model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
160
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
161 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
162 # Convert simple CSV to SBML model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
163 exportMetabolicModel --input simple_model.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
164 --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
165 --output simple_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
166 --out_log simple_conversion.log \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
167 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
168 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
169
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
170 ### Multi-format Export
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
171
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
172 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
173 # Create models in all supported formats
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
174 formats=("sbml" "json" "mat" "yaml")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
175 for fmt in "${formats[@]}"; do
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
176 exportMetabolicModel --input comprehensive_model.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
177 --format "$fmt" \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
178 --output "model.$fmt" \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
179 --out_log "conversion_$fmt.log" \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
180 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
181 done
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
182 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
183
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
184 ### Custom Model Creation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
185
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
186 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
187 # Build tissue-specific model from curated data
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
188 exportMetabolicModel --input liver_reactions.tsv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
189 --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
190 --output liver_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
191 --out_log liver_model.log \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
192 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
193 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
194
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
195 ### Model Integration Pipeline
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
196
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
197 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
198 # Extract existing model, modify, and recreate
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
199 importMetabolicModel --model ENGRO2 \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
200 --out_tabular base_model.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
201 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
202
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
203 # Edit base_model.csv with custom reactions/constraints
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
204
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
205 # Create modified model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
206 exportMetabolicModel --input modified_model.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
207 --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
208 --output custom_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
209 --out_log custom_creation.log \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
210 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
211 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
212
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
213 ## Model Validation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
214
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
215 ### Automatic Checks
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
216
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
217 The tool performs validation during conversion:
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
218 - **Stoichiometric Balance**: Reaction mass balance
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
219 - **Metabolite Consistency**: Compartment assignments
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
220 - **Bound Validation**: Feasible constraint ranges
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
221 - **Objective Function**: Valid biomass reaction
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
222
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
223 ### Post-conversion Validation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
224
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
225 ```python
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
226 import cobra
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
227
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
228 # Load and validate model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
229 model = cobra.io.read_sbml_model('custom_model.xml')
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
230
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
231 # Check basic properties
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
232 print(f"Reactions: {len(model.reactions)}")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
233 print(f"Metabolites: {len(model.metabolites)}")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
234 print(f"Genes: {len(model.genes)}")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
235
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
236 # Test model solvability
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
237 solution = model.optimize()
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
238 print(f"Growth rate: {solution.objective_value}")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
239
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
240 # Validate mass balance
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
241 unbalanced = cobra.flux_analysis.check_mass_balance(model)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
242 if unbalanced:
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
243 print("Unbalanced reactions found:", unbalanced)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
244 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
245
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
246 ## Integration Workflow
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
247
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
248 ### Upstream Data Sources
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
249
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
250 #### COBRAxy Tools
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
251 - [Import Metabolic Model](import-metabolic-model.md) - Extract tabular data for modification
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
252
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
253 #### External Sources
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
254 - **Databases**: KEGG, Reactome, BiGG
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
255 - **Literature**: Manually curated reactions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
256 - **Spreadsheets**: User-defined custom models
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
257
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
258 ### Downstream Applications
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
259
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
260 #### COBRAxy Analysis
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
261 - [RAS to Bounds](ras-to-bounds.md) - Apply constraints to custom model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
262 - [Flux Simulation](flux-simulation.md) - Sample fluxes from custom model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
263 - [MAREA](marea.md) - Analyze custom pathways
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
264
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
265 #### External Tools
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
266 - **COBRApy**: Python-based analysis
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
267 - **COBRA Toolbox**: MATLAB analysis
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
268 - **OptFlux**: Strain design
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
269 - **Escher**: Pathway visualization
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
270
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
271 ### Typical Pipeline
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
272
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
273 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
274 # 1. Start with existing model data
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
275 importMetabolicModel --model ENGRO2 \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
276 --out_tabular base_reactions.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
277 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
278
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
279 # 2. Modify/extend the reaction data
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
280 # Edit base_reactions.csv to add tissue-specific reactions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
281
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
282 # 3. Create custom model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
283 exportMetabolicModel --input modified_reactions.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
284 --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
285 --output tissue_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
286 --out_log tissue_creation.log \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
287 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
288
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
289 # 4. Validate and use custom model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
290 ras_to_bounds --model Custom --input tissue_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
291 --ras_input tissue_expression.tsv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
292 --idop tissue_bounds/ \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
293 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
294
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
295 # 5. Perform flux analysis
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
296 flux_simulation --model Custom --input tissue_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
297 --bounds tissue_bounds/*.tsv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
298 --algorithm CBS --idop tissue_fluxes/ \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
299 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
300 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
301
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
302 ## Quality Control
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
303
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
304 ### Input Data Validation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
305
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
306 #### Pre-conversion Checks
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
307 - **Format Consistency**: Verify column headers and data types
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
308 - **Reaction Completeness**: Check for missing required fields
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
309 - **Stoichiometric Validity**: Validate reaction formulas
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
310 - **Bound Feasibility**: Ensure lower ≤ upper bounds
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
311
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
312 #### Common Data Issues
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
313 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
314 # Check for missing reaction IDs
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
315 awk -F',' 'NR>1 && ($1=="" || $1=="NA") {print "Empty ID in line " NR}' input.csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
316
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
317 # Validate reaction directions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
318 awk -F',' 'NR>1 && $3 !~ /->|<->/ {print "Invalid formula: " $1 ", " $3}' input.csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
319
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
320 # Check bound consistency
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
321 awk -F',' 'NR>1 && $4>$5 {print "Invalid bounds: " $1 ", LB=" $4 " > UB=" $5}' input.csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
322 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
323
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
324 ### Model Quality Assessment
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
325
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
326 #### Structural Properties
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
327 - **Network Connectivity**: Ensure realistic pathway structure
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
328 - **Compartmentalization**: Validate transport reactions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
329 - **Exchange Reactions**: Verify medium composition
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
330 - **Biomass Function**: Check objective reaction completeness
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
331
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
332 #### Functional Testing
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
333 ```python
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
334 # Test model functionality
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
335 model = cobra.io.read_sbml_model('custom_model.xml')
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
336
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
337 # Check growth capability
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
338 growth = model.optimize().objective_value
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
339 print(f"Maximum growth rate: {growth}")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
340
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
341 # Flux Variability Analysis
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
342 fva_result = cobra.flux_analysis.flux_variability_analysis(model)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
343 blocked_reactions = fva_result[(fva_result.minimum == 0) & (fva_result.maximum == 0)]
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
344 print(f"Blocked reactions: {len(blocked_reactions)}")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
345
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
346 # Essential gene analysis
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
347 essential_genes = cobra.flux_analysis.find_essential_genes(model)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
348 print(f"Essential genes: {len(essential_genes)}")
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
349 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
350
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
351 ## Tips and Best Practices
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
352
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
353 ### Data Preparation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
354 - **Consistent Naming**: Use systematic metabolite/reaction IDs
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
355 - **Compartment Notation**: Follow standard suffixes (_c, _m, _e)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
356 - **Balanced Reactions**: Verify mass and charge balance
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
357 - **Realistic Bounds**: Use physiologically relevant constraints
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
358
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
359 ### Model Design
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
360 - **Modular Structure**: Organize reactions by pathway/subsystem
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
361 - **Exchange Reactions**: Include all necessary transport processes
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
362 - **Biomass Function**: Define appropriate growth objective
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
363 - **Gene Associations**: Add GPR rules where available
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
364
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
365 ### Format Selection
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
366 - **SBML**: Choose for maximum compatibility and sharing
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
367 - **JSON**: Use for COBRApy-specific workflows
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
368 - **MATLAB**: Select for COBRA Toolbox integration
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
369 - **YAML**: Pick for human-readable documentation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
370
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
371 ### Performance Optimization
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
372 - **Model Size**: Balance comprehensiveness with computational efficiency
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
373 - **Reaction Pruning**: Remove unnecessary or blocked reactions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
374 - **Compartmentalization**: Minimize unnecessary compartments
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
375 - **Validation**: Test model properties before distribution
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
376
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
377 ## Troubleshooting
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
378
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
379 ### Common Issues
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
380
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
381 **Conversion fails with format error**
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
382 - Check CSV/TSV column headers and data consistency
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
383 - Verify reaction formula syntax
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
384 - Ensure numeric fields contain valid numbers
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
385
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
386 **Model is infeasible after conversion**
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
387 - Check reaction bounds for conflicts
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
388 - Verify exchange reaction setup
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
389 - Validate stoichiometric balance
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
390
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
391 **Missing metabolites or reactions**
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
392 - Confirm all required columns present in input
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
393 - Check for empty rows or malformed data
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
394 - Validate reaction formula parsing
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
395
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
396 ### Error Messages
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
397
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
398 | Error | Cause | Solution |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
399 |-------|-------|----------|
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
400 | "Input file not found" | Invalid file path | Check file location and permissions |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
401 | "Unknown format" | Invalid output format | Use: sbml, json, mat, or yaml |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
402 | "Formula parsing failed" | Malformed reaction equation | Check reaction formula syntax |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
403 | "Model infeasible" | Conflicting constraints | Review bounds and exchange reactions |
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
404
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
405 ### Performance Issues
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
406
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
407 **Slow conversion**
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
408 - Large input files require more processing time
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
409 - Complex GPR rules increase parsing overhead
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
410 - Monitor system memory usage
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
411
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
412 **Memory errors**
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
413 - Reduce model size or split into smaller files
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
414 - Increase available system memory
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
415 - Use more efficient data structures
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
416
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
417 **Output file corruption**
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
418 - Ensure sufficient disk space
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
419 - Check file write permissions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
420 - Verify format-specific requirements
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
421
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
422 ## Advanced Usage
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
423
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
424 ### Batch Model Creation
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
425
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
426 ```python
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
427 #!/usr/bin/env python3
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
428 import subprocess
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
429 import pandas as pd
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
430
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
431 # Create multiple tissue-specific models
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
432 tissues = ['liver', 'muscle', 'brain', 'heart']
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
433 base_data = pd.read_csv('base_model.csv')
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
434
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
435 for tissue in tissues:
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
436 # Modify base data for tissue specificity
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
437 tissue_data = customize_for_tissue(base_data, tissue)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
438 tissue_data.to_csv(f'{tissue}_model.csv', index=False)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
439
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
440 # Convert to SBML
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
441 subprocess.run([
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
442 'exportMetabolicModel',
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
443 '--input', f'{tissue}_model.csv',
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
444 '--format', 'sbml',
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
445 '--output', f'{tissue}_model.xml',
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
446 '--out_log', f'{tissue}_conversion.log',
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
447 '--tool_dir', '/opt/COBRAxy/src'
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
448 ])
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
449 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
450
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
451 ### Model Merging
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
452
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
453 Combine multiple tabular files into comprehensive models:
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
454
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
455 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
456 # Merge core metabolism with tissue-specific pathways
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
457 cat core_reactions.csv > combined_model.csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
458 tail -n +2 tissue_reactions.csv >> combined_model.csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
459 tail -n +2 disease_reactions.csv >> combined_model.csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
460
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
461 # Create merged model
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
462 exportMetabolicModel --input combined_model.csv \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
463 --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
464 --output comprehensive_model.xml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
465 --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
466 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
467
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
468 ### Model Versioning
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
469
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
470 Track model versions and changes:
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
471
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
472 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
473 # Version control for model development
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
474 git add model_v1.csv
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
475 git commit -m "Initial model version"
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
476
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
477 # Create versioned models
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
478 exportMetabolicModel --input model_v1.csv --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
479 --output model_v1.xml --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
480 exportMetabolicModel --input model_v2.csv --format sbml \
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
481 --output model_v2.xml --tool_dir /opt/COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
482
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
483 # Compare model versions
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
484 cobra_compare_models model_v1.xml model_v2.xml
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
485 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
486
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
487 ## See Also
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
488
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
489 - [Import Metabolic Model](import-metabolic-model.md) - Extract tabular data from existing models
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
490 - [RAS to Bounds](ras-to-bounds.md) - Apply constraints to custom models
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
491 - [Flux Simulation](flux-simulation.md) - Analyze custom models with flux sampling
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
492 - [Model Creation Tutorial](/tutorials/custom-model-creation.md)
fcdbc81feb45 Uploaded
francesco_lapi
parents:
diff changeset
493 - [COBRA Model Standards](/tutorials/cobra-model-standards.md)