Skip to content

Commit

Permalink
feat: updated to BioSimulators-utils 0.1.104
Browse files Browse the repository at this point in the history
  • Loading branch information
jonrkarr committed Aug 17, 2021
1 parent b403610 commit 5a408ca
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 21 deletions.
9 changes: 7 additions & 2 deletions biosimulators_bionetgen/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@
# :obj:`str`: version

from .config import Config
from .core import exec_sedml_docs_in_combine_archive # noqa: F401
from .core import exec_sed_task, exec_sedml_docs_in_combine_archive # noqa: F401

import subprocess


__all = ['__version__', 'get_simulator_version']
__all = [
'__version__',
'get_simulator_version',
'exec_sed_task',
'exec_sedml_docs_in_combine_archive',
]


def get_simulator_version():
Expand Down
57 changes: 39 additions & 18 deletions biosimulators_bionetgen/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@
get_variables_results_from_observable_results, add_variables_to_model)
from .warnings import IgnoredBnglFileContentWarning
from biosimulators_utils.combine.exec import exec_sedml_docs_in_archive
from biosimulators_utils.config import get_config
from biosimulators_utils.log.data_model import CombineArchiveLog, TaskLog # noqa: F401
from biosimulators_utils.viz.data_model import VizFormat # noqa: F401
from biosimulators_utils.report.data_model import ReportFormat, VariableResults # noqa: F401
from biosimulators_utils.report.data_model import ReportFormat, VariableResults, SedDocumentResults # noqa: F401
from biosimulators_utils.sedml import validation
from biosimulators_utils.sedml.data_model import (Task, ModelLanguage, ModelAttributeChange, # noqa: F401
UniformTimeCourseSimulation, Variable)
Expand All @@ -27,8 +28,10 @@


def exec_sedml_docs_in_combine_archive(archive_filename, out_dir,
return_results=False,
report_formats=None, plot_formats=None,
bundle_outputs=None, keep_individual_outputs=None):
bundle_outputs=None, keep_individual_outputs=None,
raise_exceptions=True):
""" Execute the SED tasks defined in a COMBINE/OMEX archive and save the outputs
Args:
Expand All @@ -40,21 +43,28 @@ def exec_sedml_docs_in_combine_archive(archive_filename, out_dir,
* HDF5: directory in which to save a single HDF5 file (``{ out_dir }/reports.h5``),
with reports at keys ``{ relative-path-to-SED-ML-file-within-archive }/{ report.id }`` within the HDF5 file
return_results (:obj:`bool`, optional): whether to return the result of each output of each SED-ML file
report_formats (:obj:`list` of :obj:`ReportFormat`, optional): report format (e.g., csv or h5)
plot_formats (:obj:`list` of :obj:`VizFormat`, optional): report format (e.g., pdf)
bundle_outputs (:obj:`bool`, optional): if :obj:`True`, bundle outputs into archives for reports and plots
keep_individual_outputs (:obj:`bool`, optional): if :obj:`True`, keep individual output files
raise_exceptions (:obj:`bool`, optional): whether to raise exceptions
Returns:
:obj:`CombineArchiveLog`: log
:obj:`tuple`:
* :obj:`SedDocumentResults`: results
* :obj:`CombineArchiveLog`: log
"""
sed_doc_executer = functools.partial(exec_sed_doc, exec_sed_task)
return exec_sedml_docs_in_archive(sed_doc_executer, archive_filename, out_dir,
apply_xml_model_changes=False,
return_results=return_results,
report_formats=report_formats,
plot_formats=plot_formats,
bundle_outputs=bundle_outputs,
keep_individual_outputs=keep_individual_outputs)
keep_individual_outputs=keep_individual_outputs,
raise_exceptions=raise_exceptions)


def exec_sed_task(sed_task, variables, log=None):
Expand Down Expand Up @@ -94,22 +104,33 @@ def exec_sed_task(sed_task, variables, log=None):
* BioNetGen
* :obj:`get_variables_results_from_observable_results`
"""
config = get_config()
log = log or TaskLog()

raise_errors_warnings(validation.validate_task(sed_task),
error_summary='Task `{}` is invalid.'.format(sed_task.id))
raise_errors_warnings(validation.validate_model_language(sed_task.model.language, ModelLanguage.BNGL),
error_summary='Language for model `{}` is not supported.'.format(sed_task.model.id))
raise_errors_warnings(validation.validate_model_change_types(sed_task.model.changes, (ModelAttributeChange, )),
error_summary='Changes for model `{}` are not supported.'.format(sed_task.model.id))
raise_errors_warnings(*validation.validate_model_changes(sed_task.model),
error_summary='Changes for model `{}` are invalid.'.format(sed_task.model.id))
raise_errors_warnings(validation.validate_simulation_type(sed_task.simulation, (UniformTimeCourseSimulation, )),
error_summary='{} `{}` is not supported.'.format(sed_task.simulation.__class__.__name__, sed_task.simulation.id))
raise_errors_warnings(*validation.validate_simulation(sed_task.simulation),
error_summary='Simulation `{}` is invalid.'.format(sed_task.simulation.id))
raise_errors_warnings(*validation.validate_data_generator_variables(variables),
error_summary='Data generator variables for task `{}` are invalid.'.format(sed_task.id))
if config.VALIDATE_SEDML:
raise_errors_warnings(
validation.validate_task(sed_task),
error_summary='Task `{}` is invalid.'.format(sed_task.id))
raise_errors_warnings(
validation.validate_model_language(sed_task.model.language, ModelLanguage.BNGL),
error_summary='Language for model `{}` is not supported.'.format(sed_task.model.id))
raise_errors_warnings(
validation.validate_model_change_types(sed_task.model.changes, (ModelAttributeChange, )),
error_summary='Changes for model `{}` are not supported.'.format(sed_task.model.id))
raise_errors_warnings(
*validation.validate_model_changes(sed_task.model),
error_summary='Changes for model `{}` are invalid.'.format(sed_task.model.id))
raise_errors_warnings(
validation.validate_simulation_type(sed_task.simulation, (UniformTimeCourseSimulation, )),
error_summary='{} `{}` is not supported.'.format(
sed_task.simulation.__class__.__name__,
sed_task.simulation.id))
raise_errors_warnings(
*validation.validate_simulation(sed_task.simulation),
error_summary='Simulation `{}` is invalid.'.format(sed_task.simulation.id))
raise_errors_warnings(
*validation.validate_data_generator_variables(variables),
error_summary='Data generator variables for task `{}` are invalid.'.format(sed_task.id))

# read the model from the BNGL file
bionetgen_task = read_task(sed_task.model.source)
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
biosimulators_utils[bngl,logging] >= 0.1.96
biosimulators_utils[bngl,logging] >= 0.1.104
kisao
pandas

0 comments on commit 5a408ca

Please sign in to comment.