annotate COBRAxy/docs/troubleshooting.md @ 542:fcdbc81feb45 draft

Uploaded
author francesco_lapi
date Sun, 26 Oct 2025 19:27:41 +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 # Troubleshooting
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
2
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
3 Common issues and solutions when using COBRAxy.
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
4
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
5 ## Installation Issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
6
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
7 ### Missing Build Tools
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
8
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
9 **Problem**: `gcc: command not found` or compilation errors (Linux/macOS)
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
10 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
11 # Ubuntu/Debian
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
12 sudo apt-get install build-essential cmake pkg-config
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
13
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
14 # macOS
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
15 xcode-select --install
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
16 brew install cmake pkg-config
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
17 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
18
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
19 **Problem**: `CMake not found`
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
20 ```bash
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
21 # Ubuntu/Debian
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
22 sudo apt-get install cmake
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
23
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
24 # macOS
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
25 brew install cmake
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
26
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
27 # Or via conda
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
28 conda install -c conda-forge cmake
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
29 ```
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
30
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
31 ### Python Import Errors
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
32
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
33 **Problem**: `ModuleNotFoundError: No module named 'cobra'`
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
34 ```bash
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
35 # Solution: Reinstall COBRAxy with dependencies
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
36 cd COBRAxy/src
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
37 pip install .
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
38
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
39 # Or install missing dependency directly
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
40 pip install cobra
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
41 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
42
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
43 **Problem**: `ImportError: No module named 'cobraxy'`
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
44 ```python
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
45 # Solution: Ensure COBRAxy is installed
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
46 pip install /path/to/COBRAxy/src/
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
47
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
48 # Or add to Python path temporarily
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
49 import sys
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
50 sys.path.insert(0, '/path/to/COBRAxy/src')
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
51 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
52
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
53 ### System Dependencies
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
54
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
55 **Problem**: GLPK solver not found
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
56 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
57 # Ubuntu/Debian
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
58 sudo apt-get install libglpk40 glpk-utils
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
59 pip install swiglpk
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
60
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
61 # macOS
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
62 brew install glpk
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
63 pip install swiglpk
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
64
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
65 # Windows (using conda)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
66 conda install -c conda-forge glpk swiglpk
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
67 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
68
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
69 **Problem**: SVG processing errors
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
70 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
71 # Install libvips for image processing
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
72 # Ubuntu/Debian: sudo apt-get install libvips
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
73 # macOS: brew install vips
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
74 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
75
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
76 ## Data Format Issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
77
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
78 ### Gene Expression Problems
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
79
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
80 **Problem**: "No computable scores" error
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
81 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
82 Cause: Gene IDs don't match between data and model
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
83 Solution:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
84 1. Check gene ID format (HGNC vs symbols vs Ensembl)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
85 2. Verify first column contains gene identifiers
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
86 3. Ensure tab-separated format
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
87 4. Try different built-in model
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
88 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
89
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
90 **Problem**: Many "gene not found" warnings
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
91 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
92 # Check gene overlap with model
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
93 import pickle
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
94 genes_dict = pickle.load(open('src/local/pickle files/ENGRO2_genes.p', 'rb'))
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
95 model_genes = set(genes_dict['hugo_id'].keys())
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
96
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
97 import pandas as pd
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
98 data_genes = set(pd.read_csv('expression.tsv', sep='\t').iloc[:, 0])
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
99
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
100 overlap = len(model_genes.intersection(data_genes))
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
101 print(f"Gene overlap: {overlap}/{len(data_genes)} ({overlap/len(data_genes)*100:.1f}%)")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
102 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
103
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
104 **Problem**: File format not recognized
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
105 ```tsv
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
106 # Correct format - tab-separated:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
107 Gene_ID Sample_1 Sample_2
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
108 HGNC:5 10.5 11.2
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
109 HGNC:10 3.2 4.1
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
110
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
111 # Wrong - comma-separated or spaces will fail
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
112 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
113
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
114 ### Model Issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
115
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
116 **Problem**: Custom model not loading
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
117 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
118 Solution:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
119 1. Check TSV format with "GPR" column header
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
120 2. Verify reaction IDs are unique
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
121 3. Test GPR syntax (use 'and'/'or', proper parentheses)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
122 4. Check file permissions and encoding (UTF-8)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
123 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
124
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
125 ## Tool Execution Errors
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
126
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
127
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
128
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
129 ### File Path Problems
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
130
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
131 **Problem**: "File not found" errors
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
132 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
133 # Use absolute paths
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
134 from pathlib import Path
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
135
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
136 tool_dir = str(Path('/path/to/COBRAxy').absolute())
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
137 input_file = str(Path('expression.tsv').absolute())
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
138
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
139 args = ['-td', tool_dir, '-in', input_file, ...]
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
140 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
141
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
142 **Problem**: Permission denied
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
143 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
144 # Check write permissions
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
145 ls -la output_directory/
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
146
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
147 # Fix permissions
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
148 chmod 755 output_directory/
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
149 chmod 644 input_files/*
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
150 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
151
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
152 ### Galaxy Integration Issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
153
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
154 **Problem**: COBRAxy tools not appearing in Galaxy
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
155 ```xml
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
156 <!-- Check tool_conf.xml syntax -->
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
157 <section id="cobraxy" name="COBRAxy">
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
158 <tool file="cobraxy/ras_generator.xml" />
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
159 </section>
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
160
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
161 <!-- Verify file paths are correct -->
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
162 ls tools/cobraxy/ras_generator.xml
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
163 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
164
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
165 **Problem**: Tool execution fails in Galaxy
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
166 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
167 Check Galaxy logs:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
168 - main.log: General Galaxy issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
169 - handler.log: Job execution problems
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
170 - uwsgi.log: Web server issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
171
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
172 Common fixes:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
173 1. Restart Galaxy after adding tools
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
174 2. Check Python environment has COBRApy installed
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
175 3. Verify file permissions on tool files
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
176 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
177
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
178
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
179
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
180 **Problem**: Flux sampling hangs
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
181 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
182 # Check solver availability
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
183 python -c "import cobra; print(cobra.Configuration().solver)"
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
184
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
185 # Should show: glpk, cplex, or gurobi
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
186 # Install GLPK if missing:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
187 pip install swiglpk
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
188 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
189
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
190 ### Large Dataset Handling
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
191
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
192 **Problem**: Cannot process large expression matrices
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
193 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
194 # Process in chunks
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
195 def process_large_dataset(expression_file, chunk_size=1000):
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
196 df = pd.read_csv(expression_file, sep='\t')
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
197
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
198 for i in range(0, len(df), chunk_size):
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
199 chunk = df.iloc[i:i+chunk_size]
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
200 chunk_file = f'chunk_{i}.tsv'
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
201 chunk.to_csv(chunk_file, sep='\t', index=False)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
202
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
203 # Process chunk
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
204 ras_generator.main(['-in', chunk_file, ...])
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
205 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
206
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
207 ## Output Validation
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
208
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
209 ### Unexpected Results
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
210
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
211 **Problem**: All RAS values are zero or null
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
212 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
213 # Debug gene mapping
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
214 import pandas as pd
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
215 ras_df = pd.read_csv('ras_output.tsv', sep='\t', index_col=0)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
216
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
217 # Check data quality
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
218 print(f"Null percentage: {ras_df.isnull().sum().sum() / ras_df.size * 100:.1f}%")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
219 print(f"Zero percentage: {(ras_df == 0).sum().sum() / ras_df.size * 100:.1f}%")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
220
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
221 # Check expression data preprocessing
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
222 expr_df = pd.read_csv('expression.tsv', sep='\t', index_col=0)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
223 print(f"Expression range: {expr_df.min().min():.2f} to {expr_df.max().max():.2f}")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
224 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
225
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
226 **Problem**: RAS values seem too high/low
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
227 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
228 Possible causes:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
229 1. Expression data not log-transformed
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
230 2. Wrong normalization method
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
231 3. Incorrect gene ID mapping
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
232 4. GPR rule interpretation issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
233
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
234 Solutions:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
235 1. Check expression data preprocessing
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
236 2. Validate against known control genes
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
237 3. Compare with published metabolic activity patterns
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
238 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
239
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
240 ### Missing Pathway Maps
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
241
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
242 **Problem**: MAREA generates no output maps
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
243 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
244 Debug steps:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
245 1. Check RAS input has non-null values
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
246 2. Verify model choice matches RAS generation
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
247 3. Check statistical significance thresholds
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
248 4. Look at log files for specific errors
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
249 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
250
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
251 ## Environment Issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
252
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
253 ### Conda/Virtual Environment Problems
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
254
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
255 **Problem**: Tool import fails in virtual environment
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
256 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
257 # Activate environment properly
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
258 source venv/bin/activate # Linux/macOS
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
259 # or
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
260 venv\Scripts\activate # Windows
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
261
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
262 # Verify COBRAxy installation
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
263 pip list | grep cobra
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
264 python -c "import cobra; print('COBRApy version:', cobra.__version__)"
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
265 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
266
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
267 **Problem**: Version conflicts
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
268 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
269 # Create clean environment
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
270 conda create -n cobraxy python=3.9
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
271 conda activate cobraxy
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
272
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
273 # Install COBRAxy fresh
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
274 cd COBRAxy/src
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
275 pip install -e .
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
276 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
277
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
278 ### Cross-Platform Issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
279
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
280 **Problem**: Windows path separator issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
281 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
282 # Use pathlib for cross-platform paths
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
283 from pathlib import Path
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
284
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
285 # Instead of: '/path/to/file'
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
286 # Use: str(Path('path') / 'to' / 'file')
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
287 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
288
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
289 **Problem**: Line ending issues (Windows/Unix)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
290 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
291 # Convert line endings if needed
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
292 dos2unix input_file.tsv # Unix
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
293 unix2dos input_file.tsv # Windows
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
294 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
295
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
296 ## Debugging Strategies
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
297
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
298 ### Enable Detailed Logging
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
299
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
300 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
301 import logging
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
302 logging.basicConfig(level=logging.DEBUG)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
303
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
304 # Many tools accept log file parameter
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
305 args = [..., '--out_log', 'detailed.log']
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
306 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
307
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
308 ### Test with Small Datasets
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
309
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
310 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
311 # Create minimal test case
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
312 test_data = """Gene_ID Sample1 Sample2
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
313 HGNC:5 10.0 15.0
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
314 HGNC:10 5.0 8.0"""
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
315
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
316 with open('test_input.tsv', 'w') as f:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
317 f.write(test_data)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
318
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
319 # Test basic functionality
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
320 ras_generator.main(['-td', tool_dir, '-in', 'test_input.tsv',
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
321 '-ra', 'test_output.tsv', '-rs', 'ENGRO2'])
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
322 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
323
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
324 ### Check Dependencies
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
325
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
326 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
327 # Verify all required packages
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
328 required_packages = ['cobra', 'pandas', 'numpy', 'scipy']
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
329
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
330 for package in required_packages:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
331 try:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
332 __import__(package)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
333 print(f"✓ {package}")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
334 except ImportError:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
335 print(f"✗ {package} - MISSING")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
336 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
337
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
338 ## Getting Help
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
339
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
340 ### Information to Include in Bug Reports
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
341
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
342 When reporting issues, include:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
343
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
344 1. **System information**:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
345 ```bash
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
346 python --version
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
347 pip list | grep cobra
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
348 uname -a # Linux/macOS
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
349 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
350
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
351 2. **Complete error messages**: Copy full traceback
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
352 3. **Input file format**: First few lines of input data
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
353 4. **Command/parameters used**: Exact command or Python code
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
354 5. **Expected vs actual behavior**: What should happen vs what happens
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
355
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
356 ### Community Resources
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
357
542
fcdbc81feb45 Uploaded
francesco_lapi
parents: 492
diff changeset
358 - **GitHub Issues**: [Report bugs and ask questions](https://github.com/CompBtBs/COBRAxy/issues)
492
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
359 - **COBRApy Community**: [General metabolic modeling help](https://github.com/opencobra/cobrapy)
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
360
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
361 ### Self-Help Checklist
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
362
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
363 Before reporting issues:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
364
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
365 - ✅ Checked this troubleshooting guide
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
366 - ✅ Verified installation completeness
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
367 - ✅ Tested with built-in example data
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
368 - ✅ Searched existing GitHub issues
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
369 - ✅ Tried alternative models/parameters
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
370 - ✅ Checked file formats and permissions
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
371
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
372 ## Prevention Tips
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
373
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
374 ### Best Practices
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
375
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
376 1. **Use virtual environments** to avoid conflicts
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
377 2. **Validate input data** before processing
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
378 3. **Start with small datasets** for testing
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
379 4. **Keep backups** of working configurations
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
380 5. **Document successful workflows** for reuse
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
381 6. **Test after updates** to catch regressions
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
382
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
383 ### Data Quality Checks
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
384
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
385 ```python
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
386 def validate_expression_data(filename):
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
387 """Validate gene expression file format."""
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
388 df = pd.read_csv(filename, sep='\t')
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
389
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
390 # Check basic format
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
391 assert df.shape[0] > 0, "Empty file"
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
392 assert df.shape[1] > 1, "Need at least 2 columns"
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
393
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
394 # Check numeric data
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
395 numeric_cols = df.select_dtypes(include=[np.number]).columns
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
396 assert len(numeric_cols) > 0, "No numeric expression data"
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
397
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
398 # Check for missing values
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
399 null_pct = df.isnull().sum().sum() / df.size * 100
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
400 if null_pct > 50:
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
401 print(f"Warning: {null_pct:.1f}% missing values")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
402
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
403 print(f"✓ File valid: {df.shape[0]} genes × {df.shape[1]-1} samples")
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
404 ```
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
405
4ed95023af20 Uploaded
francesco_lapi
parents:
diff changeset
406 This troubleshooting guide covers the most common issues. For tool-specific problems, check the individual tool documentation pages.