|
11 | 11 | import petab |
12 | 12 |
|
13 | 13 | logger = logging.getLogger(__name__) |
14 | | -__all__ = ['add_global_parameter', |
15 | | - 'add_model_output', |
16 | | - 'add_model_output_sigma', |
17 | | - 'add_model_output_with_sigma', |
18 | | - 'create_assigment_rule', |
19 | | - 'get_model_for_condition', |
20 | | - 'get_model_parameters', |
21 | | - 'get_sbml_model', |
22 | | - 'globalize_parameters', |
23 | | - 'is_sbml_consistent', |
24 | | - 'load_sbml_from_file', |
25 | | - 'load_sbml_from_string', |
26 | | - 'log_sbml_errors', |
27 | | - 'sbml_parameter_is_observable', |
28 | | - 'sbml_parameter_is_sigma', |
29 | | - 'write_sbml'] |
| 14 | +__all__ = [ |
| 15 | + 'get_model_for_condition', |
| 16 | + 'get_model_parameters', |
| 17 | + 'get_sbml_model', |
| 18 | + 'globalize_parameters', |
| 19 | + 'is_sbml_consistent', |
| 20 | + 'load_sbml_from_file', |
| 21 | + 'load_sbml_from_string', |
| 22 | + 'log_sbml_errors', |
| 23 | + 'write_sbml' |
| 24 | +] |
30 | 25 |
|
31 | 26 |
|
32 | 27 | def is_sbml_consistent(sbml_document: libsbml.SBMLDocument, |
@@ -123,178 +118,6 @@ def globalize_parameters(sbml_model: libsbml.Model, |
123 | 118 | law.removeParameter(lp.getId()) |
124 | 119 |
|
125 | 120 |
|
126 | | -def add_global_parameter(sbml_model: libsbml.Model, |
127 | | - parameter_id: str, |
128 | | - parameter_name: str = None, |
129 | | - constant: bool = False, |
130 | | - units: str = 'dimensionless', |
131 | | - value: float = 0.0) -> libsbml.Parameter: |
132 | | - """Add new global parameter to SBML model |
133 | | -
|
134 | | - Arguments: |
135 | | - sbml_model: SBML model |
136 | | - parameter_id: ID of the new parameter |
137 | | - parameter_name: Name of the new parameter |
138 | | - constant: Is parameter constant? |
139 | | - units: SBML unit ID |
140 | | - value: parameter value |
141 | | -
|
142 | | - Returns: |
143 | | - The created parameter |
144 | | - """ |
145 | | - |
146 | | - if parameter_name is None: |
147 | | - parameter_name = parameter_id |
148 | | - |
149 | | - p = sbml_model.createParameter() |
150 | | - p.setId(parameter_id) |
151 | | - p.setName(parameter_name) |
152 | | - p.setConstant(constant) |
153 | | - p.setValue(value) |
154 | | - p.setUnits(units) |
155 | | - return p |
156 | | - |
157 | | - |
158 | | -def create_assigment_rule(sbml_model: libsbml.Model, |
159 | | - assignee_id: str, |
160 | | - formula: str, |
161 | | - rule_id: str = None, |
162 | | - rule_name: str = None) -> libsbml.AssignmentRule: |
163 | | - """Create SBML AssignmentRule |
164 | | -
|
165 | | - Arguments: |
166 | | - sbml_model: Model to add output to |
167 | | - assignee_id: Target of assignment |
168 | | - formula: Formula string for model output |
169 | | - rule_id: SBML id for created rule |
170 | | - rule_name: SBML name for created rule |
171 | | -
|
172 | | - Returns: |
173 | | - The created ``AssignmentRule`` |
174 | | - """ |
175 | | - warn("This function will be removed in future releases.", |
176 | | - DeprecationWarning) |
177 | | - |
178 | | - if rule_id is None: |
179 | | - rule_id = assignee_id |
180 | | - |
181 | | - if rule_name is None: |
182 | | - rule_name = rule_id |
183 | | - |
184 | | - rule = sbml_model.createAssignmentRule() |
185 | | - rule.setId(rule_id) |
186 | | - rule.setName(rule_name) |
187 | | - rule.setVariable(assignee_id) |
188 | | - rule.setFormula(formula) |
189 | | - |
190 | | - return rule |
191 | | - |
192 | | - |
193 | | -def add_model_output(sbml_model: libsbml.Model, |
194 | | - observable_id: str, |
195 | | - formula: str, |
196 | | - observable_name: str = None) -> None: |
197 | | - """Add PEtab-style output to model |
198 | | -
|
199 | | - We expect that all formula parameters are added to the model elsewhere. |
200 | | -
|
201 | | - Arguments: |
202 | | - sbml_model: Model to add output to |
203 | | - formula: Formula string for model output |
204 | | - observable_id: ID without "observable\\_" prefix |
205 | | - observable_name: Any observable name |
206 | | - """ |
207 | | - warn("This function will be removed in future releases.", |
208 | | - DeprecationWarning) |
209 | | - |
210 | | - if observable_name is None: |
211 | | - observable_name = observable_id |
212 | | - |
213 | | - prefixed_id = f'observable_{observable_id}' |
214 | | - add_global_parameter(sbml_model, prefixed_id, observable_name) |
215 | | - create_assigment_rule(sbml_model=sbml_model, |
216 | | - assignee_id=prefixed_id, |
217 | | - formula=formula) |
218 | | - |
219 | | - |
220 | | -def add_model_output_sigma(sbml_model: libsbml.Model, |
221 | | - observable_id: str, |
222 | | - formula: str) -> None: |
223 | | - """Add PEtab-style sigma for the given observable id |
224 | | -
|
225 | | - We expect that all formula parameters are added to the model elsewhere. |
226 | | -
|
227 | | - Arguments: |
228 | | - sbml_model: Model to add to |
229 | | - observable_id: Observable id for which to add sigma |
230 | | - formula: Formula for sigma |
231 | | - """ |
232 | | - warn("This function will be removed in future releases.", |
233 | | - DeprecationWarning) |
234 | | - |
235 | | - add_global_parameter(sbml_model, f'sigma_{observable_id}') |
236 | | - create_assigment_rule(sbml_model, f'sigma_{observable_id}', formula) |
237 | | - |
238 | | - |
239 | | -def add_model_output_with_sigma( |
240 | | - sbml_model: libsbml.Model, |
241 | | - observable_id: str, |
242 | | - observable_formula: str, |
243 | | - observable_name: str = None) -> None: |
244 | | - """Add PEtab-style output and corresponding sigma with single |
245 | | - (newly created) parameter |
246 | | -
|
247 | | - We expect that all formula parameters are added to the model elsewhere. |
248 | | -
|
249 | | - Arguments: |
250 | | - sbml_model: |
251 | | - Model to add output to |
252 | | - observable_formula: |
253 | | - Formula string for model output |
254 | | - observable_id: |
255 | | - ID without "observable\\_" prefix |
256 | | - observable_name: |
257 | | - Any name |
258 | | - """ |
259 | | - warn("This function will be removed in future releases.", |
260 | | - DeprecationWarning) |
261 | | - |
262 | | - add_model_output(sbml_model=sbml_model, |
263 | | - observable_id=observable_id, |
264 | | - observable_name=observable_name, |
265 | | - formula=observable_formula) |
266 | | - |
267 | | - noise_parameter_id = f'noiseParameter1_{observable_id}' |
268 | | - add_global_parameter(sbml_model=sbml_model, |
269 | | - parameter_id=noise_parameter_id) |
270 | | - |
271 | | - add_model_output_sigma(sbml_model=sbml_model, |
272 | | - observable_id=observable_id, |
273 | | - formula=noise_parameter_id) |
274 | | - |
275 | | - |
276 | | -def sbml_parameter_is_observable(sbml_parameter: libsbml.Parameter) -> bool: |
277 | | - """ |
278 | | - Returns whether the ``libsbml.Parameter`` ``sbml_parameter`` |
279 | | - matches the defined observable format. |
280 | | - """ |
281 | | - warn("This function will be removed in future releases.", |
282 | | - DeprecationWarning) |
283 | | - |
284 | | - return sbml_parameter.getId().startswith('observable_') |
285 | | - |
286 | | - |
287 | | -def sbml_parameter_is_sigma(sbml_parameter: libsbml.Parameter) -> bool: |
288 | | - """ |
289 | | - Returns whether the ``libsbml.Parameter`` ``sbml_parameter`` |
290 | | - matches the defined sigma format. |
291 | | - """ |
292 | | - warn("This function will be removed in future releases.", |
293 | | - DeprecationWarning) |
294 | | - |
295 | | - return sbml_parameter.getId().startswith('sigma_') |
296 | | - |
297 | | - |
298 | 121 | def get_model_parameters(sbml_model: libsbml.Model, with_values=False |
299 | 122 | ) -> Union[List[str], Dict[str, float]]: |
300 | 123 | """Return SBML model parameters which are not Rule targets |
|
0 commit comments