Class MultiConditionDataProviderHDF5¶
Defined in File multiConditionDataProvider.h
Inheritance Relationships¶
Base Type¶
public parpe::MultiConditionDataProvider
(Class MultiConditionDataProvider)
Class Documentation¶
-
class MultiConditionDataProviderHDF5 : public parpe::MultiConditionDataProvider¶
The MultiConditionDataProvider class reads simulation data for MultiConditionOptimizationProblem from a HDF5 file.
This class assumes a certain layout of the underlying HDF5 file. Der dataset names can be modified in hdf5*Path members.
Required dimensions:
hdf5MeasurementPath, hdf5MeasurementSigmaPath: numObservables x numConditions
hdf5ConditionPath: numFixedParameters x numConditions
hdf5AmiciOptionPath:
hdf5ParameterPath:
NOTE: The following dimensions are determined by the used AMICI model:
numObservables := Model::ny
numFixedParameters := Model::nk
Public Functions
-
MultiConditionDataProviderHDF5() = default¶
-
MultiConditionDataProviderHDF5(std::unique_ptr<amici::Model> model, const std::string &hdf5Filename)¶
-
- Parameters:
model – A valid pointer to the amici::Model for which the data is to be provided.
hdf5Filename – Path to the HDF5 file from which the data is to be read
-
MultiConditionDataProviderHDF5(std::unique_ptr<amici::Model> model, std::string const &hdf5Filename, std::string const &rootPath)¶
See above.
- Parameters:
model –
hdf5Filename –
rootPath – The name of the HDF5 group under which the data is stored.
-
MultiConditionDataProviderHDF5(MultiConditionDataProviderHDF5 const&) = delete¶
-
~MultiConditionDataProviderHDF5() override¶
-
virtual int getNumberOfSimulationConditions() const override¶
Get the number of simulations required for objective function evaluation. Currently, this amounts to the number of conditions present in the data.
- Returns:
Number of conditions
-
virtual std::vector<int> getSimulationToOptimizationParameterMapping(int conditionIdx) const override¶
Get index vector of length of model parameter with indices of optimization parameters for the given condition.
NOTE: This may contain -1 for parameter which are not mapped.
- Parameters:
conditionIdx –
- Returns:
-
virtual void mapSimulationToOptimizationGradientAddMultiply(int conditionIdx, gsl::span<double const> simulation, gsl::span<double> optimization, gsl::span<const double> parameters, double coefficient = 1.0) const override¶
-
virtual void mapAndSetOptimizationToSimulationVariables(int conditionIdx, gsl::span<double const> optimization, gsl::span<double> simulation, gsl::span<amici::ParameterScaling> optimizationScale, gsl::span<amici::ParameterScaling> simulationScale) const override¶
-
virtual std::vector<amici::ParameterScaling> getParameterScaleOpt() const override¶
-
virtual amici::ParameterScaling getParameterScaleOpt(int parameterIdx) const override¶
Get the parameter scale for the given optimization parameter.
- Parameters:
simulationIdx –
- Returns:
Parameter scale
-
virtual std::vector<amici::ParameterScaling> getParameterScaleSim(int simulationIdx) const override¶
Get the parameter scale vector for the given simulation.
- Parameters:
simulationIdx –
- Returns:
-
virtual amici::ParameterScaling getParameterScaleSim(int simulationIdx, int modelParameterIdx) const override¶
Get the parameter scale for the given parameter and simulation.
- Parameters:
simulationIdx –
- Returns:
-
virtual void checkDataIntegrity() const¶
Check if the data in the HDF5 file has consistent dimensions. Aborts if not.
-
virtual void readFixedSimulationParameters(int conditionIdx, gsl::span<double> buffer) const¶
-
virtual std::unique_ptr<amici::ExpData> getExperimentalDataForCondition(int conditionIdx) const override¶
-
virtual std::vector<std::vector<double>> getAllMeasurements() const override¶
-
virtual std::vector<std::vector<double>> getAllSigmas() const override¶
-
std::vector<double> getSigmaForSimulationIndex(int simulationIdx) const¶
-
std::vector<double> getMeasurementForSimulationIndex(int conditionIdx) const¶
-
virtual void getOptimizationParametersLowerBounds(gsl::span<double> buffer) const¶
Writes lower parameter bounds into the provided buffer.
- Parameters:
buffer – allocated memory to write parameter bounds
-
virtual void getOptimizationParametersUpperBounds(gsl::span<double> buffer) const¶
Writes upper parameter bounds into the provided buffer.
- Parameters:
buffer – allocated memory to write parameter bounds
-
virtual int getNumOptimizationParameters() const override¶
Returns the number of optimization parameters of this problem.
- Returns:
Number of parameters
-
virtual std::unique_ptr<amici::Model> getModel() const override¶
Returns a pointer to a copy of the underlying AMICI model as provided to the constructor.
- Returns:
The model
-
virtual std::unique_ptr<amici::Solver> getSolver() const override¶
-
virtual void updateSimulationParametersAndScale(int simulationIdx, gsl::span<const double> optimizationParams, amici::Model &model) const override¶
Based on the array of optimization parameters, set the simulation parameters in the given Model object to the ones for simulation index.
- Parameters:
simulationIdx – Index of the simulation condition for which to set model parameters.
optimizationParams – Problem parameters from which to extract simulation parameters.
model – Model on which to set parameter values and scale
-
void copyInputData(const H5::H5File &target)¶
-
void getSimAndPreeqConditions(const int simulationIdx, int &preequilibrationConditionIdx, int &simulationConditionIdx) const¶
-
std::vector<int> getReinitializationIndices(const int simulationIdx) const¶
-
H5::H5File getHdf5File() const¶
Get a copy of the HDF5 file handle.
- Returns:
File handle
-
void setModel(std::unique_ptr<amici::Model> model)¶
-
virtual std::vector<std::string> getProblemParameterIds() const override¶
Protected Functions
-
void updateFixedSimulationParameters(int conditionIdx, amici::ExpData &edata) const¶
Update the constants in AMICI ExpData object. Reads a slab for the given simulation from fixed parameters matrix.
- Parameters:
simulationIdx – Index of the experimental condition for which the parameters should be taken.
edata – The object to be updated.