annotate COBRAxy/docs/tools/tabular-to-model.md @ 509:5956dcf94277 draft default tip

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