diff --git a/doc/examples/getting_started_extended/GettingStartedExtended.ipynb b/doc/examples/getting_started_extended/GettingStartedExtended.ipynb index 0868900744..fa192e24bc 100644 --- a/doc/examples/getting_started_extended/GettingStartedExtended.ipynb +++ b/doc/examples/getting_started_extended/GettingStartedExtended.ipynb @@ -36,11 +36,6 @@ " ParameterScaling,\n", " SensitivityMethod,\n", " SensitivityOrder,\n", - " get_data_observables_as_data_frame,\n", - " get_edata_from_data_frame,\n", - " get_residuals_as_data_frame,\n", - " get_simulation_observables_as_data_frame,\n", - " get_simulation_states_as_data_frame,\n", " run_simulation,\n", ")" ] @@ -1349,76 +1344,6 @@ "source": [ "plot_sensitivities(\"y\", eps)" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Export as DataFrame\n", - "\n", - "Experimental data and simulation results can both be exported as pandas Dataframe to allow for an easier inspection of numeric values" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# run the simulation\n", - "rdata = run_simulation(model, solver, edata)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# look at the ExpData as DataFrame\n", - "df = get_data_observables_as_data_frame(model, [edata])\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# from the exported dataframe, we can actually reconstruct a copy of the ExpData instance\n", - "reconstructed_edata = get_edata_from_data_frame(model, df)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# look at the States in rdata as DataFrame\n", - "get_residuals_as_data_frame(model, [edata], [rdata])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# look at the Observables in rdata as DataFrame\n", - "get_simulation_observables_as_data_frame(model, [edata], [rdata])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# look at the States in rdata as DataFrame\n", - "get_simulation_states_as_data_frame(model, [edata], [rdata])" - ] } ], "metadata": { diff --git a/python/tests/test_pandas.py b/python/tests/test_pandas.py deleted file mode 100644 index 7cc9d2667c..0000000000 --- a/python/tests/test_pandas.py +++ /dev/null @@ -1,67 +0,0 @@ -"""Tests for ``amici.pandas``""" - -import itertools - -import numpy as np -import pytest -from amici.sim.sundials import ( - ExpData, - get_data_observables_as_data_frame, - get_edata_from_data_frame, - run_simulation, -) -from amici.testing import skip_on_valgrind - -# test parameters for test_pandas_import_export -combos = itertools.product([(10, 5), (5, 10), ()], repeat=3) -cases = [ - { - "fixed_parameters": combo[0], - "fixed_parameters_pre_equilibration": combo[1], - "fixed_parameters_presimulation": combo[2], - } - for combo in combos -] - - -@skip_on_valgrind -@pytest.mark.parametrize("case", cases) -def test_pandas_import_export(sbml_example_presimulation_module, case): - """TestCase class for testing csv import using pandas""" - - # setup - model = sbml_example_presimulation_module.get_model() - model.set_timepoints(np.linspace(0, 60, 61)) - solver = model.create_solver() - rdata = run_simulation(model, solver) - edata = [ExpData(rdata, 0.01, 0)] - - # test copy constructor - _ = ExpData(edata[0]) - - for fp in case: - setattr(edata[0], fp, case[fp]) - - df_edata = get_data_observables_as_data_frame(model, edata) - edata_reconstructed = get_edata_from_data_frame(model, df_edata) - - for fp in [ - "fixed_parameters", - "fixed_parameters_pre_equilibration", - "fixed_parameters_presimulation", - ]: - if fp != "fixed_parameters" or case[fp] != (): - assert getattr(edata[0], fp) == getattr(edata_reconstructed[0], fp) - - assert case[fp] == getattr(edata_reconstructed[0], fp) - - else: - assert model.get_fixed_parameters() == getattr( - edata_reconstructed[0], fp - ) - - assert model.get_fixed_parameters() == getattr( - edata_reconstructed[0], fp - ) - - assert getattr(edata[0], fp) == case[fp] diff --git a/python/tests/test_sbml_import.py b/python/tests/test_sbml_import.py index 3ee0c869e3..0959236398 100644 --- a/python/tests/test_sbml_import.py +++ b/python/tests/test_sbml_import.py @@ -25,19 +25,12 @@ AMICI_SUCCESS, Constraint, ExpData, - ExpDataView, ModelModule, ParameterScaling, ReturnDataView, SensitivityMethod, SensitivityOrder, SteadyStateSensitivityMode, - get_data_observables_as_data_frame, - get_edata_from_data_frame, - get_expressions_as_dataframe, - get_residuals_as_data_frame, - get_simulation_observables_as_data_frame, - get_simulation_states_as_data_frame, parameter_scaling_from_int_vector, run_simulation, run_simulations, @@ -466,63 +459,6 @@ def test_steadystate_simulation(model_steadystate_module): assert rdata[0].status == AMICI_SUCCESS assert rdata[0].id == edata[0].id - # check roundtripping of DataFrame conversion - df_edata = get_data_observables_as_data_frame(model, edata) - edata_reconstructed = get_edata_from_data_frame(model, df_edata) - - assert_allclose( - ExpDataView(edata[0])["observed_data"], - ExpDataView(edata_reconstructed[0])["observed_data"], - rtol=1.0e-5, - atol=1.0e-8, - ) - - assert_allclose( - ExpDataView(edata[0])["observed_data_std_dev"], - ExpDataView(edata_reconstructed[0])["observed_data_std_dev"], - rtol=1.0e-5, - atol=1.0e-8, - ) - - if len(edata[0].fixed_parameters): - assert list(edata[0].fixed_parameters) == list( - edata_reconstructed[0].fixed_parameters - ) - - else: - assert list(model.get_fixed_parameters()) == list( - edata_reconstructed[0].fixed_parameters - ) - - assert list(edata[0].fixed_parameters_pre_equilibration) == list( - edata_reconstructed[0].fixed_parameters_pre_equilibration - ) - - df_state = get_simulation_states_as_data_frame(model, edata, rdata) - assert_allclose( - rdata[0]["x"], - df_state[list(model.get_state_ids())].values, - rtol=1.0e-5, - atol=1.0e-8, - ) - - df_obs = get_simulation_observables_as_data_frame(model, edata, rdata) - assert_allclose( - rdata[0]["y"], - df_obs[list(model.get_observable_ids())].values, - rtol=1.0e-5, - atol=1.0e-8, - ) - get_residuals_as_data_frame(model, edata, rdata) - - df_expr = get_expressions_as_dataframe(model, edata, rdata) - assert_allclose( - rdata[0]["w"], - df_expr[list(model.get_expression_ids())].values, - rtol=1.0e-5, - atol=1.0e-8, - ) - solver.set_relative_tolerance(1e-12) solver.set_absolute_tolerance(1e-12) check_derivatives( @@ -630,25 +566,6 @@ def test_likelihoods(model_test_likelihoods): assert np.all(np.isfinite(rdata["sllh"])) assert np.any(rdata["sllh"]) - rdata_df = get_simulation_observables_as_data_frame( - model, edata, rdata, by_id=True - ) - edata_df = get_data_observables_as_data_frame(model, edata, by_id=True) - - # check correct likelihood value - llh_exp = -sum( - [ - normal_nllh(edata_df["o1"], rdata_df["o1"], sigmas[0]), - log_normal_nllh(edata_df["o2"], rdata_df["o2"], sigmas[1]), - log10_normal_nllh(edata_df["o3"], rdata_df["o3"], sigmas[2]), - laplace_nllh(edata_df["o4"], rdata_df["o4"], sigmas[3]), - log_laplace_nllh(edata_df["o5"], rdata_df["o5"], sigmas[4]), - log10_laplace_nllh(edata_df["o6"], rdata_df["o6"], sigmas[5]), - custom_nllh(edata_df["o7"], rdata_df["o7"], sigmas[6]), - ] - ) - assert np.isclose(rdata["llh"], llh_exp) - # check gradient for sensi_method in [ SensitivityMethod.forward,